ITCS - Сборка VSTi в SynthEdit. Первый синтезатор - ЗВУК И АКУСТИКА
Сегодня: Понедельник, 05.12.2016, 23:34 (МСК)| Здравствуйте, Гость| Мой профиль | Регистрация | Вход | RSS

Популярно об ИИ.
Третий сезон

Роботы и экзоскелеты

Эргономика компьютерных клавиатур

Наушники. Как выбирать?

Программы — виртуальные гитаристы
Главная » ЗВУК И АКУСТИКА

Сборка VSTi в SynthEdit. Первый синтезатор

22.10.2011


Примерно к 2006 году конструкторы VST-плагинов набрали наибольшую популярность как среди пользователей, так и разработчиков. И хотя в то время имелось всего три конкурирующих программы (Quantum FX, SynthEdit и SynthMaker), около 80-90% подключаемых модулей музыкальных инструментов или эффект-процессоров делалось именно в них. Пользователям приобретение конструкторов выгодно в силу того, что те позволяют создавать множество различных плагинов под свои задачи. Разработчики обычно смотрят на этот вопрос несколько иначе, потому как, если честно, сам рынок программных инструментов и эффект-процессоров ничем не отличается от любого другого. Поэтому многое зависит от яркой обертки, хорошей рекламы, оригинальности подачи и т.п., а на разработке «внутренностей» в ряде случаев можно и сэкономить.

Опережая некоторые вопросы, сразу скажу, что если вы хотите просто работать со звуком и модулями, занимаясь их коммутацией и т.п., то вам не следует смотреть в сторону конструкторов плагинов, а взять на вооружение такие программные архитектуры как Native Instruments Reaktor или Absynth, синтезатор u-he Zebra, возможностей которых хватает с лихвой. 

Создание плагинов — более специфическая вещь, близкая к программированию, то есть тут вам нужно настраивать все входы/выходы, регуляторы, индикаторы, пользовательский интерфейс и т.п. 


Основные отличия SynthEdit от остальных

 
На данный момент испытание временем наиболее успешно прошли SynthEdit и SynthMaker, при этом, не смотря на схожесть, они несут несколько разнящиеся концепции. Дело в том, что, вообще, «по классике жанра» плагины должны разрабатываться с использованием полноценной SDK от Steinberg, которая предоставляется всем разработчикам в рамках свободного доступа, но при этом, естественно, нужно уметь программировать (лучше, если на С++) и разбираться в цифровом сигнальном процессинге (DSP) и ключевых алгоритмах в области звука. Это, конечно же, для новичков очень сложно.

Британская разработка SynthMaker на сегодня является средой визуального программирования, в рамках которой код, если он и где-то нужен, вводится в модуле Code, который вставляется мышью на нужную позицию в выстраиваемой схеме. А так, дается обширная библиотека различных элементов, которые нужно скоммутировать в представлении схемы, при желании нарисовать интерфейс. При этом SynthMaker, пожалуй, в нынешнем виде фактически идентичен системе визуального программирования для роботов Flowstone (которую я не так давно описывал). В ней вообще все, включая панели и библиотеки элементов, одинаково с SynthMaker. Это и плюс, и минус одновременно. С одной стороны понятно, что роботы — это DSP, и, создавая плагины в этой среде, вы учитесь не только основным постулатам, но и навыкам владения универсального моделирования в рамках обработки сигналов. С другой стороны мы говорим уже о довольно специфическом программировании. 

Программа SynthEdit, о которой мы будем говорить сегодня, демонстрирует смешанный подход, а именно, предоставляется довольно неплохой конструктор с готовыми модулями, который осваивается звуковыми специалистами гораздо быстрее по сравнению с SynthMaker, но при этом дается и SDK, в рамках которой, зная С++, можно писать свои компоненты либо исправлять имеющиеся. Данный вариант также чуть проще, чем конкретное программирование со Steinberg VST SDK, дается множество полезной документации. В целом все очень удобно. Кстати, и опытные программисты из мира звука часто берут за основу SynthEdit SDK и создают на этой базе великолепные и популярные продукты.

Также стоит отметить, что SynthEdit имеет гораздо более низкую цену (около $50) по сравнению с тем же SynthMaker, у которого есть ранжирование по профессиональному уровню. 
Имеет смысл сказать, что сама программа очень популярна среди иностранных разработчиков, в ней собирается множество синтезаторов, которые сейчас распространяются через сайт KVR. Кстати, SynthEdit очень любим немцами. 


Создаем первый синтезатор в SynthEdit


Нужно сказать, что освоение на базе примеров, которые даются самой программой, новичкам, особенно ранее и близко не работавшим с тем же Reaktor, будет затруднено. Стартовать нужно с чего-то более простого. Мы пока не будем трогать вопросы создания контейнеров (структурных блоков, которые могут включать в себя множество модулей или других блоков). 

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

Запускаем SynthEdit, появляется пустое окно нового проекта. Начинаем создавать схему. Доступ к элементам конструктора может производиться двумя путями, первый — через меню Edit->Insert, второй — в выпадающем меню, которое открывается по нажатии правой кнопки мыши в окне проекта. 


Загружаем четыре основных модуля и производим первую коммутацию

Вставляем клавиатуру: Insert->Control->Keyboard, конвертор MIDI-сигнала: Insert->MIDI->MIDI to CV, осциллятор: Insert->Waveform->Oscillator и аудио-выход: Insert->Input-Output->Sound Out. Перед тем как коммутировать, давайте подумаем, а зачем нам понадобился в цепочке дополнительный конвертор? На самом деле все очень просто. По нажатии клавиши мы формируем MIDI-сообщение, которое несет в себе информацию о ноте, силе нажатия и т.п. Эта информация является MIDI, которую осциллятор напрямую не понимает. В качестве руководства к действию он должен получить CV-сигнал (CV — управляющее напряжение). Модуль MIDI to CV и является тем самым необходимым конвертором. 

Для удобства линии связи закрашиваются в различные цвета в зависимости от типов сигнала:
  • Синий — аудио-сигналы, а также CV.
  • Красный — текстовые данные.
  • Ореховый — MIDI-данные.
  • Зеленый — передача значений параметров.
Теперь делаем коммутацию:
  1. Соединяем MIDI Out (Keyboard) с MIDI In (MIDI to CV).
  2. Соединяем выход Pitch (MIDI to CV) с входом Pitch (Oscillator).
  3. Соединяем Audio Out (Oscillator) с 1 и 2 входами(Sound Out).
Теперь можем нажать любую клавишу на Keyboard, в результате чего генератор начнет непрерывно воспроизводить соответствующую частоту. Почему? Pitch-то мы сообщили, и генератор запустился сразу после нажатия на клавишу, но мы ничего не предприняли, чтобы предусмотреть останов воспроизведения в момент ее отжатия и вообще отслеживание нажатий/отжатий как таковых. 


Вставляем модуль VCA, теперь осциллятор реагирует на нажатия/отжатия

В этом нам поможет сигнал Gate, который имеется на выходе модуля MIDI to CV. В случае, когда клавиша нажата, у него высокий логический уровень, при отжатии — низкий. Таким образом, его можно использовать в качестве управляющего для уровня выходного (с осциллятора) сигнала. Сделать это можно несколькими путями, но самый простой вариант — использовать модулятор амплитуды VCA: Insert->Modifiers->VCA. Далее:
  1. Размыкаем выход Audio Out осциллятора, ранее, соединенный с входами 1 и 2 (Sound Out) и замыкаем его на вход Signal (VCA).
  2. Соединяем выход Output (VCA) на 1 и 2 входы Sound Out.
  3. Соединяем выход Gate (MIDI to CV) с входом Volume (VCA).
Завершающим штрихом станет добавление селектора, с помощью которого мы сможем переключать форму генерируемой звуковой волны. Для этого нам необходим еще один модуль List Entry, в программе их два варианта, я, к примеру, выбрал второй: Insert->Control->List Entry2. Добавив его в окно проекта делаем простое соединение выхода Value Out (List Entry2) с входом Waveform (Oscillator).


Добавляем переключение форм волн

Теперь вы можете играть на клавиатуре и переключаться между семью различными формами волн. 


Добавляем новые элементы


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

ADSR делается довольно просто, для этого достаточно найти этот модуль в закладке Old (далее мы уже не будем прописывать пути Insert->…) и вставить в окно проекта. У этого блока имеется множество входов и один выход Output. При этом вспоминаем, а что же описывает график ADSR? Правильно, импульсную форму или, проще говоря, распределение амплитуды всего сигнала с разделением на зоны атаки, удержания, затухания. Другими словами, коммутироваться нужно на Gate. 

Поэтому мы разъединяем выход Gate (MIDI to CV) с входом Volume (VCA), и коммутируем Gate (MIDI to CV) на Gate (ADSR). А выход Signal Out (ADSR) замыкаем с с входом Volume (VCA). 
Теперь нам нужны регуляторы для параметров A, D, S, R. Добавляются они предельно просто: нужно поместить в окно проекта 4 элемента Slider (находятся в Controls), а затем каждый из них поочередно закоммутировать на соответствующие входы ADSR.


Просмотр графического интерфейса плагина


В контекстном меню, выпадающем по нажатии правой кнопки мыши в рабочей области проекта, есть пункт Panel Edit… Нажав на него, вы переключаетесь на окно визуального отображения плагина. Вид, который дается с дизайном по умолчанию, довольно спартанский, но и в этом случае вы можете навести некий марафет, посмотреть как взаимодействуют элементы и их настройки, обязательно посетите различные свойства, измените названия на те, которые нужны. 


Добавление ADSR с регуляторами и индикаторами, просмотр плагина в графической оболочке

Экспорт в VST


Экспорт в VST делается очень просто с помощью одноименного пункта меню File. В нашем случае, желательно перед экспортом, чтобы инструмент получился более полноценным подключить параллельно с виртуальной клавиатурой модуль MIDI In (закладка MIDI), тогда плагин сможет воспроизводить MIDI-файлы с хост-программ, а также откликаться на MIDI-клавиатуру. 

Теперь можно проверить все в действии. Первый синтезатор готов. 


Подытожим


В принципе, с этого момента можно начинать копаться, при этом рекомендую изучить от и до стандартную библиотеку перед тем как следовать многочисленным советам по скачиванию дополнительных. Всему свое время, как серьезно высказался Жан-Батист Эммануэль Зорг (к/ф «Пятый элемент»): «Убийца, если он — профессиональный наемный убийца, обязательно обратит внимание на красную кнопку»:). Это я к тому, что взрыв мозга можно устроить очень быстро. 

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




Перепечатка материалов или их фрагментов возможна только с согласия автора.






Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ассоциация боевых роботов
Рекомендуем...
Новости

Разделы

Опросы

Какой язык программирования вы считаете наиболее актуальным сегодня?
Всего ответов: 308

Друзья

3D-кино






Найти на сайте:








Об авторе       Контакты      Вопрос-ответ        Хостинг от uCoz