На чём сделать realtime обработку звука?

Задача: сделать устройство обработки звука в реальном времени (то есть с минимальной, незаметной задержкой).
Сама обработка довольно простая - наложение эквалайзера в определенные моменты времени.

Пробовал сделать на компьютере - в Windows задержка очень большая (ну грубо говоря ~0.4 сек). В Linux (Ubuntu 14.04) после удаления pulseaudio задержка намного меньше, но всё равно недопустима большая (~0.1-0.2 сек). В операционных системах делал т.к. хотел в конечном итоге в качестве устройства использовать одноплатный компьютер.
Вопрос: есть ли смысл разбираться с
1. realtime версией Linux'a
или
2. установкой и настройкой драйвера JACK на Linux?
Или стоит разобраться с каким-то контроллером + АЦП-ЦАП (или + звуковая карта)?

Замечание: устройство для развития слуха музыкантов, т.е. нужен более-менее нормальный звук. А алгоритм обработки еще точно неизвестен, но известно что вычислительно он простой.
  • Вопрос задан
  • 4534 просмотра
Решения вопроса 1
@Mezmay Автор вопроса
Решение есть: можно работать со звуком в реальном времени в обычных операционных системах. Как выяснилось, для realtime работы со звуком особое ядро не требуется. Достаточно кроссплатформенного инструмента Jack (Jack audio connection kit)
jackaudio.org/faq/realtime_vs_realtime_kernel.html
В Linux, например, достаточно разрешить риалтаймовый приоритет для Jack'a: jackaudio.org/faq/linux_rt_config.html
и использовать минимальный размер буфера, который заработает. У меня звук работает на длине буфера от 64, его и использую.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
gbg
@gbg Куратор тега Linux
Любые ответы на любые вопросы
На самом деле, есть специальные процессоры - эквалайзеры в виде отдельной микросхемы. Расскажите более подробно о задаче - диапазон частот, глубина эквализации, количество полос. А то окажется что вам - в музыкальный магазин за педалькой.
Ответ написан
donkaban
@donkaban
Умею рисовать тени
www.juce.com - это если "где бы найти батарейки помощнее, типа буста" :)
А с latency - ну если у вас AC97 - то 100ms ваш предел. JACK, конечно.

P.S. Называть FTT "вычислительно простым" алгоритмом - это эм... ну ново.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы