III Основные программы для работы со звуком
и музыкой
В последнее время наряду с термином "мультимедиа", получил распространение другой - "музыкальные программы". Новый термин оказался столь же многозначным, что и его родитель, - этим сочетанием стали называть любые программы, имеющие дело с каким-либо звуком; при этом нередко происходит смешение основных понятий и путаница в принципах работы программ. В результате одни пользователи даже не догадываются о некоторых доступных им возможностях, а другие ошибочно возлагают на программу (и компьютер в целом) неоправданные надежды. Так постараемся же классифицировать методы работы со звуком на PC и попытаемся сделать обзор технологий и программных средств для этой цели.
Audio и MIDI
В современных компьютерах можно выделить две наиболее популярные технологии, имеющие отношение к звуку и музыке:
* Audio (аудио) - наиболее универсальная технология, представляющая произвольный звук как он есть - в виде цифрового представления исходного звукового колебания или звуковой волны (wave), отчего в ряде случаев она именуется wave-технологией. Позволяет работать со звуками любого вида, любой формы и длительности. Звуковая информация обычно хранится в файлах с расширением WAV.
* MIDI - нотно-музыкальная технология, основанная на регистрации событий, происходящих при игре на электронном инструменте, - нажатий клавиш, педалей, воздействий на регуляторы, тумблеры, кнопки и т.п. Последовательность подобных событий образует "электронную партитуру" музыкального произведения - как бы полную программу управления "автоматическим оркестром". Позволяет весьма точно записать достаточно сложное музыкальное произведение, а затем любое число раз исполнить его в точном соответствии с программой. Информация обычно хранится в файлах с расширением MID.
Audio-технология обычно применяется там, где имеется исходный звуковой сигнал, подлежащий обработке, - с ее помощью записывают, обрабатывают и сводят "живые" акустические и голосовые партии, речь, шумы, специальные сигналы и т.п. MIDI-технология снискала себе успех в создании музыкальных произведений "с нуля", посредством только электронных инструментов. При помощи MIDI-системы может быть создан как некий музыкальный каркас, к которому впоследствии будут добавлены голосовые или акустические партии, так и полноценное, законченное музыкальное произведение.
Для применения аудио-технологии достаточно простейшего звукового адаптера, содержащего АЦП и ЦАП - аналого-цифровые и цифро-аналоговые преобразователи. При этом сложность, качество и цена адаптера совершенно не влияет на принципиальные возможности обработки звука- от адаптера зависит лишь общее качество входного и выходного преобразования, а также сервисные возможности (например, быстрое аппаратное сжатие или фильтрование).
Для использования MIDI-технологии, прежде всего, нужен электронный музыкальный инструмент, преобразующий последовательность нот и команд управления в звук - обычный или сразу цифровой. Это может быть клавишный синтезатор, звуковой модуль (тонгенератор, или синтезатор без клавиатуры), музыкальная карта с аппаратным синтезатором или же программный синтезатор - программа, имитирующая работу реального синтезатора. Соответственно, все возможности, доступные в этой технологии, целиком определяются имеющимся набором MIDI-инструментов. (Подробнее об использовании MIDI в соответствующей главе).
В Windows каждая технология представлена своим типом звукового устройства. Устройства могут быть реальными (аппаратные адаптеры) и виртуальными (программы-имитаторы, генераторы, фильтры и т.п.). Общение программ с устройствами происходит посредством аудио- и MIDI-портов, которые появляются в системе после установки соответствующих устройств.
Отдельным случаем аудио-портов являются порты DirectSound. Классический (Wave, MME) аудио-порт не гарантирует предельно быстрого вывода звука - при обмене небольшими фрагментами, за счет буферизации и невысокой частоты обращений к адаптеру, возникают значительные (относительно времени звучания самих фрагментов) задержки. Интерфейс DirectSound, входящий в комплект интерфейсов DirectX, дает возможность работать с адаптером с минимальной буферизацией и накладными расходами, заметно сокращая задержки. Кроме того, в DirectSound несколько программ могут использовать один порт одновременно, что далеко не всегда возможно при работе с Wave-портами.
Классификация программ
Любая программа для работы со звуком на PC использует в той или иной форме одну из этих технологий либо обе сразу. Выделим следующие основные классы программ:
* Звуковые процессоры (audio processors)
* Системы многоканальной записи и сведения (multitrack recorders)
* Звуковые редакторы (audio editors)
* Генераторы и анализаторы сигналов (audio generators/analysers)
* Виртуальные (программные) синтезаторы (virtual/software synthesizers)
* Музыкальные редакторы (music/MIDI editors)
- Секвенсоры (sequencers)
- Трекеры (trackers)
- Нотные редакторы (score editors)
* Музыкальные процессоры (music/MIDI processors)
* Автокомпозиторы (auto composers)
* Автоаккомпаниаторы (auto accompaniment generators, jammers)
* Распознаватели нот (score recognition software)
* Преобразователи форматов (format convertors)
* Считыватели звуковых дорожек с компакт-дисков (CD rippers/grabbers)
* Психоакустические компрессоры (psychoacoustic compressors)
* Проигрыватели (players)
* Системы для радиовещания и дискотек (delivery systems)
* Утилиты и управляющие программы (utility/control software)
Многие программы сочетают в себе функции из разных классов: например, звуковые редакторы и секвенсоры нередко предоставляют также возможности процессоров (обработка в реальном времени), а музыкальные процессоры и автокомпозиторы часто имеют функции секвенсора.
1. Звуковые процессоры
Имитируют работу типовых устройств обработки звука, применяемых в студийной работе -усилителей, ограничителей, шумоподавителей, компандеров, эффект-блоков и т.п. Существует три основных типа процессоров:
* Нелинейные (off-line) - получают сигнал в виде дискового файла, предварительно записанного другими средствами, и записывают результат обработки в другой дисковый файл.
* Сквозные реального времени - получают сигнал непосредственно с аудиопорта и выводят результат в другой порт.
* Подключаемые модули (plugins) - получают сигнал от другой программы при помощи специального программного интерфейса (API) и возвращают результат обработки этой же программе. Фактическим стандартом такого интерфейса стал Microsoft DirectX. Модули обычно поддерживают обработку в реальном времени.
Процессоры первого типа разрабатывались достаточно давно, уступая место процессорам второго типа по мере роста мощности компьютеров. После появления системы DirectX популярные процессоры разрабатываются в этом интерфейсе.
Подробнее с работой звуковых процессоров ознакомимся на примере нескольких прграмм:
1. DSP/FX Virtual Pack
(Разработчик - Power Technology. Последняя выпущенная версия - 6.2.)
Программа имеет набор модулей обработки, которые могут использоваться как посредством интерфейса DirectX, так и непосредственно обрабатывать сигнал, полученный из Wave-файла или аудио-порта. Модули могут использоваться также в качестве расширителей системы многоканальной записи SAW и проигрывателя WinAMP.
Алгоритмы перенесены с аппаратной платы эффектов DSP/FX. При наличии в системе плат DSP/FX модули могут использовать процессоры плат; в противном случае вся обработка выполняется программно.
Каждый модуль поддерживает набор пресетов (предустановок) и управление параметрами посредством MIDI-контроллеров.
В состав пакета входят следующие модули обработки:
StudioVerb - параметрический ревербератор с моделированием помещения.
AcousticVerb - еще один тип ревербератора.
Optimizer - мягкий пиковый ограничитель и сглаживатель цифровых шумов (dithering).
Aural Activator - генератор гармоник для восстановления потерянных высокочастотных составляющих.
Stereo Pitch Shifter - модуль стереофонического изменения высоты. Изменяет высоту входного сигнала в соответствии с поступающими MIDI-нотами и перемещением регулятора Pitch Bend. Может использоваться для коррекции неточно выдержанных по высоте нот.
Multi-Tap Delay - имитатор множественных отражений внутри помещения, от реверберации до длительных эхо.
Analog Tape Flanger - имитатор аналогового ленточного фленжера.
Multi-Element Chorus - имитатор хорового эффекта путем моделирования пространственного разделения звука.
Parametric EQ - 8-полосный параметрический эквалайзер.
Auto-Panner - модуль автоматического позиционирования сигнала на стереопанораме.
Tremolo - модуль внесения амплитудного вибрато (тремоло).
Widener - расширитель зоны стереоэффекта.
2. Cylonix Vocoder
(Разработчик - James J. Clark. Последняя выпущенная версия - 2.00).
18-полосный вокодер реального времени.
В основу многополосного вокодера положено то, что, речевой аппарат человека работает по разностному принципу: исходный звук голосовых связок, богатый гармониками, подвергается динамическому управлению - резонансному усилению, амплитудной модуляции и фильтрованию - при прохождении через речевой тракт. Принцип работы такого вокодера состоит в разложении речевого управляющего сигнала (modulator) на заданное количество частотных полос и анализе динамики в каждой полосе. Полученные в результате анализа сигналы с определенной точностью повторяют динамику работы речевого тракта. Эти сигналы управляют банком частотных фильтров, через которые пропускается богатый гармониками несущий сигнал (carrier); в результате на выходе банка образуется "говорящий" несущий сигнал, как если бы звук подобного тембра издавали сами голосовые связки.
Как несущий, так и управляющий сигнал может быть сгенерирован несколькими способами - самой программой, введен с аудио-порта, либо взят из готового Wave-файла.
Вокодер имеет множество параметров: ширина полосы фильтра, пропорции смешивания входных и выходных сигналов, способы распознавания речевых звуков, режим воспроизведения высоты управляющего сигнала, виды отображения управляющих сигналов на банки фильтров. Различные способы отображения - сдвиг на несколько полос, инверсия, перестановка соседних полос и т.п. - позволяют в чрезвычайно широких пределах менять тембр полученного сигнала.