ГЛАВА 10
Программы для звукового синтеза

- Модули синтеза в программах звуковой обработки
- Программа Virtual Waves

Модули синтеза в программах звуковой обработки

В звуковых программах, рассмотренных в главе 8, в большинстве случаев за основу берется заранее записанный звуковой фрагмент. А что, если попробовать создать звук внутри компьютера «с нуля»? Для имитации существующих оркестровых тембров такой способ, может быть, и меньше подходит, однако он позволяет создать доселе невиданные, оригинальные тембры.

Для этого, разумеется, также существуют программные средства, использующие алгоритмы звукового синтеза (некоторые из них описаны в главе 2). Вообще говоря, первая фраза этого раздела верна лишь отчасти, поскольку в программах Sound Forge и Cool Edit Pro имеются возможности, хоть и небольшие, для звукового синтеза.

Так, в программе Sound Forge есть меню Tools, а в нем — пункт Synthesis. При его выборе появляется подменю, которое состоит всего из трех пунктов.

Выбрав пункт Simple, вы получаете возможность синтезировать простейшую волновую форму заданной длины (она должна быть указана в поле Length). Саму форму волны вы можете выбрать из выпадающего меню Waveform shape (рис. 10.1). Частоту необходимо указать в поле Frequency, а громкость установить с помощью ползункового регулятора.

Рис. 10.1. Окно простого синтеза в программе Sound Forge

