Войти
ПрограммированиеФорумЗвук

Delphi OpenAL EAX (2 стр)

Страницы: 1 2
#15
23:31, 28 июня 2011

А какое устройство ты ставишь в качестве девайса?
Generic? Какая звуковуха у тебя?
как выглядит EXT_STRING?


#16
9:33, 29 июня 2011

@!!ex

Не думаешь же ты, что человек со встроенной звуковухой будет пытаться прикрутить EAX?

#17
11:05, 29 июня 2011

.Scotina
> Не думаешь же ты, что человек со встроенной звуковухой будет пытаться
> прикрутить EAX?
Почему нет? У меня на встроенной в ноутбук тестовый пример работает. Или в смысле качество плохое?

#18
13:28, 29 июня 2011

В смысле оно должно гарантировано и в полном объёме работать только на картах от самой Креатив.

#19
14:16, 29 июня 2011

Проверил все сомнительные места, так сказать, моего проекта и оказалось что ошибка вызывается из-за моей OpenAl32.dll. Хотя она у меня уже давно и не думалось что в ней ошибка. После того, как я скачал другую dll ошибка пропала. Но звук с таким эффектом так и не получается сделать.

Вот код :

AlutInit(nil,argv);

  AlGenBuffers(1, @buffer);
  AlutLoadWavFile('footsteps.wav', format, data, size, freq, loop);
  AlBufferData(buffer, format, data, size, freq);
  AlutUnloadWav(format, data, size, freq);

  AlGenSources(1, @source);
  AlSourcei ( source, AL_BUFFER, buffer);
  AlSourcef ( source, AL_PITCH, 1.0 );
  AlSourcef ( source, AL_GAIN, 1.0 );
  AlSourcefv ( source, AL_POSITION, @sourcepos);
  AlSourcefv ( source, AL_VELOCITY, @sourcevel);
  AlSourcei ( source, AL_LOOPING, AL_TRUE);

  AlListenerfv ( AL_POSITION, @listenerpos);
  AlListenerfv ( AL_VELOCITY, @listenervel);
  AlListenerfv ( AL_ORIENTATION, @listenerori);

  // Check for EAX 2.0 support
  V := alIsExtensionPresent('EAX2.0');
  FnName := 'EAXSet';
  eaxSet := alGetProcAddress(FnName);
  FnName := 'EAXGet';
  eaxGet := alGetProcAddress(FnName);

  //set the effect
  Env := EAX_ENVIRONMENT_PADDEDCELL;
  eaxSet(DSPROPSETID_EAX20_ListenerProperties,
         DSPROPERTY_EAXLISTENER_ENVIRONMENT or
         DSPROPERTY_EAXLISTENER_DEFERRED,
         0, @Env, sizeof(TALuint));
  // Commit settings on source 0
  eaxSet(DSPROPSETID_EAX20_BufferProperties,
         DSPROPERTY_EAXBUFFER_COMMITDEFERREDSETTINGS,
         source, nil, 0);
  // Commit Listener settings
  eaxSet(DSPROPSETID_EAX20_ListenerProperties,
         DSPROPERTY_EAXLISTENER_COMMITDEFERREDSETTINGS, 0, nil, 0);

и запуск по кнопке

  AlSourcePlay(source);

Пробовал :

1.  Device := alcOpenDevice('DirectSound3D');
2.  Device := alcOpenDevice('Generic Software');
3.  Device := alcOpenDevice(nil);

Все также. Звук без эффекта

#20
14:26, 29 июня 2011

@!!ex
Что такое EXT_STRING и "с чем его едят"?

#21
14:32, 29 июня 2011

.Scotina
> В смысле оно должно гарантировано и в полном объёме работать только на картах
> от самой Креатив.
Это относится ко всему OpenAL.
EAX 2.0 держит любая более менее современная звуковуха.  В том числе и интегрированные.

Spike
> Что такое EXT_STRING и "с чем его едят"?
Это то, что возвращает alGetString(AL_EXTENSIONS) содержит список всего того, что умеет открытый аудио девайс.
Рекомендую писать эту строку в лог проги при инициализации звука.

#22
15:01, 29 июня 2011

@!!ex

alGetString(AL_EXTENSIONS)    >>>    EAX 2.0, EAX 3.0, EAX Unified, and EAX-AC3

#23
15:45, 29 июня 2011

Дайте кто-нибудь работающий пример http://www.noeska.com/doal/lesson12.aspx c библиотеками и юнитами. Или какой-нибудь другой.. А то у меня на этом звук есть, но эффекта нет.

#24
21:52, 29 июня 2011

kipar

Огромное спасибо :) Взял Openal32.dll , Wrap_oal.dll из примера звукового движка и все заработало!

Страницы: 1 2
ПрограммированиеФорумЗвук

Тема в архиве.