Articulo de referencia

Nivel 2

LV2 ( LADSPA Versión 2 ) es un conjunto de estándares abiertos libres de regalías [ 2 ] para complementos de producción musical y aplicaciones anfitrionas compatibles. Incluye s...

LV2 ( LADSPA Versión 2 ) es un conjunto de estándares abiertos libres de regalías [ 2 ] para complementos de producción musical y aplicaciones anfitrionas compatibles. Incluye soporte para la síntesis y el procesamiento de audio digital y CV [ 3 ] , eventos como MIDI y OSC , y proporciona una alternativa gratuita a los estándares de complementos de audio como Virtual Studio Technology (VST) y Audio Units (AU).

LV2 sucede al estándar más limitado Linux Audio Developer's Simple Plugin API (LADSPA) y reemplaza la infraestructura de complementos Disposable Soft Synth Interface (DSSI) ("LADSPA para instrumentos"), agregando capacidades como capacidad MIDI, interfaces de usuario personalizadas y un sistema que permite la extensibilidad del estándar inicial. [ 4 ] [ 5 ]

Listado de plugins LV2 en el host Carla

Más de mil doscientos plugins están ahora disponibles en formato LV2. [ 6 ] Entre los plugins notables se incluye Calf Studio Gear . [ 7 ] El software que puede alojar "paquetes" de plugins LV2 incluye Ardour , Ingen , Carla (de KXStudio ), Qtractor , Traverso DAW, [ 8 ] Harrison Mixbus , [ 9 ] MusE , Audacity , [ 10 ] Ecasound , FFmpeg , Guitarix , el framework GStreamer y el software para DJ Mixxx , con soporte parcial actual en LMMS y REAPER . También es el formato de plugin utilizado por las unidades de hardware MOD Duo y MOD Duo X, [ 11 ] Zynthian y Poly Effects Digit/Beebo. Isla Instruments proporciona una tarjeta de expansión de efectos para su caja de ritmos de muestreo S2400 que puede ejecutar plugins LV2. [ 12 ]

Conceptos

LV2 es un marco de trabajo extensible que permite a un programa cargar un complemento para realizar algún procesamiento. Cabe destacar que los términos utilizados aquí son genéricos a propósito, ya que LV2 permite el intercambio de cualquier tipo de datos entre el host y el complemento.

Complementos LV2 en el host Ingen
Sintetizador de batería modular LV2 en Carla

RDF

Las especificaciones LV2 se definen en [ 13 ] y utilizan [ 14 ] metadatos RDF en formato Turtle . Las tecnologías involucradas incluyen Dublin Core , FOAF , DOAP , SPDX , XSD , RDFS y OWL . [ 15 ] Las capacidades relacionales y las propiedades que admite esta sintaxis pueden ser difíciles de entender al principio, pero permiten definiciones de datos más expresivas. [ 16 ]

Más allá de la especificación principal, hay 21 extensiones oficiales que brindan soporte para opciones de host, preajustes de complementos, tiempo y unidades, búferes de puerto, propiedades, grupos y etiquetas de parámetros, para enviar MIDI, parches, eventos de interfaz de usuario y más. [ 17 ] Hay varias extensiones de terceros para admitir hardware y software específicos de eventos expresivos , OSC y MOD Devices , con tres en el espacio de nombres KXStudio LV2 .

El complemento utiliza esta información para proporcionar una lista de capacidades al host, de modo que el host pueda acomodarlas. [ 18 ] De manera similar, el host puede proporcionar una lista de capacidades de extensión LV2 que admite al inicializar el complemento.

En el ejemplo siguiente, primero se declaran los prefijos de acceso directo para las ontologías lv2, doap y spdx. A continuación, cada complemento debe tener su propio URI o URN . Luego, los cuatro siguientes declaran que este recurso es un lv2:Plugin, que debe estar presente una biblioteca de archivos de objetos binarios con el nombre de archivo silence.so, que el complemento se conoce con el nombre Silence y que está licenciado bajo la GNU GPL. Estas cuatro propiedades son obligatorias para un complemento LV2; si un complemento no las tiene todas, es posible que el host no lo cargue.

@prefix lv2: <http://lv2plug.in/ns/lv2core#> . @prefix doap: <http://usefulinc.com/ns/doap#> . @prefix spdx: <http://spdx.org/rdf/terms#> .<http://example.org/lv2/wikipediaexample/silence> a lv2 : Plugin ; lv2 : binary <silence.so> ; doap : name "Silence" ; doap : license spdx : GPL-3.0-or-later ; rdfs : comment "Este es un plugin de ejemplo que incluye una descripción de plugin de ejemplo."lv2 : puerto [ a lv2 : AudioPort , lv2 : OutputPort ; lv2 : índice 0 ; lv2 : símbolo "salida" ; lv2 : nombre "Salida" ; ].

