DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit 1b408abe9505cc38e6a7f809b0aa14fec5779601
parent 2a95a65ad6b8531f977e25a3c6e494f719c93f55
Author: falkTX <falktx@falktx.com>
Date:   Wed, 29 Sep 2021 15:25:45 +0100

Testing some changes to the feature table

Signed-off-by: falkTX <falktx@falktx.com>

Diffstat:
MFEATURES.md | 86+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
1 file changed, 51 insertions(+), 35 deletions(-)

diff --git a/FEATURES.md b/FEATURES.md @@ -3,23 +3,44 @@ This file describes the available features for each plugin format. The limitations could be due to the plugin format itself or within DPF. -| Feature | JACK/Standalone | LADSPA | DSSI | LV2 | VST2 | VST3 | -|-------------------|-----------------|--------|------|---------------|--------|--------| -| Audio port groups | [Yes*](FEATURES.md#jack-parameters-and-programs) | No | No | Yes | No | No* | -| Audio port as CV | Yes | No | No | Yes | No | [No*](FEATURES.md#vst3-is-work-in-progress) | -| MIDI input | Yes | No | Yes | Yes | Yes | Yes | -| MIDI output | Yes | No | No | Yes | Yes | Yes | -| Parameter changes | Yes | No | No | [No*](FEATURES.md#lv2-parameter-changes) | Yes | Yes | -| Parameter groups | No | No | No | Yes | Yes* | [No*](FEATURES.md#vst3-is-work-in-progress) | -| Parameter outs | No | No | No | Yes | Yes | [No*](FEATURES.md#vst3-is-work-in-progress) | -| Programs | Yes* | No* | Yes* | Yes | No* | Yes | -| States | Yes | No | Yes* | Yes | Yes | Yes | -| UI | [Yes*](FEATURES.md#jack-custom-ui-only) | No | Ext. | Embed or Ext. | Embed | Embed | -| UI host-resize | Yes | No | Yes | Yes | No | [No*](FEATURES.md#vst3-is-work-in-progress) | -| UI sendNote | Yes | No | Yes | Yes | Yes | Yes | +| Feature | JACK/Standalone | LADSPA | DSSI | LV2 | VST2 | VST3 | +|---------------------|--------------------------------------------------|------------------------------------|------|---------------|--------|--------| +| Audio port groups | [Yes*](FEATURES.md#jack-audio-port-groups) | No | No | Yes | No | No* | +| Audio port as CV | Yes | No | No | Yes | No | [No*](#vst3-is-work-in-progress) | +| Audio sidechan | Yes | No | No | Yes | [No*](#vst2-potential-support) | [No*](FEATURES.md#vst3-is-work-in-progress) | +| Bypass control +| MIDI input | Yes | No | Yes | Yes | Yes | Yes | +| MIDI output | Yes | No | No | Yes | Yes | Yes | +| Parameter changes | Yes | No | No | [No*](FEATURES.md#lv2-parameter-changes) | Yes | Yes | +| Parameter groups | No | No | No | Yes | Yes* | [No*](FEATURES.md#vst3-is-work-in-progress) | +| Parameter outputs | No | No | No | Yes | Yes | [No*](FEATURES.md#vst3-is-work-in-progress) | +| Parameter triggers | +| Programs | [Yes*](FEATURES.md#jack-parameters-and-programs) | [No*](FEATURES.md#ladspa-programs) | Yes* | Yes | No* | Yes | +| States | Yes | No | Yes* | Yes | Yes | Yes | +| Full/internal state +| Time position +| UI | [Yes*](FEATURES.md#jack-custom-ui-only) | No | Ext. | Embed or Ext. | Embed | Embed | +| UI bg/fg colors +| UI direct access +| UI host-filebrowser +| UI host-resize | Yes | No | Yes | Yes | No | [No*](FEATURES.md#vst3-is-work-in-progress) | +| UI remote control +| UI sendNote | Yes | No | Yes | Yes | Yes | Yes | + +For things that could be unclear: + +- "States" refers to DPF API support, supporting key-value string pairs for internal state saving +- "Full state" refers to plugins updating their state internally without outside intervention (like host or UI) +- "UI direct access" means `DISTRHO_PLUGIN_WANT_DIRECT_ACCESS` is possible, that is, running DSP and UI on the same process +- "UI remote control" means running the UI on a separate machine (for example over the network) # Special notes +## JACK audio port groups + +DPF will set JACK metadata information for grouping audio ports. +This is not supported by most JACK applications at the moment. + ## JACK parameters and programs Under JACK/Stanlone mode, MIDI input events will trigger program and parameter changes. @@ -31,34 +52,29 @@ MIDI CCs are used for parameter changes (matching the `midiCC` value you set on There is no generic plugin editor view. If your plugin has no custom UI, the standalone executable will run but not show any window. +## LADSPA programs + +Programs for LADSPA could be done via LRDF but this is not supported in DPF. + +## DSSI State + +DSSI only supports states when called via UI, no "full state" possible + ## LV2 parameter changes Possible through a custom extension, not implemented on most hosts. For now you can pretty much assume it is not supported. -## VST3 is work in progress - -Feature is possible, just not implemented yet in DPF. +## VST2 potential support -### TODO +Not supported in DPF at the moment. +It could eventually be, but likely not due to VST2 being phased out by Steinberg. +Contact DPF authors if you require such a feature. -A few notes for things to add to the table: +## VST2 programs - - Sidechain tagged audio ports - - Trigger parameters - - UI background/foreground color - - Host-side file browser - - Remote/Instance access - - Host-mapped bypass parameter - - Time position +VST2 program support requires saving state of all programs in memory, which is very expensive and thus not done in DPF. -# Extra notes +## VST3 is work in progress -| Format | Notes | -|--------|-------| -| JACK | Parameters and programs are mapped to MIDI events, ; Audio port groups are set as JACK metadata | -| LADSPA | LADSPA only supports basic parameters and audio;<br/> Programs could be done via LRDF but not supported in DPF | -| DSSI | DSSI only supports States via UI, no "full state" possible | -| LV2 | Everything supported :) | -| VST2 | VST2 program support requires saving state of all programs in memory, which is very expensive and thus not done in DPF;<br/> Parameter groups are supported, but not for audio ports (per VST2 spec limitations) | -| VST3 | Not sure if parameter outputs work (aka "read-only" on VST3);<br/> CV ports do not support custom ranges, not implemented yet;<br/> Port groups not implemented yet | +Feature is possible, just not implemented yet in DPF.