Comments 12
Не пробовали использовать сторонние библиотеки, например fmod?
+1
Основная задача была получать и проигрывать звук как можно ближе к железу, а так же оценивать задержку, которая при этом возникает. Поэтому от дополнительных промежуточных библиотек особой пользы не было бы. При работе с системным API напрямую больше контроля и проще решать проблемы, связанные, например, с различиями в работе на разных устройствах и версиях iOS.
+5
fmod — не промежуточная библиотека, не обертка над существующими апи. Это кроссплатформенная библиотека для софтварного проигрывания, микширования и риалтайм обработки звука. Для больших проектов стоит $15к (это не аргумент, конечно, но подразумевает серьезность )
На виндовс ее использование дало мне меньшие задержки (по сравнению с XNA), и идеальное микширование нескольких звуковых дорожек. До iOS я пока еще не добрался и поэтому мне интересно было сравнение fmod с нативным апи.
Я далеко не профи в обработке звука — просто сейчас пишу музыкальную игру, но советовал бы посмотреть в сторону fmod если еще не щупали (не сочтите за рекламу).
На виндовс ее использование дало мне меньшие задержки (по сравнению с XNA), и идеальное микширование нескольких звуковых дорожек. До iOS я пока еще не добрался и поэтому мне интересно было сравнение fmod с нативным апи.
Я далеко не профи в обработке звука — просто сейчас пишу музыкальную игру, но советовал бы посмотреть в сторону fmod если еще не щупали (не сочтите за рекламу).
+2
На iOS это практически наверняка обертка над AudioUnit. Не думаю, что Apple пустил их на уровень драйверов и системных сервисов. К тому же у VoIP приложений специфика немного другая, чем у игр либо музыкальных приложений. Много каналов микшировать не нужно, обработка идет в основном на 16kHz. Упор больше на алгоритмы компрессий, компенсации задержек, шумо и эхо-подавление.
+3
В iOS 5, 6 все еще нужны пляски с бубном, чтобы заставить работать VoiceProcessingIO?
+1
Звук у вас в приложении классный, был приятно удивлен. Еще хорошо, что когда у одного из абонентов штатный gprs, а у второго 3g, разговор можно довольно комфортно вести хоть и с 2-ух секундной задержкой.
+1
Спасибо за статью. А для синтеза звука с минимальной задержкой (относительно тач-нажатия, естественно) какой на ваш взгляд API целесообразней использовать? Так же буду рад, если кто подскажет библиотеки для синтеза/процессинга многоканального звука в iOS.
+1
AudioUnit дает минимальную задержку в любом случае, им так же можно микшировать несколько каналов и применять эквалайзер к каждому из каналов. Если нужно 3D позиционирование источников звука — то OpenAL проще. Не уверен правда насчет масштабируемости этих API на 10ки каналов на iOS. Насчет библиотек не подскажу, выше упоминали fmod, но использовать его не приходилось.
+1
После ресемплирования на выходе получится целое число семплов, а дробный остаток будет храниться в виде коэффициентов фильтра ресемплера.
Маленький терминологический баг.
Дробный остаток в явном виде не хранится, по крайней мере в коэффициентах.
Фильтры, конечно, можно по-разному организовать, но правильнее сказать, что он «накапливается» в линии задержки. Накопили на целый сэмпл — выдали.
0
Sign up to leave a comment.
Программирование звука с низкой задержкой в iOS