View Single Post
Old 07-10-2012, 04:52 AM   #27
Human being with feelings
Banned's Avatar
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868

It's not just about loading plugins, it's about REAPER knowing about every parameter and (more importantly) understanding how exactly they relate. We need a framework to classify plugin types and parameters in a generic manner before this can work as intended.

Those who have studied the default OSC control surface configuration of the latest string of pre-releases already know that even for a relatively simple plugin such as ReaEQ, this involves a pretty elaborate scheme. I've pasted the relevant part here, just so you get an idea of the level of complexity required for handling a single plugin (type):

FX_EQ_BYPASS b/fxeq/bypass b/track/@/fxeq/bypass
FX_EQ_OPEN_UI b/fxeq/openui b/track/@/fxeq/openui

FX_EQ_PRESET s/fxeq/preset s/track/@/fxeq/preset
FX_EQ_PREV_PRESET s/fxeq/preset- s/track/@/fxeq/preset-
FX_EQ_NEXT_PRESET s/fxeq/preset+ s/track/@/fxeq/preset+

FX_EQ_MASTER_GAIN n/fxeq/gain n/track/@/fxeq/gain 
FX_EQ_MASTER_GAIN f/fxeq/gain/db f/track/@/fxeq/gain/db s/fxeq/gain/str
FX_EQ_WETDRY n/fxeq/wetdry n/track/@/fxeq/wetdry
FX_EQ_WETDRY s/fxeq/wetdry/str s/track/@/fxeq/wetdry/str

FX_EQ_HIPASS_NAME s/fxeq/hipass/str
FX_EQ_HIPASS_FREQ n/fxeq/hipass/freq n/track/@/fxeq/hipass/freq
FX_EQ_HIPASS_FREQ f/fxeq/hipass/freq/hz f/track/@/fxeq/hipass/freq/hz
FX_EQ_HIPASS_FREQ s/fxeq/hipass/freq/str s/track/@/fxeq/hipass/freq/str
FX_EQ_HIPASS_Q n/fxeq/hipass/q n/track/@/fxeq/hipass/q
FX_EQ_HIPASS_Q f/fxeq/hipass/q/oct f/track/@/fxeq/hipass/q/oct
FX_EQ_HIPASS_Q s/fxeq/hipass/q/str s/track/@/fxeq/hipass/q/str

FX_EQ_LOSHELF_NAME s/fxeq/lopass/str
FX_EQ_LOSHELF_FREQ n/fxeq/loshelf/freq n/track/@/fxeq/loshelf/freq
FX_EQ_LOSHELF_FREQ f/fxeq/loshelf/freq/hz f/track/@/fxeq/loshelf/freq/hz
FX_EQ_LOSHELF_FREQ s/fxeq/loshelf/freq/str s/track/@/fxeq/loshelf/freq/str
FX_EQ_LOSHELF_GAIN n/fxeq/loshelf/gain n/track/@/fxeq/loshelf/gain
FX_EQ_LOSHELF_GAIN f/fxeq/loshelf/gain/db f/track/@/fxeq/loshelf/gain/db
FX_EQ_LOSHELF_GAIN s/fxeq/loshelf/gain/str s/track/@/fxeq/loshelf/gain/str
FX_EQ_LOSHELF_Q n/fxeq/loshelf/q n/track/@/fxeq/loshelf/q
FX_EQ_LOSHELF_Q f/fxeq/loshelf/q/oct f/track/@/fxeq/loshelf/q/oct
FX_EQ_LOSHELF_Q s/fxeq/loshelf/q/str s/track/@/fxeq/loshelf/q/str

FX_EQ_BAND_NAME s/fxeq/band/str
FX_EQ_BAND_FREQ n/fxeq/band/@/freq n/track/@/fxeq/band/@/freq
FX_EQ_BAND_FREQ f/fxeq/band/@/freq/hz f/track/@/fxeq/band/@/freq/hz
FX_EQ_BAND_FREQ s/fxeq/band/@/freq/str s/track/@/fxeq/band/@/freq/str
FX_EQ_BAND_GAIN n/fxeq/band/@/gain n/track/@/fxeq/band/@/gain
FX_EQ_BAND_GAIN f/fxeq/band/@/gain/db f/track/@/fxeq/band/@/gain/db
FX_EQ_BAND_GAIN s/fxeq/band/@/gain/str s/track/@/fxeq/band/@/gain/str
FX_EQ_BAND_Q n/fxeq/band/@/q n/track/@/fxeq/band/@/q
FX_EQ_BAND_Q f/fxeq/band/@/q/oct f/track/@/fxeq/band/@/q/oct
FX_EQ_BAND_Q s/fxeq/band/@/q/str s/track/@/fxeq/band/@/q/str

