Quick Midi Channel Selector / transformer on the fly for MIDI Master Keyboard

As my MIDI master keyboard doesn’t have a quick Midi channel selector (you often have to dive into menus or typing the channel number by hand, which is super annoying in live situations), I want to find a way with the midihub, to change channel quickly on the fly, by hand, with MIDI CC’s

I want to switch easily between channel 1, 6, and 7 from my keyboard.

For example my keyboard will always stay on channel 1, but when I turn a knob (and change it’s midi CC value) it will switch all events of the keyboard (or at least notes) to another MIDI channel.
While the source keyboard will send only channel 1 infos, all the events will be change to output on the differents midi channel chosen with the CC knob.

Because knobs are small and to avoid being imprecise, I can limit the available channels to 3 only. Let’s say, channel 1 when the knob position is on the extreme left, channel 6 when the knob is at the center, and channel 7 when the know is set at extreme right.
It means that MIDI hub will permanently listen which is the value of the knob’s CC and follow routing conditions I don’t know how ?

Maybe there’s an easier way to to this, with CC buttons instead of CC knobs :

  • A CC knob for channel 1, another for channel 6, another for channel 7
    each of them will behave as toggle son / off (not gates). Plus, ideally, when a new channel is selected, the previous stops being active.

I’m scratching my head, talked a bit with Geidrius which recommends me to post here.
He said that MIDI loopback may be one of the solutions.

But my brain is weak.

Sorry for my English. not native speaker here.


Hi Gerard,
Yeah, loopback is a surefire solution, but I wonder whether we can avoid that.

Can you configure a knob so that it doesn’t output the full 0-127 range?
If so, you could (for example) set the knob to output just 104-127 over its sweep and map that to an Out-Pipe (104-127 → Virtual_F/G/H) like so:
Screen Shot 2023-03-10 at 18.04.42

Then each of your Virtual_F/G/H pipelines does the Channel Remap to set your channels.

I like this a solution cos you don’t have to think about gaps in your knob-sweep.

EDIT: decided to document 3 approaches below

See patches here

(I could swear it takes longer to create an upload entry than it does to write a patch…)

This is awesome ! huge thanks !
I haven’t tested it yet but I will next week

PS: it’s also Gerard by the way, other account