Open mxmilkiib opened 4 years ago
Note that this would also apply for LV2 plugins if JUCE were to officially target that format https://github.com/juce-framework/JUCE/issues/123
Now that JUCE7 will have LV2 it would be nice to put some attention to this again. It might be good to simultaneously look at the VST3 CV port implementation, so as to work on concurrent functionality and developer APIs.
LV2 CV ports are more extensive than VST3 though, as they are not just an audio port with a tag but also support full control port attributes, so you can also set ranges and more meaningful values: https://lv2plug.in/ns/lv2core#CVPort
Example LV2&VST3 plugin that has a set of CV Port I/O is Cardinal
The main advantage of CV ports is that the Host can keep audio and CV streams separated as to protect the users hardware (without a DC-coupled audio interface one would very likely blow up ones devices). And because they are audio-rate control ports they are very useful for dynamic realtime automations.
Ultimately an implementation for JACK would also be nice, but I think JACK implementation in JUCE is quite lacking overall and not even cross-platform.
"JACK implementation is quite lacking overall and not even cross-platform"
I'm not sure I understand what that means? Maybe you are confused and thinking instead of the DPF stance of "plugins first with the JACK target as primarily for testing" meaning something other than it does? JACK is cross-platform, and JACK CV is cross-platform, do you not agree?
I mean JUCE jack standalone, it only works on Linux, from what I read. The JACK implementation in JUCE needs a lot more work than just adding CV ports, is the thing.
Might looking at implementing CV ports be something that could happen in the not-to-distant future? AFAIU, VST3 supports CV ports also.
@mxmilkiib I already mentioned that here: https://github.com/juce-framework/JUCE/issues/664#issuecomment-1152972708
However there are still nearly no hosts that support this, so I can't imagine this to have very high priority.
Btw Kushview Element now has LV2 CV support (it's JUCE based, but their LV2 hosting is not).
JUCE can make hosts, so if JUCE supported CV then that would crack that chicken-and-egg.
JACK metadata allows for ports to be marked as "CV", facilitating both a software modular synth environment and a connection with real world modular synths.
Might it be possible to see support for marking certain audio inputs and outputs as CV for JACK apps in JUCE?