Steinberg WaveLab для самых начинающих. Урок 5-й

Еще раз хочу выразить благодарность за хорошие отзывы о данной серии, и сегодня мы поговорим о плагинах — неотъемлемой части при работе с современным звуком.

Плагины… Что это?


"Плагин" — это весьма интересное явление новой русскоязычной терминологии, происходящее от англоязычного "plug-in" (подключаемый блок или модуль). При этом на заре своего становления именно на территории СНГ оно прошло долгий путь от пользовательского "плугина" до зазнайского "плагина" (зависит от того, кто как знает английский язык). На самом деле это программный модуль, который может использоваться в качестве дополнительного средства обработки. Изначально эти модули никак не назывались и были стандартными элементами меню Effects, чем, собственно, и являлись. Потом, в основном благодаря редактору Sonic Foundry Sound Forge, у сторонних разработчиков появилась возможность делать отдельные модули обработки для этой программы по технологии DirectX. Начался настоящий бум. Кстати, одной из первых компаний, начавших свой старт с производства DirectX-плагинов, является небезызвестная Waves Ltd. То есть тогда, помимо основной базы эффектов, пользователям стало возможно подключать дополнительную… plug-in. Компания Steinberg примерно в то же время начала развивать свою собственную платформу-технологию — VST (Virtual Sampler Technology), причем не привязанную к конкретной операционной системе или платформе: они двигались сразу и на РС, и на Macintosh. То есть DirectX им был как бы и вовсе не нужен. Дальше завязалась нешуточная борьба (мы об этом в КГ очень много писали), в результате выигрыш оказался за Steinberg по многим причинам. Победили они очень красиво, причем, к чести WaveLab стоит отметить, что это первый звуковой редактор, который одновременно поддерживал и DirectX-, и VST-плагины. В то переходное время конкурентной борьбы это было панацеей от множества проблем. К тому же, WaveLab — одна из первых программ, позволивших подключать одновременно несколько эффект-процессоров в последовательную цепочку. Это вы и сейчас можете увидеть в мастер-панели. Соединение является последовательным, то есть результаты действия одного плагина переходят на вход следующего. Потом эта же модель распространилась и во множестве другого ПО. У многих может возникнуть вопрос: а есть ли в звуковых редакторах варианты параллельного и параллельно-последовательного соединений плагинов? То есть создания сложных цепей? Да, были. Одной из "первых ласточек" стал, как ни странно, плагин (!) TC Works Spark FX, в котором была расширена коммутационная панель известного эффект-процессора t.c. electronic FireworX, и в нее можно было включать другие DirectX-плагины. Но потом что-то у них не заладилось именно с этим продуктом, а что там могло не заладиться, мы и рассмотрим ниже.

Цифровые задержки… несколько слов

В прошлом уроке мы говорили о том, сколько возможностей в плане создания эффектов может дать задержка. Но бывают случаи, когда она совсем и не нужна, и даже вредна. Вы наверняка видели в описаниях программ и устройств сочетания типа "latency составляет…" либо "no latency", "minimal latency". Что это за задержка такая, и откуда она берется? Давайте переместимся на несколько лет назад — в принципе, это было совсем недавно, когда в студиях активно использовались в большом количестве внешние цифровые процессоры обработки сигнала. Если вы подключали только стандартную цепь цифровой выход звуковой платы —> цифровой вход внешнего устройства —> цифровой выход устройства —> цифровой вход платы, то картина получалась, мягко говоря, удручающей. То есть записанный после обработки сигнал по сравнению с исходным сдвигался на определенный интервал времени. И чем более сложный алгоритм вы устанавливали в эффект-процессоре, тем большей была величина задержки — иногда даже можно было услышать реальный флэнджер при совмещении исходного и обработанного. То есть любые цифровые расчеты требуют времени. Помимо этого, часть эффектов требует разложения на спектр, то есть преобразование Фурье (серьезные подвижки в этом деле были уже только в программных реализациях) — ситуация получалась еще более затруднительной. Но… в любом профессиональном эффект-процессоре была ручка регулировки MIX, с помощью которой производился баланс между входным и обработанным сигналом, и задержек между ними не было(!). То есть можно сделать вывод, что все задержки учитывались и компенсировались.

С программами все происходило поэтапно. Сначала даже не было режима реального времени. То есть пользователь настраивал эффект-процессор, нажимал OK, ждал, пока все посчитается, после чего слушал готовый результат. А поскольку тогда еще было время деструктивного редактирования и возможности только несколько раз Undo (отменить последнюю операцию) подряд, все смотрелось плачевно. Но постепенно разработчики нашли возможность делать обработку эффектами на лету, то есть в режиме реального времени, и данный вариант повлек за собой воз проблем, которые описаны абзацем выше. Но тут есть одно преимущество по сравнению с той ситуацией: все работает в рамках единой системы, соответственно, все задержки можно компенсировать различными способами, что программисты сейчас и делают. Не будем вдаваться в детали. То есть что нужно понять из данного раздела: цифровые задержки при программных расчетах есть и всегда будут, другой вопрос — решение их компенсации. Сама проблема была обозначена и широко озвучена фирмой Waves только несколько лет назад.

Что такое внутренняя обработка?

Одной из самых важных характеристик работы программного алгоритма является точность его расчетов. И, как мы говорили в первом уроке, она во многом зависит от разрядности преобразований. Напомним, о чем там шла речь, к тому же, повторение этих основ не является лишним. Есть динамический диапазон от отсутствия сигнала до максимального значения его уровня. Он разбит на равномерно распределенную шкалу конкретных значений уровней напряжения. Их количество зависит от разрядности преобразования, то есть 2 в степени количества разрядов (16-битные файлы оперируют 65.536 значениями). Чем больше значений, тем большая точность. Теперь давайте себе представим, что происходит при обработке алгоритмами, то есть при математических расчетах: появляется множество промежуточных значений, которые так или иначе будут приравниваться к ближайшим стандартным. То есть получается, что мы имеем некоторые погрешности, и чем сложнее алгоритм, тем этих погрешностей больше — представьте себе профессиональный реверберационный эффект, когда основная волна многократно суммируется с отраженными и, к тому же, обработанными. Поэтому был внедрен термин "внутренняя обработка", и указывается она в битах. То есть, если у вас сказано, что внутренняя обработка 24 бита, а обрабатываемый файл — 16-битный, это значит, что его данные переводятся в 24-битную сетку (данные из 65.536 значений проецируются в сетку из 16.777.216 значений), и все расчеты производятся в ней. После чего, если нужен обратный переход в 16, погрешностей получается намного меньше. В WaveLab существует специальный индикатор текущей разрядности BitMeter, который отображает, на каком количестве бит производятся вычисления.

Что объединяет современные синтезаторы и эффект-процессоры

Для простоты примера давайте рассмотрим такое очевидное устройство, как обычный синтезатор. На самом деле это механизм, который воспринимает команды к действию и эти действия производит. То есть вы нажимаете клавишу, и рождается звук. Что происходит в этот момент? На самом деле вы просто включаете обыкновенный выключатель, который замыкает определенную электрическую цепь. А если обращаться к истории, то первые такие "программируемые" устройства появились с момента возникновения музыкальных инструментов, только тогда все было как у Герона Александрийского — механическим. Первые электроорганы использовали для генерации частот двигатели, потом появился аддитивный синтез и т.д. Что интересно нам будет именно на этом этапе? Само понимание того, что по нажатию клавиши мы запускаем некий алгоритм действия. Со временем системы управления начали все более и более совершенствоваться, и как современная данность возник стандарт-протокол MIDI, подразумевающий то, что механическое нажатие на клавишу, интенсивность этого нажатия, его длительность, параметры отжатия, номер самой клавиши и т.п. переводятся в цифровой вид, после чего в виде потока данных все передается на модуль или модули синтеза. То есть данный цифровой поток содержит в себе только команды, и никакой звуковой информации не содержит. Но при этом, если зафиксировать эти данные на носитель (записать в виде MIDI-файла), то они будут являться не чем иным как полноценной инструкцией к действию. Таким образом, мы выделим главную цепочку "команда-действие". Блоки исполнения на современном этапе могут быть сколь угодно сложными, содержать в себе различные модули и алгоритмы синтеза, предусмотренные варианты взаимодействия между ними, эффект-процессинг и т.д. На самом деле современную звукорежиссуру и творчество, с ней связанное, ничем, кроме программирования, не назовешь, и, кстати, на Западе в современных коллективах клавишников групп часто называют программистами. Причем данное программирование может происходить на любых уровнях — от самого низкого (генерируемые формы волн) до объектноориентированного (каскады из модулей и объектов).

Но мы живем в 2006-м году, и ситуация немного поменялась, и, кстати, поменялась не только она, но и сами представления в области эффект- процессинга и синтеза. Все стало более техническим и упрощенным. Поэтому и объясню я все простыми словами. Представьте, что вы крикнули или хлопнули в ладоши в большом помещении — явно услышите реверберационный след, то есть отражения, частотные взаимодействия и т.д. Ваше действие можно описать и другими словами: громко воспроизведя звук, вы запустили алгоритм его обработки. И если смотреть с этой точки зрения, то в ход идет математика. Изначально, конечно, те же устройства эмуляции реверберации строились несколько другими способами с использованием аналоговой или цифровой задержки и т.п. Но потом, как оказалось, стало возможно просто воспроизводить звук (короткий щелчок) в заданном акустическом пространстве, будь то театр, открытое поле либо еще что-то, записывать результирующее звучание и путем сравнения и т.п. создавать алгоритм, или, другими словами, "шаблон" заданного акустического пространства. Данные программные модели называют сверточными (от математического термина "свертка"). Точно таким же макаром производятся и другие подобные действия, а именно создание сверточных моделей для "культовых" аналоговых устройств прошлого. Например, возьмите компрессор, подайте на него входной сигнал, запишите выходной, а результаты сравнения будут не чем иным как сверточной функцией данного алгоритма компрессии. То есть с помощью такого подхода можно воссоздать абсолютно все включая даже модели синтезаторов, "сэмплируя" входные и выходные сигналы для каждого из их блоков.

На самом деле у синтезаторов была и другая схожая идея, которая некогда получила название синтеза физического или математического моделирования. Суть его заключалась в том, что все процессы, сопутствующие звукоизвлечению на музыкальном инструменте (тон, гармоники, отклик в резонаторе и т.п.), описывались конкретными формулами. Это было очень сложно в то время (начало 90-х) и, в принципе, получилось не совсем удачно и даже не имело своего развития. А термин "физическое моделирование" перешел в некоторые виды программ, которые, как и в начале 90-х, повторили только самое простое — несколько духовых и струнных. Но в то же время или чуть раньше появились сэмплеры, в которых понятие "команда-действие" было упрощено до минимума. Придумка эта пришла еще с ритм-машин Roland серии TB, где в качестве некоторых инструментов использовались записанные звуки, а потом Карстен Обарски, обладая хорошими навыками в программировании, но минимумом средств для покупки MIDI-устройств, которые были очень дорогими, решил, что вместо синтез-генераторов можно просто использовать записанные короткие звуковые фрагменты и играть ими. Так появились трекеры, а по существу — первые чисто программные сэмплеры. В 2006-м уже стерта граница между такими терминами, как "синтезатор" и "сэмплер", поскольку любой профессиональный программный продукт уровня Native Instruments Absynth позволяет в модулях осцилляторов (генераторов) вводить в качестве генерируемой волны что угодно включая фрагменты аудиофайлов. А дальше все может происходить по разным сценариям. Например, синтезированный инструмент можно построить только на одном звуковом фрагменте, и при раскладке по клавиатуре тот будет замедляться или ускоряться, также можно отсэмплировать внешний синтезатор нота за нотой (это делается автоматизированно в программах типа Sample Robot) или же применить одну из последних новинок — гранулированный синтез, где используется только один сэмпл, но он дробится на множество мелких частей, в результате чего при повышении тона сохраняет длительность, в т.ч. длительность атаки, и звучит естественно.

Почему мы в одном и том же разделе объединили сверточные модели и синтезаторы сэмплерного типа? Дело в том, что в их основе лежат конкретные физические процессы, т.е. натуральные процессы, а не теоретически рассчитанные математические формулы и эмуляции. И если в варианте эффект- процессоров мы "сэмплируем" алгоритмическую структуру того или иного эффекта, то в сэмплерах — сам звук. Оба сегмента этих программ пока находятся на стадии своего развития, поскольку так или иначе они сойдутся в сложном физическом моделировании, ну, а как данность мы пока используем промежуточные варианты. Хотя… есть серьезные подвижки, например, в сериях гитар Line6 Variax, Variax Acoustic, Variax Bass, которые могут играть со звучанием абсолютно разных и известных моделей. То есть осталось чуть-чуть подождать.

Кристофер, christopher@tut.by


Компьютерная газета. Статья была опубликована в номере 39 за 2006 год в рубрике мультимедиа

©1997-2024 Компьютерная газета