Я использую OpenAL в своем приложении для воспроизведения звуков на основе аудиофайлов * .caf.
Существует учебник , в котором описано, как генерировать белый шум в OpenAL :
amplitude - rand(2*amplitude)
Но они создают буфер с 1000 сэмплами, а затем просто зацикливают этот буфер с
alSourcei(source, AL_LOOPING, AL_TRUE);
Проблема с этим подходом: зацикливание белого шума просто не работает из-за смещения постоянного тока. Там будет заметное колебание в звуке. Я знаю, потому что я пытался зациклить десятки областей белого шума, сгенерированных в различных приложениях, и у всех них была та же самая проблема. Даже после попытки затухания и проверки того, что регионы обрезаются до пересечения нуля.
Поскольку (насколько я понимаю) OpenAL более низкоуровневый, чем аудиоустройства или аудио-очереди, должен быть способ генерировать белый шум на лету непрерывным образом, так что зацикливание не требуется.
Может быть, кто-то может указать на некоторые полезные ресурсы по этой теме.