Статьи:

Профиль:

Создание FM синтезатора

В этой статье поэтапно создаётся FM синтезатор с нуля (на уровне цепей). Мы создадим осциляторы, огибающие, модуляторы и несущие. Для этого будет использована программа Analog Box (можно бесплатно скачать по ссылке), предназначенная для программирования звука на низком уровне (программа позволяет самому создавать синтезаторы и инструменты преобразования звука). Данная статья также может рассматриваться как мануал к этой замечательной программе. Если у Вас возникнут проблемы с пониманием, то рекомендую ознакомиться с рядом статей «Саунд дизайн«, в котором подробно рассказывается об элементах синтезаторов, и со статьёй FM синтез, в которой подробно рассказывается о методе синтеза звука методом частотной модуляции.

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

Один осцилятор

Перед началом программирования рекомендуется понизить громкость. На данном этапе мы имеем 3 объекта, которые генерируют монотонный сигнал. tut01_01 скачать

Справа находится объект выхода звука, каждая цепь, которую Вы хотите услышать, нуждается в нём. L и R — это левый и правый выходящие сигналы. В центре находится осцилятор, он генерирует тон, который посылается на выход через «=». На данный момент подсоединён только F. Далее нам нужно будет подсоединить А. и О. (в оригинале не расшифровывается, но логично предположить то что F и A — это частота и амплитуда генерируемого сигнала соответственно). Без подключённого А. осцилятор будет посылать на выход значения от +1 до -1. Внутри объекта Вы можете изменить форму волны посылаемого сигнала. Всего имеется 8 форм волны. Левый объект — это циферблат, его функция заключается в контроле сигналов. Мы будем использовать много циферблатов. Наверху циферблата Вы видете число 776.673 — это частота в герцах, следовательно циферблат контролирует частоту осцилятора. Прежде чем мы пойдём дальше — изучите что может делать эта примитивная цепь, поизменяйте значения осцилятора и циферблата.

Контроль громкости

Давайте добавим контроль громкости сигнала. Мы добавим два контроллера — один для осцилятора, второй для выхода (на мастер). Для начала проделаем это с осцилятором:

tut01_02 скачать

У подключения нового циферблата к осцилятору отобразилась буква А — это значит то что он контролирует гроикость осцилятора. На циферблате Вы видитеуровень сигнала в децибелах (10.598)

Теперь подключем контроллер уровня сигнала на выходе: tut01_03 Скачать

Больше о входящих A (посылов контроллеров амплитуд). Входящие стрелки с буквой А также могут передавать значения «вариации, размера,шкалы». Концепция заключается в том, что А задаёт максимальное значение чего-то. Для иллюстрации посмотрим на цепь:

tut01_04

Скачать

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

Пока мы здесь

Попробуйте добавить контроллер частоты и изменить его значения. Чем выше частота — тем меньше период зелёной (генерируемой) волны. Чем ниже частота контроллера — тем больше периодичность генерируемой волны. Попробуйте изменить форму волны осцилятора.

Огибающие

Следующим шагом создания синтезатора будут огибающие. С помощью огибающих Вы сможете задавать форму звука: время атаки, время удержания и спада. Для этого и используются  ADSR огибающие.

tut01_05

Скачать

Создано три новых объекта, которые подсоединены к контроллеру громкости осцилятора. Обратите внимание, то что после подсоединения огибающей на циферблате громкости появилась новая кнопка ×. Каждый  генерируемый сигнал ограничивается значением 10 dB.  ADSR огибающая генерирует сигнал исходя из четырёх синих линий (характер изменения громкости звука). Вы можете добавлять сколько угодно новых точек, усложняя форму огибающей. Объект ADSR имеет два входа, которые обозначаются символами T и t.  Т  - задаёт продолжительность звучания сигнала.   t — это триггер, который даёт огибающим команды старта. Время звучания Т (1.469) задаётся в секундах.

Итак: Нажмите на триггер (синюю кнопку).  ADSR работает пока значение у кнопки изменяется от +1 до -1. Выход с огибающей приравнивается к значению громкости 10 dB и посылается осцилятору. Отпустите триггер, значение у кнопки изменится с -1 на +1. ADSR огибающие получают информацию о изменённом значении и финишируют. После финиша ADSR огибающие ждут нового отрицательного значения триггера.

Рассмотрим что у нас получилось

tut01_06

Скачать

Оранжевая линия — это состояние кнопки, зелёное — осцилятор.

Частотная модуляция

