Browse Source

Testing some changes to the feature table

Signed-off-by: falkTX <falktx@falktx.com>
pull/338/head
falkTX 3 years ago
parent
commit
1b408abe95
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
1 changed files with 51 additions and 35 deletions
  1. +51
    -35
      FEATURES.md

+ 51
- 35
FEATURES.md View File

@@ -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.

Loading…
Cancel
Save