Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux VST3: extra MIDI parameters added to generic interface #194

Open
GModal opened this issue Aug 18, 2020 · 5 comments
Open

Linux VST3: extra MIDI parameters added to generic interface #194

GModal opened this issue Aug 18, 2020 · 5 comments

Comments

@GModal
Copy link

GModal commented Aug 18, 2020

  1. Describe your environment
    Debian Buster, stable
    Carla 2.2.0-RC1
    Camomile 1.0.7 Beta14 (Linux 64 binary zip)

  2. Describe the problem or the feature request

Each vst3 plugin registers a list of extra MIDI CC parameters (192 total), as plugin parameters. Carla already offers the built-in ability to map parameters to MIDI CC data.

I don't know if this is behavior is unique to Carla, or to the plugin. The number of vst3 hosts is currently limited for Linux, so it's difficult to test. Pic below --

vst3_params

@pierreguillot
Copy link
Owner

pierreguillot commented Aug 20, 2020

This is explained in this thread.

So there is an option JUCE_VST3_EMULATE_MIDI_CC_WITH_PARAMETERS (that emulates MIDI CC with parameters). An ideal solution would have been to enable/disable this option dynamically but it is a compile-time definition so I cannot change it based on the text file for example. As with most of the DAW, we can't receive any MIDI CC in a VST3 plugin, if we don't use this option, so I will keep it like this even if it's a bit annoying. And I guess Carla should not do that by default because it seems that even Cubase from Steinberg doesn't manage that (and Steinberg develop the VST3 format).

If there is any VST3 and/or Carla guru in this area, I'll be glad to know their opinion about it. But at first sight, the issue is classified ;)

@GModal
Copy link
Author

GModal commented Aug 20, 2020

OK, I read the thread, get it (Cubase filters out the CC data, and this is one way to compensate). It's too bad the JUCE option is set during compilation. That would be the most convenient way to shape the behavior.

Carla must have a limit on parameters, because it's clear the JUCE code exposes all 128 CC values for each MIDI channel (0/1, 0/2. 0/3...0/128, 1/1, 1/2, etc), which is 2048 total. Looks as though Carla limits parameter totals to 256 (not unreasonable) -- correction: # of parameters is user-configurable. Carla's VST3 support is relatively new.

Does JUCE even provide a hook to differentiate these parameters from user-created ones?

Too bad there aren't more VST3 capable Linux hosts. I tried Element, but it's too unstable here to even load plugins...

@GModal
Copy link
Author

GModal commented Aug 20, 2020

The developer of Carla, Filipe Coelho (falkTX), commented on this issue here:
falkTX/Carla#1240

Is this the fundamental behavior with DAWs on other platforms? (or is it just Cubase?) On Linux, Ardour and other audio apps have always integrated LADSPA and LV2 plugins, and that seems to work fine with the DAW or host handling the CC data. Even JackRack did that 15+ yrs ago.

Alternately, could just the Linux version have it turned off?

Thanks!

@GModal GModal changed the title Linux VST3: extra MIDI parameters (192 total) added to generic interface Linux VST3: extra MIDI parameters added to generic interface Aug 20, 2020
@pierreguillot
Copy link
Owner

It happens on Reaper also, I will on other DAWs but I guess this is the common behavior.

It's already hard to maintain the plugin for different formats and OS, if I can avoid to do such things I prefer.

@GModal
Copy link
Author

GModal commented Aug 21, 2020

That's understandable. Maybe JUCE will offer more flexible options for VST3 in future versions.

Until then, the LV2 plugins generated by Camomile work very well. Thanks again, Pierre.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants