Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / waveOutWrite() и несколько звуков

waveOutWrite() и несколько звуков

ХаусЗабаненwww8 авг. 201622:48#0
я так понимаю, если мне нужно проиграть одновременно несколько разнодлинных звуков с разными параметрами PCM, то я должен под каждый звук заводить свой HWAVEOUT?
или же должен быть единый HWAVEOUT, а все данные звуков каким-то хитрым способом "месить" в одно или чо O_O?
0iStalkerМодераторwww9 авг. 20169:24#1
Либо DirectSound/OpenAL бери, либо программно смешивай буферы, что-то типа
uint16_t buf1[bufsize]; //буффер 1
uint16_t buf2[bufsize]; //буффер 2
uint16_t buf3[bufsize]; //результат

for (size_t i=0; i<bufsize; i++)
{
    double mixsmp = ((double)buf1[i] + (double)buf2[i]) / (1 + ((double)buf1[i] * (double)buf2[i]) / normal_volume_value);
    buf3[i] = (uint16_t)mixsmp;    
}

nesПостоялецwww9 авг. 201614:08#2
+ за опинаэл
ХаусЗабаненwww11 авг. 201621:35#3
nes
> + за опинаэл

С драйверами говорят надо возиться.

0iStalker

Как-то по-ублюдошному сделан интерфейс waveOutWrite(), раз в ручную нужно всё месить.
Знаю есть какие-то миксеры звука в API, они для этого дела подойдут?

А почему нельзя под каждый звук заводить свой HWAVEOUT?

exchgПостоялецwww12 авг. 201621:43#4
Хаус
> А почему нельзя под каждый звук заводить свой HWAVEOUT?
наверно дорого по ресурсам. но вообще можно.

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

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

2001—2018 © GameDev.ru — Разработка игр