The JACK audio system and LV2 plugin format both provide CV port support that allows the patching of audio-rate parameter control signals between clients/plugins, enabling a multi-app modular environment that can be connected with hardware for a hybrid setup. This is an adapted copy of a post on LinuxMusicians.com regarding the ecosystem so far, and I thought it would be a natural fit to cross-post for users and developers on the lines.
Ingen (^) was the first LV2 host to support CVPort, then Non-Mixer and Non-Timeline followed with JACK CV support for automation. More recently the JACK metadata mechanism enabling CV ports was added to JACK2, and CV support is now found in JACK clients/LV2 hosts Carla (v), Synthpod, Jalv, mod-host and Zrythm, with hardware support on the (almost available) MOD Duo X and (eventually) Zynthian devices.
The LV2 format also allows for metadata relating to the min, max and “unit” values for the CVPort. Carla also passes this metadata on to any exposed JACK CV ports, and also allows plug-in parameters to be exposed as CV ports.
In LV2/Ingen:
JACK client/LV2 host commits:
- Ingen
- Non-Mixer
- Synthpod
- Carla
- Jalv
- mod-host
- Zrythm
- GStreamer
- Spaghettis - Pure Data fork with metadata support
Plugins and plugin suites with support:
- ams-lv2 - port of the AlsaModularSynth (AMS) internal modules to LV2
- avw.lv2 - same as above
- blop-lv2 - generators, filters, and various utility plugins
- fomp - 1 auto-wah, 1 EQ, 3 chorus, 2 phasers, 5 filters, 3 oscillators, and 2 reverbs
- ZLFO - multi waveform oscillator, comes with Zrythm
- infamousPlugins - envelope follower & stop/start effects
- beatslash-lv2 - beat repeater & beat slicer
- vm.lv2 - programmable stack-based virtual machine
- mod-cv-plugins - handy utility plugins
- cv-lfo-blender-lv2 - 4 synced LFOs with blended output
- arpeggiator_LV2 - an arpeggiator and a MIDI-pattern plugin
- non-zyn-CV - automate zynaddsubfx using non-timeline CV automation via synthpod
(ZLFO in Ingen ^ (Alex put a lot of work into ZLFO recently, though it still has some buggy edges! i.e. doesn’t work in Ingen beyond loading for the screenshot above as an example of Ingen embed-GUI-in-graph option))
Conversion/testing:
- mod-spi2jack - JACK client for converting SPI to a JACK control-voltage stream and vice-versa
- midimsg-lv2 - basic MIDI aftertouch, CC and mod wheel to CV
- MIDIMonster - Multi-protocol translation software (ArtNet, MIDI, OSC, …)
- mod-fake-control-voltage - A small Jack-internal client to simulate the physical CV-ports
- jm2cv - older, doesn’t use JACK metadata
Plug-in frameworks that support CV:
Sequencing is possible from MIDI (via mod-midi-to-cv-mono, mod-midi-to-cv-poly, midi2cv of Carla, Note of Ingen, or MIDIMonster), or by using Non-Timeline. True CV recording and sequencing does not exist yet.
More info on the MOD plugins here, here and here, with discussion on the MOD forums, and more on Zynthian there.