Multiple Midi Foot Controller

I have two midi footcontrollers, a Nektar Pacer and A Blackstar Live Logic contoller.
I have written some scripts in conjunction with the Pacer. I would like to be able to
quickly and easily substitute the Blackstar in place of the Pacer. I tried assigning the
Blackstar to the Pacer in Rig Manager, but this does not suffice. I was wondering why,
and also what the best way to do this would be without having to write dual scripts and
creating dual widgets for the Blackstar.

I also tried:

but this only works when I have the Pacer connected in addition to the Blackstar…

What messages are sent from this controllers and what should they control?

cc 7 (volume) and 11 (wah). The script also changes PC to CC to switch patches.

I think you should add a Virtual MIDI Port to the Rig Manager and define a MIDIFOOTCONTROLER alias for it. Then inject both the PACER and the BLACKSTAR in it. And in your Rackspaces use MIDIFOOTCONTROLER rather than PACER or BLACKSTAR. It could work…


I was not sure how to implement a Virtual Midi Port, but your idea gave me a similar idea. I use
the same audio interface/midi interface between my studio and live rigs. Since that is a constant
I used that MidiInDeviceAlias in the GPscript for the InjectMidiEventViaRigManager callback. Now
it works no matter what Foot controller I have connected. The code looks like this now:

Sorry but why can’t you use the rig manager and use a different rig when you switch foot controllers?

I am not sure. Something about the way I implemented things with my scripting caused it to
fail when I tried this. For some reason when I swapped foot controllers in rig manager it
did not work with my scripted InjectMidiEventViaRigManager callback. When I had the BLACKSTAR
Midi foot controller connected, the InjectMidiEventViaRigManager callback is was referencing the other Footcontroller (PACER) that was disconnected. I don’t think you can call InjectMidiEventViaRigManager and reference a Rigmanager MidiInDeviceAlias that is $NULL (becuase it isn’t currently plugged into a usb port)…
It did work when both midi foot controllers were plugged in at the same time.

Hope this makes sense…

Nope — I don’t know why you using scripting in the first place for this kind of thing.

Scripting is the only way I know how to change PC to CC to switch guitar patches by widget.
I am already using variations to switch keyboard patches. I am using the same Rackspace
for my whole studio setup.

ok so your suggesting to map PC to value 0-127 of CC# 84…but a widget won’t support the value of a CC, just the CC# itself.

I have each button widget mapped to a different cc#, allowing for 32 patches via GPPreset…

No, I wasn’t suggesting anything. I was just showing an example of how to convert a PC to CC since that’s what you said you didn’t know how to do.

I don’t understand - when you turn a knob widget or click a button widget, you send out values.

What is the actual transformation you’re trying to accomplish?

1 Like

I am making use of: Recalling GP user presets - #32 by schamass
from @schamass.

The tranformation is:

PC 0-31 are converted to CC 33-65 to trigger the 32 Pad Buttons, each of which triggers a

Oh I see - rather than trying to change the argument of a PC message into the argument of a CC number, you’re trying to actually change the CC number itself.

If you’re trying to use GPPresets, then why not use a simple script that just converts a PC number into a GP Preset directly? For example, name your GP presets 0, 1, 2, 3 … then just write something like

LoadGPPreset(pluginBlock,  "" + PCNumber)

Partly bc I prefer to recall presets by meaningful patch names, and also I have another script that
displays the active keyboard patch and active guitar patch name on the screen as output: