LV2

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

LV2, акроним от LADSPA Version 2, представляет собой набор без лицензионных платежей открытых стандартов для плагинов и соответствующих хост-приложений. Он включает поддержку синтеза и обработки из цифрового аудио и CV, таких событий, как MIDI и OSC и предоставляет бесплатную альтернативу стандартам аудио плагинов, таким как Virtual Studio Technology (VST) и Audio Units (AU).

LV2 является преемником более ограниченного стандарта Linux Audio Developer's Simple Plugin API (LADSPA) и заменяет инфраструктуру плагинов Disposable Soft Synth Interface (DSSI) («LADSPA для инструментов "), добавляя такие возможности, как возможности MIDI, настраиваемые пользовательские интерфейсы и систему, позволяющую расширять исходный стандарт.

Список подключаемых модулей LV2 на хосте Carla

Более тысячи подключаемых модулей теперь доступны в формате LV2. Известные плагины включают Calf Studio Gear. Программное обеспечение, которое может содержать «пакеты» плагинов LV2, включая Ardor, Ingen, Carla (из дистрибутива), Qtractor, Traverso DAW, Harrison Mixbus, MusE, Ecasound, FFmpeg, GStreamer framework и программное обеспечение для ди-джеев Mixxx. Это также формат плагина, используемый аппаратными модулями MOD Duo и MOD Duo X, Zynthian и Poly Effects Digit / Beebo.

Содержание
  • 1 Концепции
    • 1.1 RDF
    • 1.2 Атомы
    • 1.3 UI
    • 1.4 Распределение потоков
  • 2 Разработка
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние links
Concepts

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

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

RDF

Спецификации LV2 определены и используют метаданные RDF в Формат черепахи. Используемые технологии включают Dublin Core, FOAF, DOAP, XSD, RDFS и OWL <217.>. Реляционные возможности и свойства, поддерживаемые этим синтаксисом, мощны, но их трудно понять сначала.

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

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

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

@prefix lv2: . @prefix doap: . a lv2: Plugin; lv2: двоичный ; doap: name "Тишина"; doap: лицензия ; lv2: порт [a lv2: AudioPort, lv2: OutputPort; lv2: индекс 0; lv2: символ «выход»; lv2: имя «Вывод»; ].

Atoms

"Atom" структуры данных используются для обмена сообщениями между портами плагина для передачи MIDI, OSC, Patch, UI и других событий между экземплярами плагина. Их также можно сериализовать в Turtle.

UI

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

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

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

Многопоточность

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

Разработка

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

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
  1. ^https://gitlab.com/lv2/lv2
  2. ^JACK / LV2 CV - LinuxMustees
  3. ^Список возможностей LV2
  4. ^drobilla.net: LV2: Хорошее, плохое и уродливое
  5. ^Список плагинов 1000+ uris [1] сайт.
  6. ^«Calf Studio Gear поддерживает LV2».
  7. ^«Руководство пользователя Traverso, стр. 26» (PDF). Архивировано из оригинального (PDF) 23.04.2016. Проверено 21 февраля 2020 г.
  8. ^Веб-сайт Харрисона
  9. ^29 сентября 2008 г. на Wayback Machine
  10. ^«MOD Devices». moddevices.com. Проверено 16 апреля 2016 г.
  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: написание книги уровня 2
  15. ^http : //lv2plug.in/ns/
  16. ^Programming LV2 Plugins книга с примерами плагинов.
  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/
Внешние ссылки
Последняя правка сделана 2021-05-26 09:07:42
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте