-
Notifications
You must be signed in to change notification settings - Fork 1
Home
The purpose of this repository is to play with the creation of audio plugins for Linux audio productions, with focus on signal processing part.
- LADSPA: Linux Audio Developer's Simple Plugin API.
- LV2
-
linux VST2.x the
VST2-sdkis included in theVST3-sdkdownload
We will first focus on LV2, since it is the second version of LADSPA, from the homepage:
The "core" API of LV2, lv2.h, is essentially ladspa.h with extensibility hooks added. It is a simple C header with the basic methods typical to audio plugins.
- ALSA: Advanced Linux Sound Architecture (ALSA) is a software framework and part of the Linux kernel that provides an application programming interface (API) for sound card device drivers. [https://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture]
- JACK: JACK Audio Connection Kit (or JACK; a recursive acronym) is a professional sound server daemon that provides real-time, low-latency connections for both audio and MIDI data between applications that use its API. [https://en.wikipedia.org/wiki/JACK_Audio_Connection_Kit]
- Pulse Audio: PulseAudio is a network-capable sound server program distributed via the freedesktop.org project.
Usually we want to use ALSA with JACK and not Pulse Audio because it crashes with the low latency of JACK, however it is possible to have them running aside.
-
LV2 create only
LV2plugins based on core library -
DPF use
DPFand convert to all type of plugins:LDASP,LV2,VST,AU(mac) and not C or C++: - Faust language using faust-lv2 for conversion
-
D using Dplug creating
LDASP,LV2,VST,AU
We need to decide what to use, maybe for the first LV2 is simplest? There is also a conversion toolkit from LV2 to VST: https://github.com/x42/lv2vst
LV2 plugins can be testes within a plugin host.
For example using Ardour can also be installed with apt.
Another option is plugin host and patch bay Carla, here real time audio can be tested (works also under MacOs).
plugins can also be started with command line host jalv which also offer a simple gui interpretation
http://lv2plug.in/git/cgit.cgi/lv2.git/about/
LV2-plugins are folders/directories. They need to be installed in either /usr/lib/lv2, /usr/local/lib/lv2 or a directory mentioned in the local LV2_PATH environment variable.
Static data is described separately in the human and machine friendly Turtle syntax.
Since turtle files are not validated on build one should follow this guide:
http://lv2plug.in/pages/validating-lv2-data.html
- Benchmark testing tool: https://github.com/moddevices/lv2bm
- Simple tester: https://carlh.net/plugins/torture.php
answers of those have great info
- https://stackoverflow.com/questions/19340160/implementing-audio-delay-effects-unit
- https://stackoverflow.com/questions/5318989/reverb-algorithm
about delay lines etc
about reverb
mathematics and background
amplitude is dependend on bit depth of the audio interface/ jack instance
https://dsp.stackexchange.com/questions/48918/amplitude-ranges-for-different-bit-depths
conversion functions: https://blog.demofox.org/2015/04/14/decibels-db-and-amplitude/
Especially turtle files