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

DirectSound проблемы при создании первичного буфера

#0
13:50, 27 авг. 2012

Не получается создать первичный буфер, если при создании указывать флаг DSBCAPS_CTRLFREQUENCY или DSBCAPS_CTRLFX (возвращается E_INVALIDARG).
Че за фигня и как с ней бороться?


#1
14:48, 27 авг. 2012

Код покажи, а то сейчас появятся очень большое количество, телепатов и пророков.

#2
15:00, 27 авг. 2012
+ Показать
#3
15:03, 27 авг. 2012

>Че за фигня и как с ней бороться?
Обойтись без первичного буфера. В моей теме выяснилось, что он не нужен.

#4
15:04, 27 авг. 2012

gammaker
Ага, крутое решение, если игрок заходит в пещеру, тогда всем звукам добавляем эхо, вместо того чтобы добавить только одному - первичному?

#5
15:41, 27 авг. 2012

После объявления переменной DSBUFFERDESC bd; обнули ее:

DSBUFFERDESC bd;
ZeroMemory( &bd, sizeof( bd ) );

#6
15:50, 27 авг. 2012

Стас
Не помогло, да и проблема явно не в этом, если убрать флажок DSBCAPS_CTRLFX, то буфер создается нормально.

#7
15:58, 27 авг. 2012

Порывшись в инете натолкнулся вот на такое:

> As I know the primary buffer contains an output sound stream - mixed samples
> from secondary buffers. Is it possible to apply some effects to the primary
> buffer (like chorus, echo, etc.)? In documentation I've read that creating
> primary buffer we can't set flag DSBCAPS_CTRLFX with DSBCAPS_PRIMARYBUFFER.
> Is there any other method to easy apply effects to all sounds on the scene?
>
> Thanks for any advice.

Currently it's not possible as effects can only be applied to secondary
buffers. Some sound card manufacturers provide some proprietary methods to
achieve this however. Realtek and Creative are two such examples.

#8
16:13, 27 авг. 2012

Но ведь во всех играх явно как-то обходят эту хрень, ведь если бы меняли вторичные буферы, то пришлось бы для каждого звука создавать буфер с параметром FX,
т.к. DuplicateSoundBuffer уже не сработал бы.

#9
17:11, 27 авг. 2012

>Ага, крутое решение, если игрок заходит в пещеру, тогда всем звукам добавляем эхо, вместо того чтобы добавить только одному - первичному?
К музыке тоже эхо будешь добавлять?

#10
19:39, 27 авг. 2012

gammaker
да, засада, явно я что-то пропустил (

#11
18:35, 29 авг. 2012

Итак все оказалось несколько сложнее, чем я предполагал - оказывается что "голый" DirectSound как таковой никто в играх не использует.
Обычно вместе с ним используют дополнительные библиотеки, добавляющие аудио эффекты.
Из бесплатных нашел Miles SDK, думаю пока оставновиться на нем, но может кто-то посоветует что-то другое?

Поправочка: похоже рано обрадовался - Miles SDK вроде как не совсем бесплатный (

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

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