Átomos

Las estructuras de datos "Atom" se utilizan para la mensajería entre puertos de complementos [ 19 ] [ 20 ] para la transferencia de MIDI, [ 21 ] OSC, Patch, [ 22 ] UI y otros eventos entre instancias de complementos. Estos también se pueden serializar en Turtle. [ 23 ] [ 24 ]

Interfaz de usuario

Interfaz del host para las propiedades del complemento

Además de separar los metadatos de los binarios, LV2 exige una separación general entre el procesamiento de la interfaz de usuario (DSP) y el procesamiento de la interfaz de usuario. Entre sus ventajas se incluye que el procesamiento de la interfaz de usuario no puede interferir con el procesamiento de la interfaz de usuario, y que la interfaz de usuario y el procesamiento de la interfaz de usuario pueden estar separados en la red. El método preferido para transmitir actualizaciones entre el procesamiento de la interfaz de usuario y los binarios de la interfaz de usuario en ejecución es mediante la mensajería con átomos.

Los anfitriones también pueden proporcionar una interfaz para mostrar y configurar las propiedades de las instancias de los complementos. Existen extensiones y propiedades que ayudan a mostrar los tipos de control correctos.

Enhebrado

Una capacidad que un host puede proporcionar a un complemento es un "hilo de trabajo". En términos de programación, esto significa que el complemento puede delegar parte del trabajo a otro hilo proporcionado por el host. Esto suele ser útil porque un complemento generalmente se ejecuta en el hilo de audio en tiempo real de una aplicación y, por lo tanto, no puede realizar operaciones que no sean seguras en tiempo real (accesos al disco, llamadas al sistema, etc.). Para facilitar que el complemento logre sus objetivos (por ejemplo, cargar un archivo desde el disco), el host puede proporcionar un hilo de trabajo. El host proporciona la extensión LV2 para el hilo de trabajo [ 25 ] y el complemento puede entonces utilizarla.

Desarrollo

Existen herramientas y marcos de trabajo disponibles para facilitar la creación de plugins LV2. Entre ellos se incluyen DPF (DISTRHO Plugin Framework), JUCE , Faust , Dplug, iPlug 2 (alfa) y Cabbage (alfa). También es posible cargar parches de Pure Data y ejecutar código Faust, Rust, Lua o C mediante JIT en ciertos plugins LV2.

Véase también

Referencias

  1. "LV2 1.18.10" .
  2. "LV2 / Lv2" .
  3. JACK/LV2 CV - LinuxMusicians
  4. Lista de características de LV2
  5. drobilla.net  : LV2: Lo bueno, lo malo y lo feo
  6. Lista de más de 1000 URI de pluginssitio.
  7. "Calf Studio Gear es compatible con LV2" .
  8. "Manual de usuario de Traverso, pág. 26" (PDF) . Archivado del original (PDF) el 23 de abril de 2016. Consultado el 21 de febrero de 2020 .
  9. Sitio web de Harrison
  10. Audacity Archivado el 29/09/2008 en Wayback Machine
  11. "Dispositivos MOD" . moddevices.com . Consultado el 16 de abril de 2016 .
  12. "La tarjeta DSP FX S2400 de Isla Instruments incorpora plugins de efectos al sampler de hardware" . Consultado el 3 de febrero de 2025 .
  13. "Lv2/Core/Lv2core.TTL · master · LV2 / Lv2" .
  14. "Lv2/Core/Lv2.h · master · LV2 / Lv2" .
  15. "Lv2/Schemas.lv2 en master · lv2/Lv2" . GitHub .
  16. drobilla.net  : Cómo escribir un libro de nivel 2
  17. "Especificaciones LV2" .
  18. Libro de programación de plugins LV2 con ejemplos de plugins.
  19. Átomos LV2: Un modelo de datos para complementos de audio en tiempo real (PDF)
  20. "Átomo LV2" .
  21. "LV2 MIDI" .
  22. "Parche LV2" .
  23. drobilla.net  : Serialización de átomos y estados LV2 -
  24. https://github.com/lv2/sratom - una pequeña biblioteca C para serializar átomos LV2 a y desde RDF, para convertir entre binario y texto o almacenar en un modelo.
  25. "Trabajador LV2" .
  • Sitio web oficial
  • Wiki de LV2