Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 week ago
Здесь простым языком про TON, DFC и крипту.
Принимаем автоматически.
Ссылка для друзей: https://t.me/+-EOfWx2pRKhmNGE6
Связь: @deftalk_bot
Last updated 4 days, 16 hours ago
JSFX-плагин к посту ^
После того, как я в десятый раз за неделю наткнулся на упоминание этого плагина из 2011, я решил, что отличная мысль — его разобрать. Итак Sausage Fattener от Dada Life.
Первое, что я увидел — обрезной фильтр низких частот не обновляется при смене частоты дискретизации. То есть 20-30 Гц на 44.1 кГц превращаются в 40-60 Гц на 88.2 кГц. Та же проблема присутствует и в более новой версии — на картинке 2 показана характеристика обоих версий на 88.2 кГц. Более того, между версиями видно небольшое отличие в “горбе” на графике. Сразу скажу, что я рассматривал первую (левую на картинке) версию.
Структуру плагина можно представить следующим образом:
эквалайзер -> компрессор -> софт-клиппер
Эквалайзер представляет собой фиксированный обрезной фильтр низких частот (два фильтра 12 дБ на октаву на 20 Гц и на 30 Гц) и “колокол”, частота и уровень которого зависят от ручки “COLOR” (характеристика на картинке 3).
У компрессора: порог и выходной makeup уровень зависят от параметра FATTNESS. Порог: -1 .. -35 дБ. Выходной уровень: +1 .. +39 дБ.
Атака и восстановление: 2.69 мс и 32.9 мс. Степень: 10:1.
Компрессор реализован не в логарифмической, а в линейной шкале: если в классическом компрессоре применение степени компрессии происходит в децибелах, то тут проще сказать, что в процентах.
Далее идет софт-клиппер на 0 dBFS. Начало колена зависит от параметра COLOR и меняется от 90% до 100% (то есть до хард-клиппинга).
На выходе плагина сигнал изменяется на фиксированные -0.1 дБ. Ручка “gain” меняет входной уровень сигнала (до эквалайзера).
“Горб” на амплитудно-частотной характеристике, который я упоминал в начале, есть следствие наложение софт-клиппинга на измерительный импульс (то есть в реальности он отсутствует).
Характеристика гармонических искажений плагина выглядит очень “грязной” — это следствие использование 32-битной арифметики с плавающей точкой и обрезных фильтров для низких частот — сказываются ошибки округления. В JSFX-плагине во вложении такого эффекта нет.
Вроде бы и все.
Но в какой-то момент я сообразил, что они реализовали feedforward топологию вместо feedback! То есть вся эта сложность от того, что они попытались воспроизвести зависимость времени восстановления от сигнала, как в feedback топологии, но в feedforward компрессоре! Это мне показалось настолько противоестественным, что я решил не доводить дело до конца (то есть в этот раз без JSFX копии, может быть доделаю когда-нибудь потом).
Из интересного по внутренностям: выходной усилитель не промоделирован (как и у Softube CL1B, который я рассматривал в прошлый раз). “Ламповые” гармоники подмешиваются к выходному сигналу в зависимости от уровня компрессии (как в Thrillseeker VBL). Стерео-линк сделан через max() левого и правого сигнала, что в данном случае некорректно.
Еще в аналог первых двух ламп (по “оранжевой ветке”) они в своей модели подают не аудиосигнал, а его огибающую. Для цифровой реализации это позволяет бороться с алиасингом и получить более чистый звук, но интересно, что замешиваются два детектора: 75% пикового и 25% — RMS. Те четыре детектора огибающей, про которые я упомянул выше, эмулирующие оптокомпрессию, не RMS (по логике, для эмуляции оптопары детекторы должны быть RMS, но честно говоря, это надо бы проверить).
В целом по звучанию CA-2A — хороший компрессор. Видно, что старались подогнать звук и поведение под оригинал, но на мой взгляд внутренность переусложнена.
Мы так быстро вошли в тему оптокомпрессоров с CL1B, что толком не начали с LA-2A. Предлагаю немного вернуться.
Итак, LA-2A (картинка 1) — самый классический ламповый оптокомпрессор, актуальный и по сегодняшний день. Он очень удобен в использовании благодаря всего двум ручкам — порогу срабатывания (PEAK REDUCTION) и выходному уровню (GAIN). Даже в мире плагинов, если на какой-то дорожке требуется быстро подправить динамику, эмуляция LA-2A — первый выбор. Из-за минимальных органов управления LA-2A часто рекомендуется в “быстрых” миксах, когда нужно не зарываясь в детали и не теряя общую картину из вида, преобразовать мультитрек во что-то удобоваримое.
В свое время фирма UREI выпустила варианты развития LA-2A — оптокомпрессоры LA-3A на тразисторах (картинка 2) и LA4 на операционных усилителях (картинка 3). Хотя они используют ту же самую оптопару, и сама компрессия должна быть равнозначной, они не получили такой популярности.
Я нашел удобоваримую схему LA-2A (картинка 4). Давайте ее быстро посмотрим и ответим на вопрос: является ли LA-2A компрессор feedforward или feedback?
По картинке: входной сигнал (зеленая линия) уходит в схему компрессии (оранжевая линия), проходит пару ламп, формирующих порог срабатывания, затем лампу-усилитель, затем на излучатель, свет из которого влияет на фоторезистор (красная линия). Чем больше света, тем больше сигнала уходит “на землю”, то есть больше уменьшения уровня сигнала. Затем сигнал (зеленая линия) дальше идет на выходной ламповый усилитель и на выход.
Вроде бы на первый взгляд это feedforward компрессор — сигнал берется с входа, получается сигнал уменьшения уровня, затем он после этого применяется на входной сигнал, чтобы получить выходной. Так?
А вот и нет. В аналоговой схеме точки A (из которой уходит оранжевая линия) и B (где фоторезистор) — это суть одно и то же. Они “скованные одной цепью”, а если включить переключатель COMPRES/LIMIT, то это вообще одна точка. То есть по оранжевой линии уходит уже скомпрессированный сигнал, а это значит, что это feedback компрессор.
Если мы вынесем выходной усилитель “за скобки”, т.к. он не влияет на саму компрессию, и подумаем про разницу в звуке компрессии между LA-2A, LA-3A и LA4, то несмотря на использование одной и той же оптопары разница должна быть. В случае LA-2A на “колено” компрессии влияет характеристика первой пары ламп по “оранжевой ветке”, а на сатурацию сигнала компрессии вторая лампа там же. Чем больше компрессии — тем больше гармоник она вносит в управляющий сигнал. Что-то подобное мы видели в Thrillseeker VBL (гармоники, управляемые сигналом GR).
В компрессоре CL1B, как основанном на LA-2A, управляющая схема однако сделана на операционных усилителях и транзисторах. В частности первой паре ламп на “оранжевой ветке” там соответствуют операционники с диодами, а вместо второй лампы — JFET транзистор. (Кто знаком с гитарными педалями, возможно знает, что звучание JFET транзистора немного напоминает звучание лампы).
Последний вопрос по схеме: резистор R37 на схеме (в желтом круге) с надписью “LIMITER RESPONSE”. Этим резистором можно сделать подъем на частоте 15 кГц, то есть компрессор будет компрессировать эти частоты больше. (Опять таки что-то подобное мы уже видели в Thrillseeker VBL). Я бы относился к этому, как к де-эссеру “для бедных”.
Существует множество плагинов-эмуляций LA-2A. Я решил посмотреть на внутренности Cakewalk CA-2A от 2016 года (картинка 5) и сразу обратил внимание на очень сложную схему получения динамического времени восстановления: 4 детектора, отдельный детектор, который применяет атаку/восстановление на динамическое время восстановления, сложные формулы (а не кусочно-линейные таблицы, как у Softube).
JSFX-плагин к посту ^
А как комбинируются два режима “fixed” и “manual”? В плагине берется просто максимальное значение из двух сигналов. Да, простой математический max(). И stereo-link сделан так же — простой max (после T12). После всех сложных снятых “аналоговых” зависимостей такое упрощение мягко говоря расстраивает. Да, и где “ламповый” звук? Единственное, что разработчики для этого сделали — на выходе применили простой эквалайзер, который “заваливает” высокие частоты, придавая мягкое “ламповое” звучание (рисунок 5). Возможно это связано с тем, что плагин изначально создавался для платформы PowerCore, и это дало некоторые ограничения на функциональность.
И наконец, последний вопрос. А где у компрессора сайдчейн фильтр? А его нет. Кстати и в оригинале тоже. В общем, это наверное все. JSFX-плагин с копией CL1B во вложении.
Сегодня рассмотрим плагин Softube CL1B старой версии (2007 года). Плагин эмулирует компрессор Tube Tech CL1B. Что про него известно? CL1B — это более технологичная (используются печатные платы) версия CL1A, который представлял собой развитие компрессора LA2A. Как и LA2A, это оптокомпрессор, то есть для управления сигналом используется фотоэлемент, и в качестве усилителя выходного сигнала используется ламповый усилитель. В отличие от LA2A, в котором время атаки и восстановления определяется самой оптопарой, и степень компрессии выбирается переключателем compress/limit, в CL1B возможно ручное управление временем атаки и восстановления и плавная регулировка степени компрессии Ratio.
Еще в CL1B есть переключатель, позволяющий отключить ручное управление временем атаки и восстановления, оставив только фиксированные характеристики оптопары. Либо есть возможность скомбинировать оба режима, в этом случае, согласно документации, единичные пики будут обрабатываться с быстрым фиксированным временем восстановления, а для продолжительной компрессии использоваться заданное пользователем время восстановления. В CL1B аудио-сигнал обрабатывается исключительно лампами, а вот цепь управления сделана на транзисторах и операционниках.
Теперь перейдем к плагину (скриншот на рисунке 1). Разработчики решили сделать максимальную эмуляцию железа, и “скололи” аж 13 таблиц характеристик потенциометров и нелинейных элементов (рисунок 2). Между “сколотыми” точками используется линейная интерполяция. Это приводит к тому, что характеристика плагина состоит как-бы из кусочков (пример на рисунке 3).
Все эти таблицы в сочетании составляют следующую схему обработки сигнала (рисунок 4). Что по ней видно? Во-первых, это feedforward компрессор — сайдчейн сигнал берется со входа, а не с выхода. Есть, правда, некоторая загадочная цепь обратной связи: T5, T6 и F_lin (F_lin — простая линейная функция, где положение и наклон линии зависит от двух входных параметров). Скажу честно, что я открыл схему оригинального CL1B и не нашел там этой цепочки. Возможно, это какое-то нелинейное влияние излучателя света в оптопаре.
Теперь про оптопару. Если меня спросить, какая характерная особенность звучания у оптокомпрессора, то я отвечу, что у него идет сначала быстрое время восстановление, потом медленное. Проще всего себе представить, как-будто что-то нагревается, а потом медленно остывает, то есть сначала идет обычное восстановление, а потом “тепловое”. При длительной компрессии этот эффект “нагрева” усиливается. Все это звучит очень музыкально. И еще, оптоэффекты по идее должны иметь RMS характер, то есть звучание оптокомпрессора похоже на RMS компрессор с двойным “динамическим” временем восстановления.
Где же этот эффект в CL1B? Разработчики упростили его до крайности: в пропорции 30% и 70% замешиваются две цепочки attack/release со временами 1.3/1.8 ms и 28.0/26.3 ms. Не RMS.
На рисунке 4 показана работа компрессора в режиме “fixed”. В режиме “manual” дополнительно используется задаваемое пользователем время атаки и восстановление, но я в первый раз такое вижу, когда время контролирует не степень сглаживания, а ограничение скорости! Представьте себе, что атака и восстановление задают условный порог скорости, скажем в вольтах в секунду, и быстрее него идти нельзя! Получаем линейное нарастание уровня сигнала в случае атаки и линейный спад в случае восстановления! (причем, не в логарифмической шкале, то есть не в дБ в секунду). Мне кажется, что именно это задает специфичное звучание компрессора, но не знаю, насколько такая реализация совпадает с оригиналом.
^ JSFX плагин к посту
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 week ago
Здесь простым языком про TON, DFC и крипту.
Принимаем автоматически.
Ссылка для друзей: https://t.me/+-EOfWx2pRKhmNGE6
Связь: @deftalk_bot
Last updated 4 days, 16 hours ago