LV2 - LV2
Разработчики) | Стив Харрис, Дэвид Робиллард, другие участники linux-audio-dev |
---|---|
Репозиторий | gitlab |
Написано в | 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.[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 позволяет обмениваться данными любого типа между хостом и плагином.
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Музыканты.
Смотрите также
Рекомендации
- ^ https://gitlab.com/lv2/lv2
- ^ JACK / LV2 CV - LinuxМузыканты
- ^ Список возможностей LV2
- ^ drobilla.net: LV2: Хороший, плохой и уродливый
- ^ Список из 1000+ плагинов uris [1] сайт.
- ^ "Calf Studio Gear поддерживает LV2".
- ^ "Руководство пользователя Traverso, стр. 26" (PDF). Архивировано из оригинал (PDF) на 2016-04-23. Получено 2020-02-21.
- ^ Веб-сайт Харрисона
- ^ Мужество В архиве 2008-09-29 на Wayback Machine
- ^ «Устройства MOD». moddevices.com. Получено 2016-04-16.
- ^ https://gitlab.com/lv2/lv2/-/blob/master/lv2/core/lv2core.ttl
- ^ https://gitlab.com/lv2/lv2/-/blob/master/lv2/core/lv2.h
- ^ https://github.com/lv2/lv2/tree/master/schemas.lv2
- ^ drobilla.net: Написание книги LV2
- ^ http://lv2plug.in/ns/
- ^ Программирование плагинов LV2 книга с примерами плагинов.
- ^ LV2 Atoms: модель данных для звуковых плагинов в реальном времени (PDF)
- ^ http://lv2plug.in/ns/ext/atom/
- ^ http://lv2plug.in/ns/ext/midi/
- ^ http://lv2plug.in/ns/ext/patch/
- ^ drobilla.net: сериализация атома и состояния LV2 -
- ^ https://github.com/lv2/sratom - небольшая библиотека C для сериализации атомов LV2 в и из RDF, для преобразования между двоичным кодом и текстом или для сохранения в модели.
- ^ http://lv2plug.in/ns/ext/worker