Выбрав пункт FM, вы можете синтезировать уже более интересные звуки с помощью четырехоператорного FM-синтеза (рис. 10.2). Здесь с помощью регулятора в правом нижнем углу вы должны выбрать конфигурацию соединения операторов (операторы, помещенные в нижнем ряду( считаются имеющими звуковой выход). Вы можете отредактировать каждый оператор в отдельности, причем переключение между редактируемыми операторами происходит в строке Current Operator.

Рис. 10.2. Окно FM-синтеза в программе Sound Forge

Все, что находится ниже этой строки, .относится только к текущему, редактируемому оператору. Вы можете графически нарисовать его огибающую, а также установить выходной уровень (для выходящих на звук операторов это громкость, для модулирующих — индекс модуляции, правда, измеренный почему-то тоже в децибелах), частоту и волновую форму. Кроме того, регулятором Feedback вы можете установить уровень сигнала обратной связи оператора. Для людей, понимающих основы FM-синтеза, разобраться в этом окне будет совсем несложно. Единственная особенность заключается в необходимости установки достаточно низких уровней амплитуды модулирующих операторов (во избежание эффекта «перемодуляции»).

И наконец, пункт DIM F/M F Tones попросту имитирует тональный набор телефонных номеров (рис. 10.3). В поле Dial string следует ввести строку для «набора номера», причем все символы, кроме указанных в скобках перед полем ввода строки Dial string, а также «символа паузы», указанного ниже в поле Pause character, будут проигнорированы. «Символ паузы» интерпретируется как перерыв в звучании, причем длина его соответствует указанной в поле Pause length. Длина самих звуков должна быть указана в поле Single tone length, а длина перерывов между звуками — в поле Break length.

В программе Cool Edit Pro также есть некоторые возможности звукового синтеза. Все они сосредоточены в меню Generate (кроме верхнего пункта Silence, просто вставляющего кусок тишины в файл).

Пункт DTMFSignals выполняет те же функции, что,и пункт DTMF/MF Tones в программе Sound Forge. Однако здесь у пользователя есть возможность отойти от стандартов DTMF и MF и настроить «номеронабиратель» по своему усмотрению. Для этого переключатель режима нужно поставить в положение Custom (рис. 10.4), после чего вручную ввести нужные частоты тонов.

Рис. 10.3. Окно имитации тонального набора телефонного номера в программе Sound Forge

Рис. 10.4. Окно имитации тонального набора телефонного номера в программе Cool Edit Pro

Пункт Noise открывает окно генерации шума (рис. 10.5). Вы можете выбрать «цвет» шума — белый, розовый, коричневый, — а также стиль его генерации: независимо по каждому каналу, моно, с эффектом пространственного стерео и т. п.

Рис. 10.5. Окно синтеза шумов в программе Cool Edit Pro

А вот пункт Tones (рис. 10.6) предоставляет довольно интересные возможности аддитивного синтеза звука. Синтезируемый звук может состоять из пяти составляющих, амплитудное соотношение которых регулируется с помощью пяти ползунковых регуляторов в секции Frequency Components. Под каждым регулятором имеется также окошко для указания частоты данной составляющей, однако в нем указывается не абсолютная частота, а ее отношение к так называемой базовой частоте, которую вы можете указать в поле Base Frequency. Например, если базовая частота равна 220 Гц, а множители амплитудных составляющих равны соответственно 1, 2, 3,4 и 5, то абсолютные частоты этих составляющих будут равны 220, 440, 660,880 и 1100 Гц.

Рис. 10.6. Окно аддитивного синтеза звука в программе Cool Edit Pro

Такой способ ввода частот реализован в программе для облегчения построения гармонических спектров: действительно, проще указать множители, чем высчитывать частоты, кратные базовой частоте. Обычно множитель первой составляющей принимают равным 1 (то есть частота этой составляющей равна базовой частоте). Если же вы все-таки хотите указывать абсолютные значения частот составляющих, то достаточно просто установить базовую частоту равной 1 Гц. Тогда частотные множители составляющих будут в точности равны их абсолютным частотам.

Кроме того, каждая составляющая может быть модулирована по частоте. В поле Modulate By можно ввести величину частотного отклонения (глубину модуляции). Например, если базовая частота равна 220 Гц, то величина частотного отклонения 10 Гц означает, что базовая частота будет колебаться в пределах от 210 до 230 Гц. В поле Modulation Frequency укажите частоту модуляции (скорость изменения базовой частоты). Если же вы не хотите модулировать ваш звук по частоте, достаточно в поле Modulate By ввести значение 0.

Обратите внимание на переключатель Lock to these settings only. Если он отмечен галочкой, то все описанные выше параметры будут одинаковы по всей длине звука. Однако если его выключить, то становятся доступными две вкладки — InitialSettings и Final Settings. В них можно указать эти параметры для начала и окончания звука по отдельности. В данном случае все они будут динамически изменяться на протяжении всего звука, что дает возможность получать весьма интересные эффекты.

Однако и здесь общие параметры генерируемого звука остаются неизменными на протяжении всего звука. Это громкость (секция db Volume), длина звука и волновая форма его составляющих (секция General), фазовые параметры (секция), а также постоянная амплитудная составляющая (секция DC Offset). Если же вы хотите динамически изменять и эти параметры, воспользуйтесь после генерации звука другими функциями программы Cool Edit Pro.

Программа Virtual Waves

Во всех программах, использующих синтез звука как дополнительное средство, эта возможность развита довольно слабо. Однако существуют программы, специально созданные для звукового синтеза. Они предоставляют пользователю поистине гигантские возможности синтеза. В качестве примера такой программы рассмотрим вкратце программу Virtual Waves.

Окно этой программы представляет собой как бы коммутационный блок. Здесь можно оперировать различными генераторными модулями и модулями преобразования: настраивать их, соединять «виртуальными кабелями» в различной конфигурации и т. д.

Оперировать модулями программы очень удобно. Например, для того чтобы получить звук методом аддитивного синтеза, следует модуль аддитивного синтеза соединить с модулем звукового выхода. Для этого нужно выполнить следующие действия. В окне Modules, в секции Generators щелкните мышкой на пункте Additive Synthesis, а затем в любом месте окна Synthesizer. В окне Synthesizer появится символическое изображение модуля аддитивного синтеза. Затем таким же образом переместите в окно Synthesizer модуль Output из секции Processes.

Обратите внимание, что на нижней грани пиктограммы аддитивного синтеза имеется направленная вниз («наружу») треугольная стрелка. Она означает виртуальный «выходной разъем». А на верхней грани пиктограммы звукового выхода расположена треугольная стрелка, направленная «внутрь». Она символизирует «входной разъем». Если вы наведете мышку на стрелку входного разъема, она будет подсвечена зеленым светом. Нажав в это время кнопку мыши, можно «протянуть» виртуальный кабель до другого объекта.

Таким образом, нажав кнопку мыши на выходном разъеме модуля аддитивного синтеза и отпустив ее на входном разъеме модуля звукового выхода, вы можете соединить их. Запомните, что звуковым результатом вашего синтеза всегда будет то, что приходит на вход модуля звукового выхода.

Дважды щелкнув мышкой на любом модуле (кроме модуля звукового выхода), вы входите в режим настройки этого модуля. Например, выполнив двойной щелчок на модуле аддитивного синтеза, вы увидите окно. Как нетрудно догадаться, здесь вы можете строить звук из восьми синусоидальных гармонических составляющих. Их относительная амплитуда регулируется с помощью ползунковых регуляторов в секции Global Volume. При этом в окне справа (секция Waveform) автоматически прорисовывается волновая форма суммы всех восьми гармоник с учетом установленной амплитуды.

Кроме того, с помощью движка Frequency вы можете установить основную частоту (то есть частоту нижней составляющей), а с помощью движка Duration — общую длительность генерируемого звука. В секции Amplitude Envelope вы можете графически нарисовать амплитудную огибающую каждой гармоники в отдельности. Выбор текущей гармоники осуществляется с помощью восьми маленьких кнопочек, пронумерованных от 1 до 8. А с помощью движка можно настроить «детонацию» каждой составляющей в отдельности.

При рисовании огибающей вы можете воспользоваться одним из пяти инструментов: перечеркнутым кружком для мгновенной установки ровной огибающей, карандашом для добавления новых точек излома и их перемещения, ластиком для удаления отдельных точек излома, а также двумя «зеркалами» для отражения по горизонтальной и по вертикальной осям.

А внизу этого окна (да и почти любого другого тоже) есть четыре пиктограммки, которые используются вместо обычных кнопок. Зеленая галочка заменяет кнопку ОК, красный крестик — кнопку Cancel (Отмена), синий вопросительный знак — Help и изображение дискеты — кнопку создания и загрузки пресетов.

Итак, сделав необходимые настройки, нажмите на зеленую галочку. Если ваш модуль уже присоединен к модулю звукового выхода, то для генерации и прослушивания результата нажмите на кнопку с изображением электрической лампочки. Для повторного прослушивания нажмите кнопку с изображением динамика.

В окне Modules, в секции Generators, расположены модули, генерирующие тот или иной сигнал. О модуле аддитивного синтеза вы уже знаете. Следующий модуль — Cellular Automata — алгоритм клеточных автоматов. Этот алгоритм весьма похож на игру Дж. Конвея «Жизнь», которая была описана в журнале «Наука и жизнь» под названием «Эволюция».

Модуль DTMF Signals имитирует тоновый набор телефонного номера. Похожие модули содержатся в программах Sound Forge и Cool Edit Pro.

Модуль Envelope Generator предназначен для создания огибающих. Вы можете рисовать их графически, используя те же инструменты, что и для огибающих в модуле аддитивного синтеза.

Модуль F. M. Synthesis позволяет осуществлять шестиоператорный FM-синтез. В окне настройки с помощью движка Algorithm вы можете выбрать один из 32 алгоритмов соединения шести операторов, причем схемы алгоритмов можно увидеть в окошке справа. С помощью движка Feedback можно установить уровень сигнала обратной связи операторов, все обратные связи также показаны на схемах алгоритмов. Выбрав текущий оператор с помощью маленьких кнопочек с цифрами от 1 до 6, можно установить его частоту с помощью движка Frequency и амплитуду с помощью движка Index, а в секции Envelope графически нарисовать его амплитудную огибающую.

Модуль Formant Wave Functions (FOF) позволяет осуществлять так называемый формантный синтез с использованием пяти виртуальных резонаторов. Частоту и амплитуду каждого из них можно менять динамически с помощью огибающих Frequency и Amplitude. Ширина резонатора также устанавливается для каждого отдельно (движок Bandwidth). Кроме этого вы можете установить частотное вибрато в секции Vibrato и амплитудное вибрато в секции Tremolo, однако эти эффекты распространяются на весь полученный звук.

Модуль Karplus-Strong Algorithm позволяет сгенерировать сигнал щипка струны с помощью алгоритма Карплуса-Стронга (шумовой посыл плюс цифровая задержка с обратной связью). Модуль Mathematical Function генерирует сигнал с помощью известных математических функций — парабола, гипербола, график функций Бесселя и т. п. Модуль MIDI File генерирует сигнал на основе изменений значений какого-либо MIDI-параметра (по умолчанию — Pitch Bend) в указанном MIDI-файле. Модуль Noise Generator позволяет сгенерировать белый или розовый шум, а модуль Oscillator — один из простейших периодических сигналов: синусоидальный, треугольный, импульсный, пилообразный и т. п. Модуль Sample Player проигрывает произвольный Wave-файл, а модуль Wave Sequencer позволяет составить любую последовательность из имеющихся волновых шаблонов.

Весьма интересен модуль Spectral Sketch Pad. Он позволяет вручную рисовать спектрограмму будущего звука (такой способ синтеза чем-то напоминает синтезатор АНС). Здесь черное поле представляет собой место для рисования спектрограммы. По горизонтальной оси отложено время, по вертикальной — частотная шкала. Яркость точки (линии) соответствует амплитуде сигнала. Для «рисования» спектрограммы служат три инструмента из секции Tools. Это рисование произвольной кривой, рисование прямой и «распыление» отдельных точек. В секции Harmonic Richness можно выбрать толщину линий и точек, которые будут выходить из-под вашей «кисточки». Более толстые линии будут соответствовать более широким спектральным полосам. А если вы отметите галочкой переключатель Random, то толщина линий и точек будет выбираться случайным образом.

В секции Amplitude можно с помощью стандартного для графических редакторов «движка» выбрать яркость будущих линий и точек, которая, как вы помните, впоследствии преобразуется в амплитуду звуковой составляющей. В этой секции также имеется переключатель Random, который позволяет менять яркость случайным образом. С помощью движка Duration вы можете задать общее время звучания (или, что одно и тоже, темп проигрывания своей спектрограммы). Для того чтобы использовать нарисованную спектрограмму, вам необходимо, нажав на кнопочку Save, сохранить ее в специальном формате .des. Этот формат можно использовать и для временного сохранения ваших картинок-спектрограмм. Не стоит пытаться открывать графические файлы других форматов: это может привести к появлению длинной серии окошек с надписью «error» (в принципе, нажимая все время на единственную в них кнопку ОК, когда-нибудь вы вернетесь к нормальной работе, если проявите достаточное терпение). Помимо модулей-генераторов программа Virtual Waves имеет массу модулей-преобразователей (секция Processes). Кратко перечислю их, не останавливаясь на каждом в отдельности:

- модуль амплитудной модуляции;
- арпеджиатор;
- компрессор/лимитер/экспапдер;
- конкатенатор (последовательно складывает две звуковые волны);
- конволюционный фильтр (модулирует сигнал артикуляционным импульсом);
- Cut-Up (аналог модуля Capper/Snipper из программы Sound Forge);
- линия задержки;
- эхо;
- определитель огибающей («снимает» амплитудную огибающую с любого исходного сигнала для последующего ее применения к другому сигналу);
- флэнджер;
- модуль частотной модуляции;
- гармонайзер;
- модуль постепенного преобразования одного сигнала в другой;
- «перемешиватель» фрагментов сигнала;
- четырехканальный микшер;
- звуковой выход;
- питч-шпфтер (транспонирует звуковой сигнал);
- преобразователь разрешения цифрового сигнала (от 1 до 20 бит);
- повторитель всего звукового сигнала или его фрагментов;
- резонансный фильтр
- ревербератор;
- модуль «переворота» звукового сигнала (изменяет направление проигрывания);
- модуль кольцевой модуляции;
- модуль случайной выборки из сигнала (Sample&Hold);
- фильтр второго порядка;
- модуль спектральной модуляции;
- модуль вычитания сигналов;
- модуль изменения длительности сигнала;
- модуль функций преобразования;
- четырехканальный «векторный микшер», позволяющий строить временную диаграмму изменения соотношений амплитуд каналов.

Все эти модули могут как угодно соединяться друг с другом, что позволяет получать самые фантастические звуки. Кроме того, программа имеет некоторые дополнительные возможности. Среди них необходимо выделить возможность непосредственной передачи сэмплов на карты Turtle Beach Main и Tropez, семейство карт Creative AWE, а также возможность передачи на внешние устройства с помощью дампа в формате MIDI SDS. Интерфейс программы настолько приятен и удобен, что у вас будет возможность, немного привыкнув, полностью погрузиться в творчество, не думая о том, «куда же щелкнуть мышкой».