С помощью FM синтезаторов достаточно просто создавать разнообразные звуки. FM — означает дословно «Частотная модуляция», т.е. периодическое изменение частоты. Что сделать из нашей цепи FM синтезатор нам нужно добавить ещё объектов: tut01_07 Скачать

Частотный циферблат (776 Hz) перемещён влево. Добавлен второй осцилятор. Новый частотный циферблат  (1248 Hz) был подсоединён к осцилятору. Теперь мы имеем один осцилятор, который контролирует частоту другого осцилятора. Так как он модулирует другой осцилятор — то он называется модулятором. Второй осцилятор, который создаёт звук мы будем его называть несущим. Новый осцилятор синусной волны, модулятор, подсоединён несколько специфическим путём. Вход А — контролирует амплитуду модуляционного сигнала. Значения задаются в герцах, — вот Вам пример использования А. для контроля чего-то другого, кроме громкости. Сигнал от O. подсоединён к частотному циферблату и является частотным центром (центральная частота)  для несущего осцилятора.

Вот как работает наша цепь: Частотный циферблат задаёт центральную частоту несущему осцилятору. Модуляционный циферблат контролирует цвет звука, добавляя амплитуду модулятора. Модулятор посылает несущему частоту для создания вна выходе более сложного звука.

Модулирование модулятора

Существует два основных метода качественного регулирования звучания FM синтезатора. 1) Изменить глубину модуляции 2) Изменить частоту модуляции Глубина модуляции может быть изменена с помощью ADSR огибаюших.

Теперь, когда Вы нажимаете на кнопку — в сигнале чувствуется характерный «удар»: tut01_08 Скачать

Новая ADSR огибающая использует то же время и тот же триггер, которые были использованы для изменения амплитуды сигнала. Сустейн был отключён (отключается в панели настроек). Новый циферблат является множителем сигнала, который дальше передаётся другому циферблату, который выполняет функцию добавляющего. Первый циферблат задаёт диапазон изменений, второй — основное значение.

Умножение и добавление

Всякий раз когда Вам потребуется контролировать параметр, Вам нужно задать диапазон изменений и основное значение. Пример: Циферблат громкости (-10 dB)  имеет диапазон изменений равный 10dB и основное значение 0. Модулирующий осцилятор использует вход А как диапазон изменений и вход О как основное значение. Мы не должны рахъелинять операторы, так как осцилятор использует умножение и добавление одновременно.

Модуляция частоты

Далее мы добавим цепь, которая добавляет частотную модуляцию:

tut01_09

Скачать

Изменение частоты модуляции ведёт за собой драмматический эффект изменения колличества гармоник в сигнале. Если соотношение частоты входящего сигнала из F в O это числа 1,2,3 и.т.д. — все генерируемые обертоны будут множителями частоты несущего осцилятора, в результате чего будет синтезироваться музыкальный звук. Ищменение соотношения в сторону фрактальных чисел (не целых) даст не гармонические и диссонирующие обертоны. С использованием короткой огибающей — фрактальное соотношение может создавать реалистические колокола и перкуссионные звуки.

Группирование

Теперь, когда мы имеем готовый FM синтезатор, мы можем его использовать без необходимости создавать его заново. Программа Analog Box называет это объекдинение группой (группа нескольких объектов которые объединены в один). Новый объект будет иметь входящий и выходящий сигнал (миди и аудио соответственно). Перед созданием группы нужно понимать зачем она нужна. В нашем случае это FM синтезатор, который будет контролироваться входящей частотой (нотой) другим объектом.

tut01_10

Скачать

Следующим шагом будет использование  Pin интерфейсов (красные квадратики), которые являются своеобразными маркерами. Они не изменяют сигнал а зажают границы нового создаваемого объекта.

tut01_11a

Следующим шагом будет  объединения группы в цепь. Это также маркерный объект, его целью является описание внутренности группы (при описании используются границы группы).

Последним шагом является название группы. Это можно сделать кликнув правой кнопкой мыши по группе.

Например «я использовал FM синтез».
tut01_11

Скачать

После всего остаётся только сохранить цепь. Для использования нового объекта откройте новый файл и выберите в нём только что созданную цепь (также поддерживается технология  drag and drop).

Новый объект отображается как машина с заданным Вами именем. Входящий сигнал слева, выходящий 0 справа.

tut01_13
Скачать

Вы можете посмотреть и изменить строение любой группы, дважды кликнув по ней.

Возможно создание групп внутри групп.

Вы должны быть залогинены для комментирования.