Цифровое моделирование звука
Автор статьи — Желдаков Александр.
С появления первых гитарных форумов идет война, что круче лампа или цифра. Бои не умолкают ни днем, ни ночью. Ведь оно ж даже ослу ясно: раз лампа блестит и нелинейно нагревает пространство в комнате — значит звучит куда круче цифры. Давайте попробуем разобраться, почему не так сложно взять и смоделировать теплую нелинейную лампу бездуховной цифрой. Заодно рассмотрим типичные заблуждения, касающиеся цифрового оборудования.
Сначала я сразу расставлю все точки над й. Данная статья не претендует на научный труд, её задача в максимально простой форме рассказать основные подходы к цифровому моделированию звука и развеять некоторые наиболее часто встречающиеся мифы.
Начнем. К устройствам цифровой обработки звука относятся только те приборы, в которых для обработки звука используется некое подобие вычислительной машины.
Так компьютер с гитарриг или зум505 — это цифровая обработка, а самый навороченный аналоговый транзисторный комбик нет (да транзисторы тоже могут быть аналогом!). Цифровые устройства не являются аналогами ламповой техники. Их задача — не раскачивать кабинет или стены, а получать сигнал, максимально приближенный к сигналу, снятому с оборудования в звукозаписывающей студии.
Перед началом обработки сигнал с гитары должен попасть в процессор. Но проблема в том, что большинство современных процессоров умеют делать только нехитрые махинации с ужасными цифрами вида 10001000. И тут наступает пора оцифровки сигнала, и в дело вступает АЦП (аналогово- цифровой преобразователь). АЦП делает из непрерывного сигнала последовательность цифр. Сразу злые языки скажут, что весь звук пожрет АЦП своей жалкой дискретизацией. Рассмотрим этот миф подробнее. АЦП выполняет две задачи: дискретизацию по времени и по уровню. И если взять достаточно много «точек» по времени и уровню, то исходный сигнал можно восстановить практически без потерь (даже самый дешевые современные цифровые педали эффектов содержат АЦП на 44 кГц и 24 бита, где ошибка квантования по уровню не превзойдет 0,0006%).
Теперь самый интересный этап — моделирование. Возникает вопрос: а что такое модель и моделирование? Возьмем стадо овец, где все овцы взрослые, и примерно одного возраста и веса. Самой простой моделью этого стада будет некая абстракция — число овец. В процессе работы с числом овец мы производим моделирование, поэтому важно понимать — моделирование работает только с моделью и не имеет напрямую никакого отношения к действительности. Используя эту примитивную модель, мы сможем решать 90 процентов задач, с которыми сталкиваются овцеводы. Им все равно сколько атомов на шерсти каждой овцы и как моделировать их сердцебиение с использованием теории хаоса, главное кормить! Продавать! Забивать!
Вернёмся к ламповому усилителю, наша задача сделать модель, которая удовлетворит 99.5% музыкантов по функционалу и будет максимально простой и дешевой в производстве. В мире существуют два основных класса моделей аналоговых систем: линейные и нелинейные. Тут стоит сделать пояснение: свойство линейности и нелинейности относится к моделям, а не к устройству. Усилитель не знает, что он нелинейный! Линейные системы наиболее простые, в них мы можем разбить входной сигнал на части и пропускать их через элемент независимо. Если пропустить через такую систему условно единичный импульс, то мы получим отклик системы (рис 3). Этот отклик обычно называют импульсным ответом (импульсная характеристика) системы или просто импульсом и любую линейную модель системы можно полностью определить этим импульсом. При цифровой обработке мы используем не непрерывный импульс, а его дискретный аналог. И для моделирования любого элемента, близкого к линейному, нам понадобится получить дискретный импульс, а потом только складывать и умножать (так любимая всеми свертка). Симуляцию на основе импульсов обычно применяют для моделирования кабинетов, реверберации, близких к линейным узлам усилителей и т.д.
Часто импульсный ответ путают с амплитудно-частотной характеристикой АЧХ системы, но это принципиально разные вещи. АЧХ характеризует, насколько сильно усиливает или ослабляет линейный элемент амплитуду гармонического сигнала с конкретной частотой. И в отличие от импульса АЧХ полностью не характеризует систему. Здесь требуется сделать оговорку: реальный сигнал (не гармонический) не знает, что у него есть частоты гармоники и т.д., особенно четные или нечетные. Но в некотором приближении звуковые сигналы можно считать условно периодическим, а такие сигналы почти без потерь представляются в виде суммы синусоид, которые можно называть гармоники. Моделирование линейной системы возможно с использованием АЧХ вместо импульса. Для этого сигнал разбивают на синусоиды, каждую умножают на коэффициент АЧХ, потом результаты складывают. Подход с АЧХ удобен при моделировании параметрических эквалайзеров и устройств с известной АЧХ.
Сразу можно спросить: а почему нельзя все элементы усилителя заменить линейными моделями? Оказывается, есть детали усилителя, которые настолько сильно не похожи на линейные модели, что попытки их упростить приведут к непоправимым травмам психики музыканта. Например, эффект перегруженного звука возникает при грубом нарушении условия линейности (рис. 2).
Тогда почему не «забить» некую кривую и определять выходной сигнал по ней? В первых цифровых процессорах так и было. Но оказалось данная модель лишь отдаленно напоминает настоящий ламповый тракт, где кривые могут меняться в зависимости от входного сигнала, скорости его изменения, фазы меркурия и прочей нечисти. Качественное моделирование подобных устройств производят с использованием динамических нелинейных моделей. Создание таких моделей требует больших знаний и трудозатрат, нежели в случаях с линейными моделями. Как тогда быть? Можно пригласить суперучёного, который соберет команду и в течение 10 лет кропотливого труда создаст квантовую модель одного единственного винтажного комбо с учетом каждого атома, справедливую в условиях близких к абсолютному 0, и для реализации, требующей всех вычислительных мощностей мира. Очевидно, что данный подход не применим к нашему случаю. И для моделирования таких систем обычно делают одну или несколько сильно упрощённых моделей (можно просто угадать модель) с кучей параметров, которые подстраивают под внешние характеристики нелинейного элемента на заводе. Главный критерий — семейство сигналов, прошедший через неё, были близки к сигналам, полученным с реального оборудования, настолько, чтобы подавляющие большинство потенциальных покупателей на выходе не заметили разницу. В отличие от линейных моделей, нелинейные обычно требуют больших вычислительных ресурсов и хуже «ложаться» на архитектуру процессоров. Поэтому многие устройства, стараются «упрощать» до линейных.
Тут стоит упомянуть следующий миф: вся эта кривая заумная математика, свертки и прочая чушь не точна и не позволила устройству X получить теплый ламповый звук. Бредовость этого довода легко проверить, сев на любой современный самолет. Пилот может ввести только исходные параметры, и вся эта кривая математика позволит ему взлететь, долететь и сесть вообще без участия пилота (а как насчет автоматической стыковки в космосе?). Но на рынке полно различных устройств, и у всех звучание находится на разном уровне. Так в чем тут дело? Основным ограничением качества моделирования на данный момент является не математика, а вычислительная мощность аппаратной части. Для многих оказывается тайной, что у производителей цифровой техники главный критерий удачного продукта — не суперзвук, а количество полученной прибыли. Можно из дорогих компонентов сделать топовый процессор стоимостью 3000 у.е, который купят несколько тысяч музыкантов, или сделать простое и достаточно качественное устройство за 100 — 200 у.е., которое купят десятки миллионов.
После обработки сигнал в зависимости от типа устройства и пожеланий может быть послан либо на линейный выход через ЦАП, либо на компьютер для работы в DAW. Тут стоит рассказать о ещё одном мифе — адская задержка. Отчасти это может быть справедливо (особенно для обработки звука на компьютере), но стоит разделять задержку на линейном выходе процессора и задержку на записи в компьютер, если первая обычно не превышает 1 — 2 мс даже на дешевых устройствах, то задержка записи может достигать значительной величины. При умении работать с оборудованием обе эти задержки не приносят никакого неудобства.
Подведем итоги. Цифровые устройства и программы обработки гитарного звука и ламповая техника — принципиально разные вещи, каждая из которых может служить для определенных задач, так цифровые устройства способны моделировать физически нереализуемые усилители. Технических проблем качественно моделировать гитарный звук не существует. Для моделирования лампового усилителя или самолета глупо делать модель видимой части вселенной, достаточно ввести достижимые критерии адекватности и ориентироваться на них. Большинство доводов против или за цифровые эмуляции носят эмоциональный характер.
10 Комментариев:
Alex
07 мая 2016, 07:46
"но стоит разделять задержку на линейном выходе процессора и задержку на записи в компьютер"... Непонятно. Если все равно сигнал проходит цепь "обработки" одинаково, но потом или в цифровом виде идет в DAW или проходит ЦАП, почему задержка ЦАП минимальна, а в цифровом выходе может быть значительной?
mike
13 мая 2016, 03:49
Потому что внешний гитарный процессор отпимизирован для обработки звука и только ее, он не занят другими операциями. Когда сигнал идет в DAW, в этом участвует уже операционная система компьютера. Windows и MacOS созданы для управления миллионом задач, и музыка там далеко не на первом месте. Поэтому и возникает гораздо более длинная задержка. Как и написано в статье, внутренняя задержка процессоров не превышает 2 мс - это ок. А задержка при проходе сигнала в компьютер будет как минимум 6-7 мс, это при использовании ОЧЕНЬ хорошего интерфейса и минимально размера буфера, то есть серьезной нагрузкой на и без того нагруженный Windows или MacOS. Более реальные величины - 10-15 мс, это уже совсем не ок. Поэтому внешний процессор - однозначно лучшее решение, так как он и проблему задержки решает, и нагрузку с компа убирает.
Alex
13 мая 2016, 13:53
mike, ОК, спасибо. Я так и подумал, что это особого отношения к _процессору_ не имеет, это вопрос компьютера (комплектующих, ПО и еще кучи нюансов). Потому уточнил. Это на самом деле важный момент.
Просто все это неочевидно, особенно новичкам, и многие начитавшись глупостей в интернетах, начинают обвинять совсем "не то". Есть хороший пример, более "бытовой", чем музыка. Системы видеосвязи (например, Skype). Я много раз сталкивался с проблемой "у меня видеозвонки по качеству говно, потому что плохой интернет". Человек покупает приличную веб-камеру (FullHD, к примеру), у него приличный канал связи, а качество звонка все равно - говно. И у того, с кем он общается тоже приличные камера и канал. А ларчик открывается очень просто иногда - для передачи изображения в высоком разрешении нужно, чтобы процессор успевал обрабатывать видео (соответствующего качества) "на лету". И многие производители ПО явно пишут, что нужно (к примеру) минимум четырех-ядерный процессор. Иначе ПО увидит "недостачу" и... правильно, насильно понизит разрешение и качество, чтобы не "убить" звонком компьютер. Не зная этого куча народу начинает менять камеры, ругаться с провайдерами, винить злой Windows\Mac\что-то-еще... А результата нет...
Павел Забуруев
13 мая 2016, 14:17
Кстати про скайп. Насколько мне известно, в стародавние времена, когда он был еще маленьким, соединение осуществлялось p2p, то есть напрямую между абонентами. А сейчас весь трафик между ними идет через сервера нашего любимого майкрософта. И если раньше вполне достаточно было бодрого канала для созвона в хорошем качестве, то теперь все зависит от пропускной способности на всех этапах прохождения данных и загрузки серверов. Все эти вылетания звонка, зависания, отключения видео и невозможность передать файл на 10 кБ — это вот оно.
Alex
13 мая 2016, 14:30
Согласен. Скайп скатывается в УГ просто нереально ударными темпами :( И ответ на то, почему это происходит, кстати, есть в статье выше :))))
"Для многих оказывается тайной, что у производителей цифровой техники главный критерий удачного продукта — не суперзвук, а количество полученной прибыли."
Да. Скайп нужен был как источник технологий для того, что было LCS, затем Lync, а теперь Skype for Business. :) А страдания "бесплатных" подписчиков шерифа .. не сильно интересуют ... как всегда...
Александр
14 мая 2016, 12:15
Немного оффтопа по поводу скайпа и серверов майкрасофт. Приведу перевод части поста директора по развитию скайпа Марка Джиллетта. "Переход на внутренний хостинг «суперузлов» не предусматривает мониторинга и записи звонков. Наши узловые коммутаторы нужны для того, чтобы помочь клиентам Skype найти друг друга и осуществить звонок. Проще говоря, «суперузел» работает как распределенный каталог пользователей Skype. Звонки со Skype на Skype не проходят через наши дата-центры, а «суперузлы» не участвуют в передаче медиаинформации (аудио или видео) между клиентами Skype."
Полная версия.
https://habrahabr.ru/post/148611/
Alex
14 мая 2016, 19:00
Александр, это пост 12 года. То есть еще времен когда использовался "родной" протокол скайпа. С 14 года скайп перевели на Microsoft Notification Protocol (обновленный протокол, который раньше использовал Live Messenger).
Александр
14 мая 2016, 20:52
Да соглашусь) Был не прав. Разбирался в 13 году с этим. Надо посмотреть как теперь работает.
Александр
16 мая 2016, 21:24
Ещё немного офтопа по скайпу. Взял wireshark и два компа с статическим ип посмотрел за 20 мин как идут пакеты. При звонках и передачах фаилов с любых устройств (mac win iphone android) между устройствами есть прямое udp соединение. Весьма вероятно сообщения передаются по udp если оба онлайн. Сервер skype используется при передачи сообщение в оффлаине. Скорость передачи на вин и мак одинаковая и организована сходным образом. Так, что в моем случае сказанное в том посте остается в силе. Больше сказать сложно алгоритм работы сложный и закрытый.
Серж
09 мая 2017, 16:32
Статья про гитарную цифру, а в комментах меряются, из кого круче сисадмин. Рукалицо.
Про цифру и эмоциональность вот что скажу. В миксе цифра тонет, становится парафином.
И вот почему. Сыграйте на одой громкости фразу сначала на лампе, а потом на цифре. А потом, когда включите всё вместе, вы удивитесь на сколько громче нужно сделать процессорную цифру, чтобы она сравнялась по мощности звука с лампой. Весь мир в процах уже давно разобрался. На них играют в галимых клубах, где нет аппарата, либо определяют между предусилителем и оконечником, как генератор эффектов пост обработки. (Дилеи, реверы и т.д.)
Но кажется, настанет тот день, когда цифра сможет и подвинуть аналоговю секцию предусиления. Сравнить зум 505 и Акс фкс2. Любопытно будет посмотреть далее.