Статьи:

Профиль:

Программирование ВСТ плагинов

ВСТДанная статья пишется с целью помочь Вам написать собственный ВСТ ( VST ) плагин.

Введение

Для начала небольшая техническая справка:

Технология ВСТ-плагинов была разработана компанией Steinberg и представляет собой .dll файлы, которые создаются с помощью языка объектно-ориентированого программирования ( С++, Delphi). Для синтеза и обработки звука они должны быть подключены к любой хост-программе. Плагины совместимы со всеми хост-программами, которые запускаются в определённой операционной системе, т.е., соответственно часто пишется несколько различных версий одного плагина под разные операционные системы.

Вы запускаете хост программу (например: Cubase, Fruity Loops, Logic, Sonar) и импортируете в неё  .dll файлы, которые синтезируют звук исходя из миди-сообщений (информация о нажатии опр. ноты) в случае есди это VSTi и обрабатывают входящий аудио-поток (в случае есди это VST), впрочем есть много исключений из этого простого разделения.

Программирование для чайников

Существуют программы, которые не требуют знаний языков программирования и которые позволяют создавать vst плагины:

это SynthMaker и  SynthEdit. Пользователь собирает свой ВСТ-плагин из готовых, заранее запрограммированых, элементов. Разумеется, таким методом вряд ли возможно создать достойный и выделяющийся плагин. Появление этих программ уже спровоцировало наплыв бесплатных, однообразных по звучанию и дизайну плагинов. Однако не рассмотреть эти программы было бы неправильно. Они могут послужить отправной точкой для Вас, дав необходимую практику на начальном уровне.

Модульные синтезаторы

В разделе  »Муз. программы» — «Функциональность ВСТ» Вы можете найти ряд программ, в которых Вы сможете сами программировать синтезаторы в рамках хост-программы (иногда плагина). Также там есть программы, написанные специально для анализа Ваших ВСТ плагинов, однако вернёмся к модульным синтезаторам. Если в обычном плагине-синтезаторе звука пользователь изменяет звучание с помощью уже готовых «триггеров, пресетов и ручек», то в модульных синтезаторах он может сам создавать элементы, влияющие на темброобразование плагина (ADSR огибающие, осциляторы, генераторы, модулчторы и т.д.). Овладение такими синтезаторами также может быть полезно для понимания процесса и основ того или иного синтеза звука.  Лучшей программой в этой области пожалуй является Reactor.

Теоретическая составляющая

Для программирования ВСТ-плагинов Вам нужно понимать основы синтеза звука. На нашем сайте есть ряд статей о саунд дизайне и синтезе звука а также подробное описание создания примитивного FM синтезатора. Также Вам могут понадобится базовые знания, которые Вы можете подчеркнуть в Энциклопедии и в целом на нашем сайте. По сути, если Вы знаете ранее перечисленные ящыки программирования, то с информацией, предоставленной на нашем сайте, у Вас не должно возникнуть проблем при создании ВСТ интсрументов. Если же Вы не владеете этими языками программирования — то ими нужно овладеть. К можалению наш сайт не специализируется на программировании. В этом и заключается специфика создания ВСТ плагинов и другого ПО: нужно обладать знаниями как в области синтеза и обработки звука, так и в области объектно-ориентированого программирования.

Создание ВСТ плагина

sdk

Как уже писалось — основателем ВСТ технологии является компания Steinberg. Вам нужно скачать sdk пакет (классы на C++) с официального сайта из раздела Support > 3rd party developer section, предварительно пройдя регистрацию. На данный момент последней версией sdk является третяя, Вы можете скачать её с нашего сервера, однако нет гарантии того, что к моменту прочтения этой статьи стеинберг не разработал новую версию sdk (скачивание которой на данный момент бесплатно).

Справка: SDK (от англ. Software Development Kit) или «devkit» — комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, видеоигровых консолей, операционных систем и прочих платформ.

В архиве находится документация (на английском) по работе с пакетом, напишите на форуме если Вам  нужен его перевод. Также в него включены все необходимые файлы программы C++.  Существует перевод на язык Delphi 3-ей версии sdk от стеинберга, скачать. Также Вы можете создавать вст плагины с помощью языков .NET и Java.

Примеры кода

Delphi:

ADelay — перевод на Delphi (с оригинальной sdk) простого примера реализации дилея. Не содержит sdk файлы, так что их надо скачать отдельно.

VSTXSynth — перевод на Delphi  (с оригинальной sdk) простого примера реализации синтезатора. Не содержит sdk файлы, так что их надо скачать отдельно.

DExample — простой пример плагина без редактора, также включённый в sdk (но на С++). Архив включает в себя файлы sdk, которые нужно откомпелировать.

Doubler — этот пример имеет своё собственное окно редактирования.

tutorial — Туториал о том как программировать простой ВСТ плагин на дельфи, основывается на 1.x версии sdk.

С++

VST4Borland — пример простого плагина, не содержит каких-либо sdk файлов.

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

Программирование на С++

Компиляция плагина (VST 1 и 2):  чтобы создать VST плагин в C++, для начала нужно скачать sdk от Стеинберга. Далее нужно создать .def файл, который должен содержать в себе как минимум след. строку:

EXPORTS main=_main

Если будете использовать какой-то из VCL элементов — нужно предварительно побеспокоиться о том что Ваш плагин не зависнет хост-программу (пользуйтесь спец. плагинами анализа, есть в файле «функциональность ВСТ»).

Также, стеинберг разрабатывает VST GUI, который представляет из себы набор ВСТ-классов, которые могут быть использованы как граффический интерфейс. В VST GUI входят классы кнопок, слайдеров и дисплеев.

Резюме

В СНГ достаточно высокий уровень пиратства, что создаёт свои качества музыкального рынка. На данный момент в РУ-нете лично я не нашёл достойных статей о программировании ВСТ-плагинов. Почему программисты не очень активны в этой области лично я не знаю. В любом случае, я надеюсь на то что эта скромная статья с самыми начальными основами будет способствовать развитию музыкального рынка, точнее рынка музыкального программного обеспечения. Я буду стараться далее давать больше информации о программировании ВСТ плагинов, и в целом о той части программирования, которая относится к созданию музыкального ПО на нашем форуме, в разделе «Программное обеспечение» — «Программирование».

Если у Вас есть вопросы, или Вы хотите поделиться опытом — не стесняйтесь их задать в этом разделе, тем самым Вы поспособствуете более широкому и качественному развитию музыкальной индустрии СНГ.

Комментарии отключены.