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:
M | FEATURES.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.