LV2 - LV2

LV2
Плоская зеленая граница 2-го уровня .svg
Разработчики)Стив Харрис, Дэвид Робиллард, другие участники linux-audio-dev
Репозиторийgitlab.com/ lv2/ lv2
Написано вC и Черепаха
ЛицензияЛицензия ISC
Интернет сайтlv2plug

LV2, сокращение от LADSPA Версия 2, представляет собой набор бесплатно открытые стандарты[1] за плагины и соответствующие хост-приложения. Он включает поддержку синтез и обработка из цифровой звук и резюме, [2] такие события как MIDI и OSC, и предоставляет бесплатную альтернативу аудио плагин стандарты, такие как Технология виртуальной студии (VST) и Аудиоустройства (Австралия).

LV2 преуспевает в более ограниченном API простых плагинов для Linux Audio Developer (LADSPA) и заменяет Одноразовый интерфейс Soft Synth (DSSI) подключаемая инфраструктура («LADSPA для инструментов»), добавляющая такие возможности, как возможности MIDI, настраиваемые пользовательские интерфейсы и систему, позволяющую расширять исходный стандарт.[3][4]

Список плагинов LV2 на хосте Carla

Сейчас доступно более тысячи плагинов в формате LV2.[5] Известные плагины включают Студийное снаряжение для теленка[6] Программное обеспечение, которое может размещать "комплекты" плагинов LV2, включает Пыл, Ingen, Карла (из KXStudio распределение), Qtractor, Traverso DAW,[7] Харрисон Миксбус,[8] MusE, Мужество[9], Ecasound, FFmpeg, то GStreamer фреймворк и программное обеспечение для диджеинга Mixxx. Это также формат плагина, используемый MOD Duo и MOD Duo X, [10] Zynthian, и Поли Эффекты Аппаратные блоки Digit / Beebo.

Концепции

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

Плагины LV2 в хосте Ingen
Модульный драм-синтезатор LV2 в Carla

RDF

Спецификации LV2 определены[11] и использовать[12] из RDF метаданные в Черепаха формат. Используемые технологии включают Дублинское ядро, FOAF, DOAP, XSD, RDFS и СОВА.[13] Реляционные возможности и свойства, поддерживаемые этим синтаксисом, являются мощными, но поначалу их трудно понять.[14]

Помимо базовой спецификации существует 21 официальное расширение, обеспечивающее поддержку параметров хоста, предустановок плагинов, времени и единиц измерения, буферов портов, свойств, групп и меток параметров для отправки MIDI, патчей, событий пользовательского интерфейса и многого другого.[15] Существуют различные сторонние расширения для поддержки выразительные события, OSC, и Устройства MOD специальное оборудование и программное обеспечение, с тремя в KXStudio LV2 пространство имен.

Плагин использует эту информацию, чтобы предоставить хосту список возможностей, чтобы хост мог их реализовать.[16] Точно так же хост может предоставить список возможностей расширения LV2, которые он поддерживает при инициализации плагина.

В приведенном ниже примере сначала объявляются префиксы ярлыков lv2 и doap онтологии. Далее, у каждого плагина должен быть свой URI. Затем в следующих 4 строках объявляется, что этот ресурс является lv2: Plugin, двоичным объектный файл должна присутствовать библиотека с именем файла silent.so, что плагин известен под названием Silence и распространяется под лицензией GNU GPL. Эти 4 свойства являются обязательными для плагина LV2; если в плагине их не все, хост может не загрузить его.

@префиксlv2:<http://lv2plug.in/ns/lv2core#>.@префиксdoap:<http://usefulinc.com/ns/doap#>.<http://ll-plugins.nongnu.org/lv2/lv2pftci/silence>аlv2:Плагин;lv2:двоичный<silence.so>;doap:имя"Тишина";doap:лицензия<http://usefulinc.com/doap/licenses/gpl>;lv2:порт[аlv2:AudioPort,lv2:Выходной порт;lv2:индекс0;lv2:символ"выход";lv2:имя"Выход";].

Атомы

"Атом" структуры данных используются для обмена сообщениями между портами плагина[17][18] для передачи MIDI[19], OSC, патч[20], Пользовательский интерфейс и другие события между экземплярами плагина. Их также можно сериализовать в Turtle. [21][22]

UI

Хост-интерфейс для свойств плагина

Помимо отделения метаданных от двоичных файлов, LV2 требует общего разделения между DSP и обработкой пользовательского интерфейса. Преимущества включают в себя то, что обработка пользовательского интерфейса не может сдерживать обработку DSP, а пользовательский интерфейс и DSP могут быть разделены по сети. Обмен сообщениями с использованием Atoms - это предпочтительный метод передачи обновлений между запущенным DSP и двоичными файлами пользовательского интерфейса.

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

Резьба

Одной из возможностей, которую хост может предоставить плагину, является «рабочий поток». С точки зрения программирования это означает, что плагин может разгрузить некоторую работу, которая будет выполняться в другом потоке, который предоставляет хост. Это обычно полезно, потому что плагин обычно запускается в звуковом потоке в реальном времени приложения и, следовательно, не может выполнять какие-либо безопасные операции не в реальном времени (доступ к диску, системные вызовы и т. Д.). Чтобы плагин упростил достижение своих целей (например, загрузку файла с диска), хост может предоставить рабочий поток. Хост предоставляет LV2_Extension для рабочего потока[23] и плагин сможет его использовать.

Разработка

Существуют инструменты и фреймворки, помогающие создавать плагины LV2. К ним относятся DPF (DISTRHO Plugin Framework), две вилки ЮС, Фауст, Dplug, iPlug 2 (альфа) и Cabbage (альфа). Также есть возможность загружать Чистые данные патчи, а также JIT -запустить код Faust, Rust, Lua или C в некоторых плагинах LV2. Для обмена информацией и обсуждения LV2 существуют списки рассылки пользователей и разработчиков, а также каналы # lv2 и #lad на Freenode IRC, и форумы, такие как LinuxМузыканты.

Смотрите также

Рекомендации

  1. ^ https://gitlab.com/lv2/lv2
  2. ^ JACK / LV2 CV - LinuxМузыканты
  3. ^ Список возможностей LV2
  4. ^ drobilla.net: LV2: Хороший, плохой и уродливый
  5. ^ Список из 1000+ плагинов uris [1] сайт.
  6. ^ "Calf Studio Gear поддерживает LV2".
  7. ^ "Руководство пользователя Traverso, стр. 26" (PDF). Архивировано из оригинал (PDF) на 2016-04-23. Получено 2020-02-21.
  8. ^ Веб-сайт Харрисона
  9. ^ Мужество В архиве 2008-09-29 на Wayback Machine
  10. ^ «Устройства MOD». moddevices.com. Получено 2016-04-16.
  11. ^ https://gitlab.com/lv2/lv2/-/blob/master/lv2/core/lv2core.ttl
  12. ^ https://gitlab.com/lv2/lv2/-/blob/master/lv2/core/lv2.h
  13. ^ https://github.com/lv2/lv2/tree/master/schemas.lv2
  14. ^ drobilla.net: Написание книги LV2
  15. ^ http://lv2plug.in/ns/
  16. ^ Программирование плагинов LV2 книга с примерами плагинов.
  17. ^ LV2 Atoms: модель данных для звуковых плагинов в реальном времени (PDF)
  18. ^ http://lv2plug.in/ns/ext/atom/
  19. ^ http://lv2plug.in/ns/ext/midi/
  20. ^ http://lv2plug.in/ns/ext/patch/
  21. ^ drobilla.net: сериализация атома и состояния LV2 -
  22. ^ https://github.com/lv2/sratom - небольшая библиотека C для сериализации атомов LV2 в и из RDF, для преобразования между двоичным кодом и текстом или для сохранения в модели.
  23. ^ http://lv2plug.in/ns/ext/worker

внешняя ссылка