Попробовать себя в проектировании интерфейсов для DAW-плагинов — помогут эти инструменты

Ранее мы уже рассказывали о библиотеках, заточенных под разработку алгоритмов синтеза и фильтрации аудио. Сегодня покажем утилиты, которые помогут нарисовать для них графический интерфейс с целью интеграции в цифровые звуковые рабочие станции (DAW). Под катом — о возможностях VSTGUI, Elements и Pugl.



Предусилитель Universal Audio 6176

VSTGUI

Впервые этот комплект для разработки интерфейсов представила немецкая компания Steinberg Media Technologies (производит аппаратное и программное обеспечение для музыкальной индустрии) еще в 1998 году. Продукт активно использовали для проектирования плагинов формата VST, который укоренился в индустрии и сегодня поддерживается многими DAW. Вскоре VSTGUI стала частью VST SDK, и в 2003 году её код был передан в open source.

С тех пор toolkit постепенно обрастал новыми функциями — туда добавили поддержку форматов AU, AAX, RTAS, а также JSON. С помощью VSTGUI разбирающиеся в вопросе специалисты могут создать комплексный UI всего за несколько минут. Например, один энтузиаст воспроизвел интерфейс плагина Grungelizer, который добавляет шум и помехи на аудиодорожку. Инструмент находит применение и в профессиональной среде — VSTGUI часто использует диджей Стив Дуда, известный как BSOD, а инженеры из Steinberg построили на базе toolkit’а виртуальный аналоговый синтезатор Nanologue для iPad.

Однако новичкам может быть сложно начать работу с утилитой, так как, по словам резидентов тематического форума KVR Audio, её документацию нельзя назвать user friendly — на сайте и в репозиториях нет наглядных примеров.

Elements

Это — модульная GUI-библиотека на C++. Её разработал инженер Джоэл Де Гузман, который выступил автором библиотеки для цифровой обработки сигналов — Q. Изначально Джоэл использовал JUCE и iPlug, но они не отвечали его требованиям, поэтому он решил выпустить свой инструмент. К его ключевым особенностям можно отнести поддержку HDPI-дисплеев, наличие декларативных API на C++ и векторные элементы интерфейса — виртуальные слайдеры и регуляторы, кнопки и окна с уведомлениями, а также блоки для вывода текста. При этом Elements можно интегрировать в другие GUI-библиотеки и фреймворки.

Модульная природа библиотеки позволяет переиспользовать элементы интерфейса для создания новых визуальных компонентов — вот пример кода, который нарисует кнопку:

auto constexpr button_margin = rect{ 10, 5, 10, 5 };
template <typename Button>
inline Button make_button(
   std::string
const& text
 ,
float size = 1.0
, color body_color = get_theme().default_button_color
)

{
   return make_button<Button>(
      margin(
         button_margin,
         align_center(label(text, size))
      ),
      body_color
   );
}

Elements имеет собственный движок для отрисовки векторной графики, в основу которого положена открытая библиотека Cairo.

Эквалайзер

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

Pugl

Это — портируемый API для сборки интерфейсов, ориентированный на работу в плагинах. Автором выступил аудиоинженер Дэвид Робиллард, в портфолио которого есть такие проекты, как Machina и Ingen. Первый — это MIDI-секвенсор, основанный на конечных автоматах, а второй — система обработки звука для платформ на базе форматов Jack и LV2.

Pugl построен на графических интерфейсах Cairo, OpenGL и Vulkan. По функциональности он напоминает GLUT and GLFW, но имеет ряд отличий — в частности, подходит для проектирования событийно-управляемых приложений и не использует статические данные.

Дэвид поддерживает инструмент в одиночку (хотя иногда ему помогают участники сообщества), поэтому в Pugl встречаются баги. Однако разработчик быстро исправляет ошибки — за день он выпускает до десяти фиксов. Если вы хотите помочь с развитием проекта, то можете изучить Pugl по официальным туториалам — они затрагивают специфику работы на С и С++.

Эту статью прочитали 3 146 раз
Статья входит в разделы:Полезные советыИнтересное о звуке

Поделиться материалом:
Обсуждение данного материала
Комментариев пока нет. Станьте первым!
Написать свой комментарий