LV2

LV2
LV2
Lv2 flat green border.svg
개발자Steve Harris, David Robillard, 기타 Linux-audio-dev 멤버
안정된 릴리스
1.18.4[1] / 2022년 5월 26일; 2개월 (2022년 5월 26일)
저장소gitlab.com/lv2/lv2
기입처C와 거북이
면허증.ISC 라이선스
웹 사이트lv2plug.in

LV2(LADSPA Version 2)는 플러그인과 호스트 애플리케이션에 대한 로열티가 필요 없는 오픈[2] 스탠다드 세트입니다.디지털 오디오 CV, MIDIOSC 등의 이벤트 합성처리를 지원하며 Virtual Studio Technology(VST) 및 Audio Unit(AU) 의 오디오 플러그인 표준을 대체하는 무료 기능을 제공합니다.

LV2는 보다 제한된 Linux Audio Developer의 Simple Plugin API(LADSPA) 표준을 계승하여 DSSI(Dispable Soft Synth Interface) 플러그인 인프라스트럭처("계기용 LADSPA")를 대체하고 MIDI 기능, 커스텀 UI, 초기 [4][5]표준의 확장을 가능하게 하는 시스템 등의 기능을 추가합니다.

Carla 호스트의 LV2 플러그인 목록

현재 1200개 이상의 플러그인을 LV2 [6]형식으로 사용할 수 있습니다.주목할 만한 플러그인으로는 Calf Studio [7]Gear가 있습니다.LV2 플러그인의 「번들」을 호스트 할 수 있는 소프트웨어에는, 현재 LXTudioArdour, Ingen, Carla, Qtractor,[8] Traverso DAW, Harrison [9]Mixbus, MusE, [10]Audacity, Ecasound, FFmpeg, Gitarix, GStreamer 프레임워크, DJing 소프트웨어가 포함되어 있습니다.또한 MOD Duo 및 MOD Duo X, Zynthian Poly Effects Digit/Bebo 하드웨어 유닛에서 사용되는 플러그인 형식입니다.

개념

LV2는 확장 가능한 프레임워크이므로 프로그램에서 플러그인을 로드하여 일부 처리를 수행할 수 있습니다.LV2에서는 호스트와 플러그인 간에 모든 유형의 데이터를 교환할 수 있으므로 여기서 사용되는 용어는 의도적으로 일반적입니다.

Ingen 호스트의 LV2 플러그인
LV2 모듈러 드럼 신스(Carla)

RDF

LV2 사양은 Turtle 형식RDF 메타데이터를 사용하여[13] 정의됩니다[12].관련된 테크놀로지에는 Dublin Core, FOAF, DOAP, SPDX, XSD, RDFS [14]OWL이 포함됩니다.이 구문이 지원하는 관계형 기능과 속성은 강력하지만 [15]처음에는 이해하기 어려울 수 있습니다.

코어 사양 이외에 MIDI, 패치, UI 이벤트 등을 [16]전송하기 위한 호스트 옵션, 플러그인 프리셋, 시간과 유닛, 포트 버퍼, 속성, 그룹 및 파라미터 라벨을 지원하는 21개의 공식 확장이 있습니다.표현 이벤트, OSC MOD 디바이스 고유의 하드웨어 및 소프트웨어를 지원하기 위한 다양한 서드파티 확장이 있으며 KXStudio LV2 네임스페이스에는 3개가 있습니다.

플러그인은 이 정보를 사용하여 호스트에 기능 목록을 제공하므로 호스트가 이러한 [17]기능을 수용할 수 있습니다.마찬가지로 호스트는 플러그인 초기화 시 지원하는 LV2 확장 기능 목록을 제공할 수 있습니다.

다음 예제에서는 먼저 lv2, doap 및 spdx 온톨로지의 바로 가기 프레픽스가 선언됩니다.다음으로 각 플러그인에는 자체 URI 또는 URN이 있어야 합니다.다음 4행은 이 리소스가 lv2임을 나타냅니다.플러그인: 파일 이름 무음인 이진 개체 파일 라이브러리입니다.따라서 플러그인이 Silent라는 이름으로 알려져 있고 GNU GPL로 라이선스가 부여되어 있어야 합니다.이러한 4가지 속성은 LV2 플러그인의 필수 속성입니다.플러그인에 모든 속성이 없는 경우 호스트가 해당 속성을 로드하지 않을 수 있습니다.

