Mercurial > hg > pub > prymula > com
comparison DPF-Prymula-audioplugins/dpf/FEATURES.md @ 3:84e66ea83026
DPF-Prymula-audioplugins-0.231015-2
author | prymula <prymula76@outlook.com> |
---|---|
date | Mon, 16 Oct 2023 21:53:34 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
2:cf2cb71d31dd | 3:84e66ea83026 |
---|---|
1 # DPF - DISTRHO Plugin Framework | |
2 | |
3 This file describes the available features for each plugin format. | |
4 The limitations could be due to the plugin format itself or within DPF. | |
5 If the limitation is within DPF, a link is provided to a description below on the reason for it. | |
6 | |
7 | Feature | JACK/Standalone | LADSPA | DSSI | LV2 | VST2 | VST3 | CLAP | Feature | | |
8 |---------------------|---------------------------------------|--------------------|---------------------|-------------------------------|----------------------------|----------------------------|-------------------------------|---------------------| | |
9 | Audio port groups | [Yes*](#jack-audio-port-groups) | No | No | Yes | No | Yes | Yes | Audio port groups | | |
10 | Audio port as CV | Yes | No | No | Yes | No | [Yes*](#vst3-cv) | [No*](#work-in-progress) | Audio port as CV | | |
11 | Audio sidechan | Yes | No | No | Yes | [No*](#vst2-deprecated) | Yes | Yes | Audio sidechan | | |
12 | Bypass control | No | No | No | Yes | [No*](#vst2-deprecated) | Yes | Yes | Bypass control | | |
13 | MIDI input | Yes | No | Yes | Yes | Yes | Yes | Yes | MIDI input | | |
14 | MIDI output | Yes | No | No | Yes | Yes | Yes | Yes | MIDI output | | |
15 | Parameter changes | Yes | No | No | [No*](#lv2-parameter-changes) | Yes | Yes | Yes | Parameter changes | | |
16 | Parameter groups | No | No | No | Yes | Yes | [No*](#work-in-progress) | Yes | Parameter groups | | |
17 | Parameter outputs | No | No | No | Yes | No | Yes | Yes | Parameter outputs | | |
18 | Parameter triggers | Yes | No | No | Yes | [No*](#parameter-triggers) | [No*](#parameter-triggers) | [No*](#parameter-triggers) | Parameter triggers | | |
19 | Programs | [Yes*](#jack-parameters-and-programs) | [No*](#ladspa-rdf) | [Yes*](#dssi-state) | Yes | [No*](#vst2-programs) | Yes | No | Programs | | |
20 | States | Yes | No | [Yes*](#dssi-state) | Yes | Yes | Yes | Yes | States | | |
21 | Full/internal state | Yes | No | No | Yes | Yes | Yes | Yes | Full/internal state | | |
22 | Time position | Yes | No | No | Yes | Yes | Yes | Yes | Time position | | |
23 | UI | [Yes*](#jack-custom-ui-only) | No | External only | Yes | Embed only | Embed only | Yes | UI | | |
24 | UI bg/fg colors | No | No | No | Yes | No | No? | No | UI bg/fg colors | | |
25 | UI direct access | Yes | No | No | Yes | Yes | Yes | Yes | UI direct access | | |
26 | UI host-filebrowser | No | No | No | Yes | [No*](#vst2-deprecated) | [No*](#work-in-progress) | [No*](#work-in-progress) | UI host-filebrowser | | |
27 | UI host-resize | Yes | No | Yes | Yes | No | Yes | Yes | UI host-resize | | |
28 | UI remote control | No | No | Yes | Yes | No | Yes | No | UI remote control | | |
29 | UI send midi note | Yes | No | Yes | Yes | Yes | Yes | Yes | UI send midi note | | |
30 | |
31 For things that could be unclear: | |
32 | |
33 - "States" refers to DPF API support, supporting key-value string pairs for internal state saving | |
34 - "Full state" refers to plugins updating their state internally without outside intervention (like host or UI) | |
35 - "UI direct access" means `DISTRHO_PLUGIN_WANT_DIRECT_ACCESS` is possible, that is, running DSP and UI on the same process | |
36 - "UI remote control" means running the UI on a separate machine (for example over the network) | |
37 - An external UI on this table means that it cannot be embed into the host window, but the plugin can still provide one | |
38 | |
39 # Special notes | |
40 | |
41 ## Parameter triggers | |
42 | |
43 Trigger-style parameters (parameters which value is reset to its default every run) are only supported in JACK and LV2. | |
44 For all other plugin formats DPF will simulate the behaviour through a parameter change request. | |
45 | |
46 ## JACK audio port groups | |
47 | |
48 DPF will set JACK metadata information for grouping audio ports. | |
49 This is not supported by most JACK applications at the moment. | |
50 | |
51 ## JACK parameters and programs | |
52 | |
53 Under JACK/Stanlone mode, MIDI input events will trigger program and parameter changes. | |
54 MIDI program change events work as expected (that is, MIDI program change 0 will load 1st plugin program). | |
55 MIDI CCs are used for parameter changes (matching the `midiCC` value you set on each parameter). | |
56 | |
57 ## JACK custom UI only | |
58 | |
59 There is no generic plugin editor view. | |
60 If your plugin has no custom UI, the standalone executable will run but not show any window. | |
61 | |
62 ## LADSPA RDF | |
63 | |
64 Programs for LADSPA could be done via LRDF but this is not supported in DPF. | |
65 | |
66 ## DSSI State | |
67 | |
68 DSSI only supports state changes when called via UI, no "full state" possible. | |
69 This also makes it impossibe to use programs and state at the same time with DSSI, | |
70 because in DPF changing programs can lead to state changes but there is no way to fetch this information on DSSI plugins. | |
71 | |
72 To make it simpler to understand, think of DSSI programs and states as UI properties. | |
73 Because in DPF changing the state happens from UI to DSP side, regular DSSI can be supported. | |
74 But if we involve programs, they would need to pass through the UI in order to work. Which goes against DPF's design. | |
75 | |
76 ## LV2 parameter changes | |
77 | |
78 Although this is already implemented in DPF (through a custom extension), this is not implemented on most hosts. | |
79 So for now you can pretty much treat it as if not supported. | |
80 | |
81 ## VST2 deprecated | |
82 | |
83 Not supported in DPF at the moment. | |
84 It could eventually be, but likely not due to VST2 being phased out by Steinberg. | |
85 Contact DPF authors if you require such a feature. | |
86 | |
87 ## VST2 programs | |
88 | |
89 VST2 program support requires saving state of all programs in memory, which is very expensive and thus not done in DPF. | |
90 | |
91 ## VST3 CV | |
92 | |
93 Although VST3 officially supports CV (Control Voltage) tagged audio ports, | |
94 at the moment no host supports such feature and thus it is not possible to validate it. | |
95 | |
96 ## Work in progress | |
97 | |
98 Feature is possible, just not implemented yet in DPF. |