Полифония с AudioRenderCallback и AudioUnitRenderFlag - PullRequest
1 голос
/ 07 апреля 2011

Я ориентируюсь в основных аудио / аудиоустройствах, поэтому, пожалуйста, прости меня, если это должно быть само собой разумеющимся.

Если я хочу разрешить пять голосов, мне нужно 5 шин на микшере и как минимум 5 буферов, если я хочу 5 разных звуков. Я разобрался с основным способом планирования заметки, проверив время и используя время начала. Я думаю, что я должен использовать ioActionFlags, чтобы указать, когда я рендеринг молчания, но я не совсем понимаю, как.

Я спрашиваю, потому что с двумя автобусами я жужжа, когда один некоторое время молчит, а другой играет.

1 Ответ

1 голос
/ 07 апреля 2011

Если вы получаете гудение, это, вероятно, так называемая «пила сатаны», представляющая собой пилообразный шум, создаваемый неочищенным буфером, воспроизводящимся снова и снова из канала.Любой звук, кроме тишины, повторяемой таким образом, будет звучать немного как пилообразная волна.

Когда вы воспроизводите тишину, вы должны просто очистить все сэмплы в вашем выходном буфере до 0.0f для данногоголос.Я не думаю, что есть способ остановить обратный вызов от попыток получить ваши образцы, и в любом случае, это гораздо более простое (и более портативное) решение, чем возиться с настройкой рендеринга системы.

...