@@ -3,13 +3,14 @@ | |||||
This file describes the available features for each plugin format. | This file describes the available features for each plugin format. | ||||
The limitations could be due to the plugin format itself or within DPF. | The limitations could be due to the plugin format itself or within DPF. | ||||
Format | Audio IO | Parameters | Parameter outputs | Programs | States | UI->DSP sendNote | CV ports | MIDI input | MIDI output | Port groups | Special notes | |||||
JACK | Yes | Yes* | Yes* | Yes* | Yes | Yes | Yes | Yes | Yes | Yes* | Parameters have programs mapped to MIDI CC, there is no generic plugin editor; Port groups as JACK metadata | |||||
LADSPA | Yes | Yes | Yes | No* | No | No | No | No | No | No | LADSPA only supports basic parameters and audio; Programs could be done via LRDF but not supported in DPF | |||||
DSSI | Yes | Yes | Yes | Yes* | Yes* | Yes | No | Yes | No | No | DSSI only supports States via UI, no "full state" possible | |||||
LV2 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Everything supported :) | |||||
VST2 | Yes | Yes | No | No* | Yes | Yes | No | Yes | Yes | Yes* | VST2 program support requires saving state of all programs in memory, which is very expensive and thus not done in DPF; Parameter groups are supported, but not for audio ports (per VST2 spec limitations) | |||||
VST3 | Yes | Yes | Yes? | Yes | Yes | Yes | NO* | Yes | Yes | No* | Not sure if parameter outputs work (aka "read-only" on VST3); CV ports do not support custom ranges, not implemented yet; Port groups not implemented yet | |||||
| Format | Audio IO | Parameters | Parameter outputs | Programs | States | UI->DSP sendNote | CV ports | MIDI input | MIDI output | Port groups | Special notes | | |||||
|--------|----------|------------|-------------------|----------|--------|------------------|----------|------------|-------------|-------------|---------------| | |||||
| JACK/Standalone | Yes | Yes* | Yes* | Yes* | Yes | Yes | Yes | Yes | Yes | Yes* | Parameters have programs mapped to MIDI CC, there is no generic plugin editor; Port groups as JACK metadata | | |||||
| LADSPA | Yes | Yes | Yes | No* | No | No | No | No | No | No | LADSPA only supports basic parameters and audio; Programs could be done via LRDF but not supported in DPF | | |||||
| DSSI | Yes | Yes | Yes | Yes* | Yes* | Yes | No | Yes | No | No | DSSI only supports States via UI, no "full state" possible | | |||||
| LV2 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Everything supported :) | | |||||
| VST2 | Yes | Yes | No | No* | Yes | Yes | No | Yes | Yes | Yes* | VST2 program support requires saving state of all programs in memory, which is very expensive and thus not done in DPF; Parameter groups are supported, but not for audio ports (per VST2 spec limitations) | | |||||
| VST3 | Yes | Yes | Yes? | Yes | Yes | Yes | NO* | Yes | Yes | No* | Not sure if parameter outputs work (aka "read-only" on VST3); CV ports do not support custom ranges, not implemented yet; Port groups not implemented yet | | |||||
A few notes for things to add to the table: | A few notes for things to add to the table: | ||||
- Custom UI (embed, external, both or none) | - Custom UI (embed, external, both or none) | ||||
@@ -5,12 +5,13 @@ This usually due to plugin APIs/headers being tied to a specific license or havi | |||||
This file describes the licensing that applies to each individual plugin format as a way to make it clear what is possible and compatible. | This file describes the licensing that applies to each individual plugin format as a way to make it clear what is possible and compatible. | ||||
Note that if you are making GPLv2+ licensed plugins this does not apply to you, as so far everything is GPLv2+ compatible. | Note that if you are making GPLv2+ licensed plugins this does not apply to you, as so far everything is GPLv2+ compatible. | ||||
Target | License(s) | License restrictions | Attribution | |||||
JACK/Standalone | ISC (JACK bridge methods) + ?? (RtAudio) | Copyright attribution | RtAudio: 2001-2019 Gary P. Scavone | |||||
LADSPA | LGPLv2.1+ | ??? | 2000-2002 Richard W. E. Furse, Paul Barton-Davis, Stefan Westerfeld | |||||
DSSI | LGPLv2.1+ | ??? | ALSA: 1998-2001 Jaroslav Kysela, Abramo Bagnara, Takashi Iwai; DSSI: 2004, 2009 Chris Cannam, Steve Harris and Sean Bolton | |||||
LV2 | ISC + GPL? (atom-helpers.h not sure if used) | Copyright attribution | TODO, check all headers used | |||||
VST2 | GPLv2+ or commercial* | Must also be GPLv2+ or alternatively use Steingberg VST2 SDK (no longer available for new plugins) | Same or later license if GPL; Alternatively, custom agreement with Steingberg | |||||
VST3 | ISC | Copyright attribution | |||||
| Target | License(s) | License restrictions | Attribution | | |||||
|--------|------------|----------------------|-------------| | |||||
| JACK/Standalone | ISC (JACK bridge methods) + ?? (RtAudio) | Copyright attribution | RtAudio: 2001-2019 Gary P. Scavone | | |||||
| LADSPA | LGPLv2.1+ | ??? | 2000-2002 Richard W. E. Furse, Paul Barton-Davis, Stefan Westerfeld | | |||||
| DSSI | LGPLv2.1+ | ??? | ALSA: 1998-2001 Jaroslav Kysela, Abramo Bagnara, Takashi Iwai; DSSI: 2004, 2009 Chris Cannam, Steve Harris and Sean Bolton | | |||||
| LV2 | ISC + GPL? (atom-helpers.h not sure if used) | Copyright attribution | TODO, check all headers used | | |||||
| VST2 | GPLv2+ or commercial* | Must also be GPLv2+ or alternatively use Steingberg VST2 SDK (no longer available for new plugins) | Same or later license if GPL; Alternatively, custom agreement with Steingberg | | |||||
| VST3 | ISC | Copyright attribution | DPF | | |||||
Regardless of target format, DPF itself needs to be mentioned in attribution. See LICENSE file for copyright details. | Regardless of target format, DPF itself needs to be mentioned in attribution. See LICENSE file for copyright details. |