Автор: · Опубликовано 30/10/2018 · Обновлено 20/04/2019
Чем плоха задержка?
Представим довольно распространенную и очевидную ситуацию. Вы играете дома в компьютер через Guitar Rig, например. Так вот, в этом случае мы имеем дело полной задержкой. И вот представьте себе, что задержка у нас больше 12 мс. В этом случае, мы чувствуем или даже слышим, что между тем, как мы дёрнули струну на гитаре и тем, как мы её услышали в наушниках, прошло какое-то время. Это, мягко говоря, некомфортно, особенно при переходе с полностью аналоговой аппаратуры. Впрочем, «порог комфорта» тут сугубо индивидуален – кому-то все хорошо и при 17 мс задержки, а кому-то некомфортно и при 10 мс.
Латенси или запаздывание звука
Задержка звука — это то время, которое требуется сигналу (например, гитарному соло), чтобы пройти от входа аудио-интерфейса или линейного входа звуковой карты, потом в DAW, и снова в интерфейс или на выход встроенной карты. Мы можем влиять лишь на один параметр в этой цепочке – входную задержку, то есть то время, которое нужно сигналу, чтобы попасть в DAW.
Именно тут в дело вступает драйвер, точнее его производительность. В любом изохронном драйвере (а именно такой используется, как в USB, так и в Fire Wire при передачи потоковой информации, например, аудио сигнала) есть два слоя. Второй слой обеспечивает буфер для Core Audio или ASIO приложений, например, DAW. И это именно тот слой, которым мы можем управлять.
Обычно, нам нельзя выставлять размер буфера во временной величине (например, 2,9 мс), вместо этого у нас есть список, привязанный к сэмплам, и мы можем выбирать числа из списка (например, 128 сэмплов). Всё это делает вычисление времени задержки более сложным. А большинство музыкантов скорее запомнят все тексты Rush, нежели то, что 512 сэмплов примерно равно 11-12 мс задержки на частоте дискретизации 44,1 кГц! (Чтобы получить миллисекунды из сэмплов нужно просто разделить число сэмплов на частоту дискретизации. Например, 512 сэмплов / 44100 Гц = 11,6 мс)
На операционной системе Mac OS размер буфера, который мы устанавливаем в настройках аудио редакторов относится сразу и к входному и выходному буферу. То есть, если вы выставили буфер в 128 сэмплов, то и входной и выходной буфер будут равны 128 сэмплов. Таким образом, в самом лучшем случае фактическая задержка будет в два раза больше, выставленного нами буфера.
Например на Windows, если в настройках ASIO вы выставили буфер в 128 сэмплов, то только выходная задержка может быть равной 256. В таком случае, может получиться так, что два буфера дадут общую задержку в 384 сэмпла. Что означает, что наши 2,9 мс (128 сэмплов) превратятся в 8,7 мс на частоте 44,1 кГц.
У аналого-цифровых и цифро-аналоговых преобразователей тоже есть своя задержка, т.к. они тоже имеют свой буфер. Эта задержка обычно составляет от 0,2 мс до 1,5 мс в зависимости от качества преобразователя. 1 мс – это не так много и вряд ли повлияет на качество испольнения, но это всё равно вносит вклад в общую задержку. Для нашего примера с буфером в 128 сэмплов, 0,5 мс на каждый преобразователь добавляют к общей задержке 1 мс, то есть из 8,7 мс мы получаем 9,7 мс. Но все равно, 9,7 – это всё еще ниже порога человеческого восприятия и не должно ни на что влиять.
Как с ней можно бороться
Способ 1. Драйвера
Стоит сразу заметить, чтобы вы не вводили себя в заблуждение данным вопросом, запаздывание или латенция есть на всех операционных системах, при использовании любого интерфейса, так же и на встроенной звуковой карте вашей материнской платы или ноутбука. Единственная разница — это ее величина и не более. При воспроизведении и записи той же электрогитары или клавиш, задержка через аудио интерфейс будет на порядок ниже, чем при прямом подключении к линейному входу материнской платы. Поэтому не верьте никому, что на Mac OS ее нет, а при покупке дорогой звуковой карты она так же пропадает — это не так и вас просто вводят в заблуждение, она останется, но уже практически не будет заметна для нашего уха.
Например на маках с линейным входом и хакинтошем ее значение можно свести практически к нулю или сделать совсем не заметной за счет драйвера уже встроенного в операционную систему Mac OS и при этом не ощущать большой нагрузки на процессор при записи музыкальных инструментов.
И все это достигается выставлением низкого количества семплов:
В реальности можно накрутить еще ниже, но это уже для нашего уха не сыграет никакой роли во-первых, а во-вторых уже намного сильнее нагрузит процессор компьютера, что может проявиться дефектами при воспроизведении.
Такого же низкого показателя можно добиться и на Windows, но для этого вам понадобится купить аудио интерфейс, без него минимальная задержка будет составлять 11-14 мс (не буду особо вникать в десятые доли) и при этом уже возможны затруднения обработки сигнала, которые будут проявляться щелчками, тресками и прочими дефектами.
А теперь как же бороться. На Windows обязательно устанавливаем драйвер ASIO для использования встроенной звуковой карты, и драйвер производителя если у вас аудио интерфейс. Данные драйвера позволяют снизить значение задержки до менее ощутимых. В реальности можно нормально играть уже при задержке 11,6 мс, рекомендуют конечно ставить меньше, но по сути это большой роли не сыграет, так как ваши уши привыкнут к любой не значительной задержке при воспроизведении и вы ее перестанете слышать, а по концовке вам все равно прийдется это поправить в аудио редакторе, поэтому во многих случаях не так и важны эти 2-3 мс. Но многие видят в них огромный минус, так как после привыкания играть с запаздыванием звука уже становится сложно играть без него, например подключившись напрямую к усилителю.
На маках все намного проще, для снижения значения достаточно войти в настройки аудио редактора и поставить низкое количество сэмплов для встроенной карты. Если же использовать аудио интерфейс, то все так же ставим и настраиваем драйвер от производителя, если таковой имеется, чаще всего величина регулируется количеством семплов непосредственно в редакторе.
Многие в сети пишут, что существуют медленные и быстрые драйвера. В реальности все намного проще и в драйвер аудио интерфейса вшит все тот же ASIO, который так же устанавливается на Windows. Различие влияющее на снижение задержки отнюдь не драйвер, а дополнительная мощность подключенного аудио интерфейса, который берет часть нагрузки с центрального процессора компьютера на себя, тем самым позволяя ЦП использовать больше свободных ресурсов для обработки.
Как же найти этот компромисс?
Обычно, латенси измеряется либо в миллисекундах (что более удобно), либо в сэмплах. Принципиальной разницы для нас это не имеет. Итак, ищем «золотую середину»:
Тактика уменьшения задержку звука (latency):
• Для самой низкой задержки на Mac используйте интерфейс Core Audio. В Windows используйте ASIO интерфейс. (Многие программы в Windows позволяют использовать различные интерфейсы и протоколы: DirectX, MME и WDM, но всегда, если это возможно пользуйтесь ASIO. ASIO — значит минимальная задержка.)
При написании были использованы материалы: jablog.ru
Способ 2. Параллельное подключение усилителя.
Способ очень простой. Вы отключаете мониторинг записываемого инструмента в аудио редакторе и подключаете его параллельно сразу к ПК и усилителю. В данном случае вы слышите звук без какой либо задержки и это позволяет играть более комфортно. После записи исправляете задержку в редакторе.
Избавление от latency в аудиоредакторах после записи
А теперь главное! Не важно какой способ вы выбрали первый и второй ваша задача избавиться от нее полностью и в аудио редакторе, чтобы данную задержку не слышали остальные совсем, даже минимальную. Делается это очень просто с помощью сдвига дорожки влево на значение задержки. Если вы работаете в Reaper, то в нем достаточно указать значение в настройках Audio и включить галочку и после записи он сам все исправит. Возможно, такая настройка есть и вдругих редакторах, обязательно в них поройтесь.
Когда полезен высокий уровень запаздывания
Как бы не показалось странным, но в некоторых случаях нам все же прийдется увеличивать количество семплов для комфортной работы. Связано это с тем, что часть используемых VST плагинов так же создают пусть и минимальную, но задержку звука, чем грузят драйвер, и плюс к этому потребляют большую часть ресурсов нашего ПК, что создает затруднения при воспроизведении.
Такое часто можно заметить при записи нескольких гитар да еще и с даблтреками. Наложение того же Rig 5 или Bias FX с включенным высоким качеством обработки на каждую гитару, наложение компрессоров и эквалайзера, миди барабанов и баса, а так же эффектов на мастер шину создаст значительные трудности для воспроизведения. Оно может начать заикаться или же не воспроизводится вовсе. В этом случае для финишной обработки, когда нам важно слышать все инструменты вместе, стоит повысить количество сэмплов, чтобы разгрузить процессор.
Как вы можете понять значение уровня Latency важно не только для записи, как многие думают, но и для обработки в последствии записанного звука.
Очень важно — не забудьте после редактирования, перед включением рендера, вернуть показатель семплов опять в минимальное значение!
Если вам есть что дополнить к выше написанному, обязательно поделитесь этим с нашими читателями.
Вас могут заинтересовать:
Промышленное программированиеПрограммирование микроконтроллеров
Обычно люди идут в магазин автозвука и покупают компоненты. Я же сначала спаял цифровой аудиопроцессор, а компоненты поставил какие есть.
Самая большая проблема автозвука-установка динамиков в самых неподходящих местах: динамик который играет прямо в ногу, сабвуфер массирует спину, влияние формы салона. Пока звук дойдет до ушей он будет уже не тот. Именно поэтому я начал с DSP-процессора.
1. Начало2. Что внутри3. Установка4. Настройка4.1 Настройка задержек4.2 Настройка АЧХ5. Прослушивание6. Итоги, достоинства, недостатки7. Бонус
- Мид, Мидбас — Динамик для низких и средних частот(примерно 80-3кГц)
- Пищалка — Динамик для высоких частот (3кГц-20кГц)
- Саб, Сабвуфер — Динамик для самых низких частот (20-80Гц)
- Фазоинвертор — труба в корпусе колонки(сабвуфера), настроенная на определенную частоту для увеличения звукового давления
- АЧХ-Амплитудно-Частотная Характеристика — График зависимости звукового давления от частоты. Идеальная АЧХ — прямая горизонтальная линия. Влияет на восприятие тонального баланса звука.
- Параметрик, параметрический эквалайзер — Фильтр с заданной частотой, добротностью, уровнем и типом фильтра(в данной статье peak и lowshelf). В отличие от простого графического эквалайзера является более гибким и применяется в целях коррекции влияния компонентов, установки, помещения(салона). Обычно применяется в студийной и концертной аппаратуре. Без измерения микрофоном настроить практически нереально.
Вдохновился разработками фирмы miniDSP и захотел создать подобное для машины. Сердце процессора чип от Analog Devices ADAU1701
Это готовый DSP процессор для аудио со встроенным 2 канальным АЦП и 4 канальным ЦАП. Практически все используют его в режиме 2х4. Но у меня самая обычная для авто система: 2 мидбаса, 2 пищалки, сабвуфер. Нужно минимум 5 каналов.
Почитав описание выяснилось, что чип поддерживает подключение внешнего ЦАП по I2S шине.
Спаял все на макетке и проверил:
Чип действительно выдает все сигналы для работы цапа и поддерживает дополнительные каналы.
Была разработана и спаяна плата:
Подобран корпус и сделаны передние и задние панельки:
с другой стороны:
- Гальваническая развязка питания с входом Remote (чтобы выключался от магнитолы и не расходовал аккумулятор)
- Сам чип ADAU
- EEPROM для хранения настроек ADAU.
- Чип Cypress cy68013a для прошивки через USB. Плата определяется как программатор Analog Devices USBi. Подключен к ADAU через I2C шину. Можеть прошивать ADAU на лету и EEPROM для сохранения настроек.
- ЦАП PCM1754 2 канала
- Входные и выходные операционники с фильтрами по даташиту
- 2 входа тюльпан и 2 высокоуровневых входа (используются либо тюльпаны либо высокоуровневые. Вместе нельзя)
- 5 выходов тюльпан
- 2 входа внешнего управления. На каждый можно подцепить кнопку или переменный резистор (крутилку).
Схема главного блока:
Усилки: 1 готовый ACV 4 канальник (чёрный справа) и 1 самодельный для пищалок (снизу, серебристый):
сам дсп процессор сверху слева серебристый в плёнке. Межблочные кабели: самодельные сделанные в размер
динамики в дверях:
Настройка ведется через утилиту SigmaStudio:
Она позволяет как угодно тасовать блоки обработки, входы, выходы. Все настройки применяются “на лету”. Но после перезагрузки чип загружается с EEPROM, поэтому настройки сами не сохраняются. Нужно принудительно прошить EEPROM в этой же утилите.
Во первых были настроены все уровни:
- На процессоре по максимальному сигналу магнитолы.
- На усилителях так чтобы соответствовали мощности динамиков.
- На усилителе пищалок уровень выставлялся таким, чтобы сильно не изменять его в процессоре (На пищалках любой шум будет прекрасно слышен, поэтому лучше не перекручивать усиление).
На этом настройка отверткой закончена. Дальше все только с ноута в сигма студии.
4.1 Настройка задержек
Рулеткой замерил расстояние до динамиков. Затем пересчитывал так:
Расстояние=(Расстояние до дальнего динамика)-(Измеренное расстояние)
Таким образом получено расстояние на которое нужно “отодвинуть” динамик.
Максимальная задержка получается для левой пищалки. Минимальная для правого мида и сабвуфера. Так получилось что сабвуфер и правый мид оказались на одном расстоянии.
Впоследствии при прослушивании во все каналы была добавлена задержка в 100 семплов чтобы “придвинуть” сабвуфер. Это настраивалось на слух. Очень сложно уловить что сабвуфер “придвинулся” как надо. Но если задержку убрать, то слышно что сабвуфер играет как бы отдельно сзади.
4.2 Настройка АЧХ
Далее будет много графиков АЧХ. Сразу уточню почему некоторые красивые, а некоторые кривые. Те АЧХ, которые сняты близко к динамику на расстоянии 5 сантиметров очень красивые. Но при настройке нужно использовать АЧХ в точке прослушивания. Они складываются с отраженным звуком от поверхностей салона. В некоторых местах образуются узкие и сильные провалы от стоячих волн. Это нормально. Если измерить то же самое в помещении с любой крутой системой, то будут такие же кривульки. При настройке АЧХ самое важное выровнять тональный баланс, чтобы была горизонтальная линия без наклонов, сильных горбов и пиков. Узкие провалы не так важны. Их нельзя исправить закачивая больше энергии. Можно только сделать глухую комнату. В машине это просто невозможно.
На данных пищалках частота резонанса 1,4кГц. По паспорту они играют от 3 кГц. Ниже делать опасно. Выше нежелательно-сцена опустится к мидам. Кроме того левый мид не очень хорошо играет 3кГц т.к. находится под большим углом к водителю и закрывается ногой. Угловая АЧХ начинает спадать уже с 2-2,5 кгц.
АЧХ в точке прослушивания:
АЧХ мида с фильтром 3 кГц:
У обоих мидов спад с 400 герц скорее всего из-за негерметичности дверей. Исправлено фильтром Low Shelf.
Для каждого динамика подобраны свои параметры фильтров.
АЧХ мида до коррекции:
При замере сабвуфера выявился существенный подъем в области 50 Гц не зависящий от положения микрофона:
Все динамики были подстроены между собой по уровню. Уровень левого канала немного убавлен, чтобы казалось что сидишь между колонками. Самый хороший эффект дает с задержками.
Финальная АЧХ:
Выше 8-10 кГц-особенность микрофона и входа звуковухи. Дает похожий результат и на других колонках
Финальный результат прошит в EEPROM. Чтобы прошивка заработала нужно перезагрузиться: отключить USB, выключить и включить магнитолу.
Можно приступить к прослушиванию. Проводилось со смартфона с внешним USB ЦАП и записями во flac.
Сцена поднялась, тоесть звук перестал идти из ног и непонятно откуда. А переместился вперед. Все инструменты как живые. Пищалки играют так детально и слитно с мидбасами, как не играли никогда.
Такое ощущение что выкинули все эти мутно звучащие динамики и поставили новые. Удивительно что простые дешевые динамики могут ТАК играть. Сабвуфер перестал бубнеть. Не утапливает все басом. Звучит монолитно с фронтом. Иногда думаешь: где саб? Почему не звучит? А если выключить, то сразу слышно.
После прослушивания была еще одна доработка. На АЧХ сабвуфера заметно, что несмотря на хороший фильтр он играет достаточно далеко за свой диапазон. На музыке это сказалось в том, что его звук как бы затягивает удары и низкие ноты которые и так отыгрываются передними динамиками. В итоге был добавлен еще 1 фильтр выше 100 герц. И этот недостаток пропал.
Вывод: не динамики красят звук. Динамики просто должны быть достаточно качественными и нормально установленными. Но самое главное: НАСТРОЙКА. С готовыми кроссоверами без настройки вы никогда не получите идеальный результат. Можно мучаться и менять систему постоянно или настроить 1 раз и радоваться звуку.
Недостатки:
- Придется большинство песен с флешки удалить и найти замену в нормальном качестве.
- На большой громкости миды звучат хуже. Это недостатки самих динамиков и установки.
- Самый главный недостаток системы задержек — звук имеет хорошую “сцену” только на водительском месте.
Вчера проехался на пассажирском: звук вроде тот же, но уже какой-то простоватый, нет глубины. В безпроцессорной системе этот недостаток тоже есть, но там нет такой большой разницы. Что у водителя, что у пассажира “сцена” хуже, чем на водительском месте системы с процессором.
Кто внимательно читал “ЦАП PCM1754 2 канала”. Это значит что процессор получился 6 канальный! Чтобы получить шестой канал достаточно припаять еще один тюльпан к выходу ЦАПа.
Используемые источники:
- https://ddr5.ru/chto-takoe-zaderzhka-zvuka-latency-i-kak-s-ney-b/
- https://m.habr.com/ru/post/313946/