@parames(@parames) lv2:  <http://lv2plug.in/ns/lv2core#>. @parames(@parames) doap: <http://usefulinc.com/ns/doap#>. @parames(@parames) spdx: <http://spdx.org/rdf/terms#>.  <http://example.org/lv2/wikipediaexample/silence>   a 레벨 2:플러그인;   레벨 2:바이너리 <고객명>님.>;   도프:이름. "침묵";   도프:면허증. spdx:GPL-3.0 이후;   rdfs:댓글 "이것은 예제 플러그인 설명이 포함된 예제 플러그인입니다."    레벨 2:항구 [     a 레벨 2:오디오 포트, 레벨 2:출력 포트;     레벨 2:색인 0;     레벨 2:기호. "출력";     레벨 2:이름. "출력";   ]. 

원자

"ATOM" 데이터 구조는 플러그인 인스턴스 간의 MIDI,[20] OSC, 패치,[21] UI 및 기타 이벤트 전송을 위한 플러그인[18][19] 포트 간의 메시징에 사용됩니다.이것들은 Turtle에게 연재될 수도 있습니다.[22][23]

UI

플러그인 속성에 대한 호스트 인터페이스

LV2에서는 메타데이터와 바이너리를 분리하는 것 외에 DSP와 사용자 인터페이스 처리를 일반적으로 분리해야 합니다.UI 처리로 DSP 처리를 지연시킬 수 없고 UI와 DSP를 네트워크 전체에서 분리할 수 있다는 장점이 있습니다.실행 중인 DSP 바이너리와 UI 바이너리 간에 업데이트를 전달하려면 Atom을 사용한 메시징이 권장됩니다.

호스트는 플러그인 인스턴스의 속성을 표시하고 구성하는 인터페이스도 제공할 수 있습니다.올바른 컨트롤 유형을 표시하는 데 도움이 되는 확장 및 속성이 있습니다.

스레드화

호스트가 플러그인에 제공할 수 있는 기능 중 하나는 "작업자 스레드"입니다.프로그래밍 측면에서 이는 플러그인이 호스트가 제공하는 다른 스레드에서 수행할 일부 작업을 오프로드할 수 있음을 의미합니다.일반적으로 플러그인은 응용 프로그램의 실시간 오디오 스레드에서 실행되므로 비실시간 안전 작업(디스크 액세스, 시스템 호출 등)을 수행할 수 없기 때문에 유용합니다.플러그인이 쉽게 목표를 달성할 수 있도록(예: 디스크에서 파일 로드) 호스트는 작업자 스레드를 제공할 수 있습니다.호스트는 워커[24] 스레드에 LV2_Extension을 제공하고 플러그인은 이를 사용할 수 있습니다.

발전

LV2 플러그인 작성에 도움이 되는 툴과 프레임워크가 있습니다.여기에는 DPF(DISTRHO Plugin Framework), JUCE, 파우스트, Dplug, iPlug 2(alpha), 양배추(alpha) 등이 있습니다.또한 특정 LV2 플러그인에 Pure Data 패치 및 JIT 실행 Faust, Rust, Lua 또는 C 코드를 로드할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "LV2 1.18.4".
  2. ^ "LV2 / Lv2".
  3. ^ JACK/LV2 CV - Linux Musicians
  4. ^ LV2 기능 목록
  5. ^ drobilla.net : LV2 : 좋은 것, 나쁜 것, 못생긴 것
  6. ^ 1000+ 플러그인 uris [1] 사이트 목록입니다.
  7. ^ "Calf Studio Gear supports LV2".
  8. ^ "Traverso User Manual, p. 26" (PDF). Archived from the original (PDF) on 2016-04-23. Retrieved 2020-02-21.
  9. ^ 해리슨 웹사이트
  10. ^ Wayback Machine에서 Audacity 아카이브된 2008-09-29
  11. ^ "MOD Devices". moddevices.com. Retrieved 2016-04-16.
  12. ^ "Lv2/Core/Lv2core.TTL · master · LV2 / Lv2".
  13. ^ "Lv2/Core/Lv2.h · master · LV2 / Lv2".
  14. ^ "Lv2/Schemas.lv2 at master · lv2/Lv2". GitHub.
  15. ^ drobilla.net : LV2 책 작성
  16. ^ "LV2 Specifications".
  17. ^ 샘플 플러그인으로 LV2 플러그인프로그래밍.
  18. ^ LV2 Atoms: 실시간 오디오 플러그인용 데이터 모델(PDF)
  19. ^ "Missing Page".
  20. ^ "Missing Page".
  21. ^ "Missing Page".
  22. ^ drobilla.net : LV2 ATOM스테이트 시리얼라이제이션 -
  23. ^ https://github.com/lv2/sratom - LV2 원자를 RDF와 시리얼링하여 바이너리와 텍스트를 변환하거나 모델에 저장하기 위한 소형 C 라이브러리입니다.
  24. ^ "LV2 Worker".

외부 링크