Типичная задержка от микрофона до оцифрованных сэмплов на ПК

Я хочу сделать обработку звука в реальном времени на ПК (это может быть Windows или Linux). Для этого мне нужно очень быстро получить оцифрованные аудиоданные с микрофона. Мне интересно, каков типичный диапазон задержки, который я должен ожидать. Это в диапазоне микросекунд? От 1 до 10 мс? Более 10 мс? Если это больше, чем несколько мс, есть ли способ уменьшить его до 1 мс или меньше? Если это невозможно на ПК, существуют ли комплекты для разработки звуковых карт с процессором DSP, подходящие для обработки звука в реальном времени?

Во время моей игры с гитарой и басом прошлой ночью я обнаружил, что задержка туда и обратно в 5 мс едва приемлема. Я не мог играть наилучшим образом с задержкой в ​​10 мс — на самом деле я просто нашел бы другое решение, если бы это было лучшее, что я мог получить. Менее 5 мс туда и обратно, вероятно, подойдет большинству музыкантов, я был бы удивлен, если бы кто-нибудь заметил менее 1 мс (если это возможно).

Ответы (2)

Существует множество переменных, влияющих на общую задержку, поскольку существует несколько источников задержки. Задержка вносится процессом аналого-цифрового преобразования, а затем несколькими различными буферами, такими как буфер шины (например, буфер USB) и обычно как минимум два программных буфера (от драйвера и DAW). Если какие-либо плагины являются частью сигнальной цепи, она становится намного более запутанной: некоторые плагины вводят задержку 500 мс или более (это редко для большинства плагинов, но возможно или даже вероятно для упреждающих пиковых ограничителей или свертки). реверберации).

RME, например, заявляет, что задержка для их интерфейса BabyFace составляет всего 14 семплов для драйверов OS X. При частоте дискретизации 96 кГц это составляет менее 1 мс. Это только часть картины. На моем компьютере я запускаю буфер для Ableton Live со 128 семплами, что на частоте 44,1 кГц составляет задержку более 6 мс, и это односторонне. Общая задержка туда и обратно для моих текущих настроек составляет около 12 мс, что недостаточно для записи.

На практике я всегда ценил надежную запись, а это значит, что я хочу буферы большего размера, так как опустошение буфера — это пробел в записи. Большие буферы означают больше выборок задержки. Поэтому я всегда могу контролировать звук, не полагаясь на звук, проходящий через DAW. Когда я записываю в канале DAW, канал включен для записи, но также отключен звук. Затем я использую либо микшер, либо интерфейс с мониторингом с малой задержкой (цифровой микшер, встроенный в интерфейс), чтобы комбинировать звук выступления с почти нулевой задержкой, смешанный с существующими минусовками или клик-дорожкой.

Если вам нужна цифровая обработка звука со сверхнизкой задержкой, один из вариантов — получить выделенную вычислительную мощность. В настоящее время доступно множество аудиоинтерфейсов, включая некоторую базовую обработку звука (эквализация, эквалайзер, реверберация) как часть их цифровых микшеров для мониторинга с малой задержкой. Есть несколько высококачественных продуктов, которые сочетают в себе интерфейс с выделенным DSP, который можно использовать в режиме реального времени или для редактирования и микширования, например, продукты UAD Apollo.

Как прокомментировал JCPedroza, существуют инструменты, позволяющие выполнять обработку в реальном времени с использованием собственной мощности ЦП. В настоящее время я мало что знаю о них.

С недорогим (160 долларов США) USB-аудиоинтерфейсом, работающим под управлением OS X на MacBook Pro с процессором i5, я не могу получить задержку в оба конца ниже 6 мс без действительно плохих артефактов. Я подозреваю, что лучший интерфейс даст мне лучшие результаты. По-видимому, большинство интерфейсов Thunderbolt имеют гораздо меньшую задержку, чем интерфейсы USB.

Редактировать: здесь есть диаграмма задержки для одной марки быстрых интерфейсов Thunderbolt .

Задержка приема-передачи* (мс) протестирована на частоте 96 кГц в ОС 10.10 и Mac Pro.

Размер буфера Pro Tools 11 Logic Pro X Cubase 7 Ableton Live 9 Reaper 4.7
32 н/д 1,67 1,67 2,09 1,44
64 1,38 2,33 2,33 2,42 2,11
128 2,29 3,67 3,67 3,76 3,44

Из этого мы можем вывести несколько вещей:

  1. Вы можете получить задержку менее 1 мс в пути, от микрофона к сэмплам, но время прохождения туда и обратно занимает примерно вдвое больше времени, и это будет более 1 мс для всех, кроме самых дорогих интерфейсов.
  2. Программное обеспечение, которое вы используете, имеет значение (я был удивлен, увидев ProTools с самой низкой задержкой).
  3. Меньшие размеры буфера имеют решающее значение для получения минимальной задержки, но могут привести к проблемам с качеством звука, если компьютер недостаточно мощный.
  4. Более высокие частоты дискретизации (диаграмма частоты дискретизации 48 кГц здесь не приводится, но она медленнее) также имеют решающее значение для получения минимальной задержки, но опять же оказывают давление на аппаратное обеспечение компьютера.

TL;DR: с правильным (в основном дорогим) интерфейсом, компьютером и программным обеспечением это можно сделать.

Отличный ответ, но, возможно, вы недооцениваете процессоры компьютеров для звука в реальном времени и использования вживую. Есть бесчисленное множество примеров артистов, успешно использующих процессоры для обработки звука живых выступлений, один из известных примеров - Nine Inch Nails, использующие Mainstage, который запускает все, «от вокальных эффектов до гитарных патчей». Проверьте youtube.com/watch?v=4kU0skUZTIw
@JCPedroza Если Apple хочет продать мне что-то, то NIN, исполняющие Survivalism в видео, — хороший способ сделать это. Кроме того, я как раз сегодня работал с басистом, и мы говорили о том, чтобы сделать целый набор клавишных из ноутбука, и думали, что мы не сможем этого сделать, но теперь похоже, что мы, возможно, сможем. Спасибо!

Я много лет использую Linux для музыки в реальном времени, и у меня никогда не было случая, чтобы сквозная задержка превышала пару миллисекунд. Проверьте kxstudio. Я не могу говорить с Windows или Mac, так как у меня не было опыта их использования для музыки.

У меня нет представителей, чтобы комментировать, но, конечно, будьте осторожны с ноутбуком на сцене, особенно с аудиоинтерфейсом USB. Но это другая тема.

Если вы используете Linux, я думаю, что ваш jack Gui должен отображать вашу задержку. Но я почти уверен, что это не будет включать никаких задержек в вашей звуковой карте или модулях. Золотой стандарт, если вы хотите включить все в аудиоцепочку, заключается в том, чтобы подключить аудиовыход к аудиовходу и записать оба на отдельные дорожки. Затем поднимите их в дерзости или подобном и измерьте.
Да и вообще на "пару миллисекунд". Если загрузка посвящена этому приложению, и вы работаете только с этим выделенным приложением в реальном времени, то, если ваша обработка не является реальной свинью, то в наши дни вы должны получить менее 1 мс. Опять же, предостережение будет, если вы используете USB-аудио, но даже в этом случае с usb3 мне интересно, остается ли это проблемой. Могу я спросить, почему вы спрашиваете об этом?
Чтобы измерить задержку, вы подключаете аудиовыход к аудиовходу и записываете оба на отдельные дорожки. Затем в дерзости или в чем-то другом измерьте разницу.