How to control plugin parameters from MIDI controllers
Taken from @Stefan_Holm's post on Facebook:
Ok, so I get that pro tools won’t learn midi like other DAW’s only through EUCON.
So before I go nuts trying to figure this out I just need somebody to say that it can be done.
Here goes, I’d like to get my midi controller (rebuilt BRC2000) to control 7 bands in pro q 3 through soundFlow.
🤷🏼♂️ possible?
- Christian Scheuer @chrscheuer2019-10-19 13:05:32.047Z
Hi Stefan. I moved your post here so that we can discuss code samples etc.
It might be possible technically by utilizing SoundFlow's HUI emulation layer.
For example you can do the following if you've set SoundFlow's HUI emulation up in Setup->Peripherals->MIDI:sf.midi.huiFader({ faderNum: 1, value: 4000, });
This will move the 1st HUI fader (controlling volume per default for the first track in the bank).
Now if you want to control plugin parameters you'd have to manually send the HUI messages that correspond to flipping the faders for that particular plugin. You can find HUI protocol specs on the web, for example here:
HUI Protocol SpecThen you'd send individual HUI messages by using the
sf.midi.huiSend
action.Christian Scheuer @chrscheuer2019-10-19 13:06:31.138Z
A different way to approach this would be to simulate mouse dragging on the individual plugin parameters.
That could be done by utilizing a combination ofsf.mouse.down
,sf.mouse.drag
andsf.mouse.up
actions, respectively.- In reply tochrscheuer⬆:SStefan Holm @Stefan_Holm
SoundFlow's HUI emulation up in Setup->Peripherals->MIDI:
like this?
Christian Scheuer @chrscheuer2019-10-21 09:40:00.846Z
Check here how to set it up:
https://soundflow.org/commands/pro-tools/automation-modes/proTools-automation-modes-latchAllI think it needs to be the 1st device. At least while you're developing the connection I would have it be the 1st device, since many things will be easier.
Eventually you might need to re-route your M-Audio faders through SoundFlow, but that's for later.- SStefan Holm @Stefan_Holm
But it doesn't show up?
- SStefan Holm @Stefan_Holm
looks right?
Christian Scheuer @chrscheuer2019-10-21 09:58:50.222Z
Hm that looks weird. Pro Tools is clearly seeing the HUI Output but is not letting you select it as an input. I would try restarting Pro Tools, or reverse the order so that you first activate the input, and then go to the Peripherals page afterwards.
- SIn reply tochrscheuer⬆:Stefan Holm @Stefan_Holm
And this is the right ballpark right?
Christian Scheuer @chrscheuer2019-10-21 10:01:51.584Z
Yes exactly. We've already implemented the Fader function for you, with the
sf.midi.huiFader
action, so what you'll need to build is more the flipping of faders and selecting the proper input.
To be honest, just so you know, and part of why I can't help you more right now. This is very much prototyping, and you might end up finding out it's not possible to make this solid/stable :) Since you're essentially building something very complex. The HUI protocol is very limited. But happy to give you pointers on where to get started to testing it.- SStefan Holm @Stefan_Holm
Great thanks. But essentially I should be able to control my faders with midi knobs right now?
Christian Scheuer @chrscheuer2019-10-21 10:13:22.660Z
Yes and no. You'll still need to do some manual work to set it up.
You would have to create a command that can read the MIDI input from your faders. The incoming MIDI would have to be regular MIDI cc values, not HUI. And then you'd map that by reading theevent.trigger.midiBytes
array in your script and then sendsf.midi.huiFader
values, respectively.
But please note that since you're not receiving touch on and touch off events through regular MIDI, it's not a very operable situation.
Essentially what you're trying to do right now is not supported, so I can only give you limited support at this point.
- CIn reply tochrscheuer⬆:COLLIN WARREN @COLLIN_WARREN7
Hey Stefan,
Just as a thought, this can also be done very easily via the Controllermate software. I have several different EQ plugins mapped to the rotary knobs on an Arturia minilab. Search youtube for Brian Daly's videos on how he usings the BRC2000 with this software. It's quite a bit easier than trying to do it via HUI or EUCON.
The only downside is that it wouldn't automap to the plugin parameters the way that the EUCON does. So, I essentially have had to build a patch for each individual plugin. But if you have a handful of go-to plugs, it works great.
Collin
Christian Scheuer @chrscheuer2019-10-30 01:45:56.991Z
Hi Collin.
How do you control the plugin parameters? Via mouse clicks?- CCOLLIN WARREN @COLLIN_WARREN7
Hey Christian,
It’s actually implemented using mouse scroll wheel actions combined with screen position relative to the window’s dimensions.
Collin
Christian Scheuer @chrscheuer2019-10-30 23:09:03.701Z
Ah thank you.
You can build that relatively easily in SF as well :)
Maybe @Stefan_Holm we should get you set up with that approach instead?