FX_EQ_NOTCH_NAME s/fxeq/notch/str
FX_EQ_NOTCH_FREQ n/fxeq/notch/freq n/track/@/fxeq/notch/freq
FX_EQ_NOTCH_FREQ f/fxeq/notch/freq/hz f/track/@/fxeq/notch/freq/hz
FX_EQ_NOTCH_FREQ s/fxeq/notch/freq/str s/track/@/fxeq/notch/freq/str
FX_EQ_NOTCH_GAIN n/fxeq/notch/gain n/track/@/fxeq/notch/gain
FX_EQ_NOTCH_GAIN f/fxeq/notch/gain/db f/track/@/fxeq/notch/gain/db
FX_EQ_NOTCH_GAIN s/fxeq/notch/gain/str s/track/@/fxeq/notch/gain/str
FX_EQ_NOTCH_Q n/fxeq/notch/q n/track/@/fxeq/notch/q
FX_EQ_NOTCH_Q f/fxeq/notch/q/oct f/track/@/fxeq/notch/q/oct
FX_EQ_NOTCH_Q s/fxeq/notch/q/str s/track/@/fxeq/notch/q/str

FX_EQ_HISHELF_NAME s/fxeq/hishelf/str
FX_EQ_HISHELF_FREQ n/fxeq/hishelf/freq n/track/@/fxeq/hishelf/freq
FX_EQ_HISHELF_FREQ f/fxeq/hishelf/freq/hz f/track/@/fxeq/hishelf/freq/hz
FX_EQ_HISHELF_FREQ s/fxeq/hishelf/freq/str s/track/@/fxeq/hishelf/freq/str
FX_EQ_HISHELF_GAIN n/fxeq/hishelf/gain n/track/@/fxeq/hishelf/gain
FX_EQ_HISHELF_GAIN f/fxeq/hishelf/gain/sb f/track/@/fxeq/hishelf/gain/db
FX_EQ_HISHELF_GAIN s/fxeq/hishelf/gain/str s/track/@/fxeq/hishelf/gain/str
FX_EQ_HISHELF_Q n/fxeq/hishelf/q n/track/@/fxeq/hishelf/q
FX_EQ_HISHELF_Q f/fxeq/hishelf/q/oct f/track/@/fxeq/hishelf/q/oct
FX_EQ_HISHELF_Q s/fxeq/hishelf/q/str s/track/@/fxeq/hishelf/q/str

FX_EQ_LOPASS_NAME s/fxeq/loshelf/str
FX_EQ_LOPASS_FREQ n/fxeq/lopass/freq n/track/@/fxeq/lopass/freq
FX_EQ_LOPASS_FREQ f/fxeq/lopass/freq/hz f/track/@/fxeq/lopass/freq/hz
FX_EQ_LOPASS_FREQ s/fxeq/lopass/freq/str s/track/@/fxeq/lopass/freq/str
FX_EQ_LOPASS_Q n/fxeq/lopass/q n/track/@/fxeq/lopass/q
FX_EQ_LOPASS_Q f/fxeq/lopass/q/oct f/track/@/fxeq/lopass/q/oct
FX_EQ_LOPASS_Q s/fxeq/lopass/q/str s/track/@/fxeq/lopass/q/str
To be honest, this set of message patterns was already a bit too overwhelming for me to play around and get comfortable with (also, I tend to avoid using EQ as much as I can, and don't like ReaEQ as far as EQ goes anyway).

But do note that this scheme could be applied to other EQ's as well. Imho we should rather be testing this stuff first (as far as I have seen, nobody has really tested it yet while it's been there for months) and discussing if the existing functionality suffices, before we move on and discuss how it can best be generalized to other EQ effect plugins, and in a similar vein, what sets of parameters would best fit other generic plugin types (e.g. dynamics). To me it seems to make a lot of sense to start with EQ plugins only at first, since they may be the most generic type of effect, and one would expect to see them on a any mixer, whether real or virtual.

Next up, it seems to make most sense to add ReaComp and ReaGate. If we get a similar scheme for them, the basics of a 'channel strip' type of setup are pretty much covered. Then, if we could use *different* image stacks for each Track FX knob on the TCP/MCP, and have their number bumped up from the meagre 16 to 64 or so...
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote