Я создаю приложение, в котором есть требование для действительно точного позиционного звука, вплоть до уровня моделирования интервала между временными интервалами (ITD), небольшой разницы в задержке между стереоканалами, которые изменяется в зависимости от положения звука относительно слушателя. К сожалению, реализация iPhone Openal не имеет этой функции, а также не является аудиоустройством задержки, поставляемым в SDK.Создание лучшего позиционного звука [манипуляция AudioQueue]
После небольшого чтения, я решил, что лучший способ подойти к этой проблеме - реализовать собственную задержку, манипулируя AudioQueue (я также могу увидеть некоторые проекты в будущем, которые могут потребовать изучения этого материала, так что это хороший повод учиться как любой). Тем не менее, у меня нет никакого опыта в низкоуровневом аудиопрограмме вообще, и, конечно же, ни с AudioQueue. Попытка узнать, как:
а) общая теория обработки звука
и
б) специфика как звуковых сообщений реализует эту теорию
оказывается слишком много, чтобы принять все в один раз :(
Итак, мои вопросы:
1) где хорошее место, чтобы начать изучать DSP и как работает генерация и обработка звука в целом (вплоть до того, как аудиоданные структурированы в памяти, как работает микширование, что-то вроде этого)?
2) что такое хороший способ узнать, как это делает AudioQueue? Есть ли хорошие примеры того, как получить это чтение из сгенерированного кольцевого буфера, а просто для того, чтобы просто загружать биты файла по требованию с AudioFileReadPackets
, например, пример Apple SpeakHere?
и, самое главное
3) есть более простой способ сделать это, что я упускать из виду?