Keyboards connected to GP and MOTU device

Hello Community, question, I have two keyboards connected to GP and a MOTU device with 5 midi outputs, is there a script that allows me to decide and change the MIDI signal output port.

For example, Keyboard 1 outputs through midiOut_1 and MidiOut_3, in another emptying the same keyboard outputs MidiOut_2, MidiOut_3 and MidiOut_4 and so on.

Why would you need a script? Just create connections from your keyboards to each output and bypass the ones you don’t need. Or just create different rackspaces for each scenario



I think it would help us, with we understand what you what like to do :slight_smile: Perhaps describe this :slight_smile:

OK, let’s assume a single Rack. We have 2 keyboards with 5 midi outputs in addition to VST. For example Organ, Synth 1, Synth 2, Synth 3 and Synth 4. In one variation I need Keyboard 1 to Synth 3, in another variation, Keyboard 1 to Organ, In another Variation, Keyboard 2 to Organ and Keyboard 1 to Synth 3. understands ?
I imagine an intermediate script that is managed through a widget, but it cannot be programmed

Why ?

1 Like

The same question from my side. Why so complicated?

If I understand you right, it would be easy to do with different racks or variations and only one midi port.


Well, it can be done with different racks, but what I’m looking for is a single rack, with different variations, and with each variation change the output is directed to the different instruments. The question is if it is possible and how. If you can’t, OK, I just thought it could be a good tool.

You can use midi filtering

It is possible …

… but why? Why do you need a single rack?

Why not? It’s an order theme, one Rack per song, and each part of the theme in a variation where you can change the destination of the midi message and send notes, patch change, transposition, etc…

Mainly because you’re actually wanting to change the topology – i.e. actual connections — there’s no reason why you have to have one rackspace per song — you can have multiple rackspaces per song.

That said, if you really want to restrict yourself to one rackspace per song, then you can add buttons and map them to the bypass parameter of your MIDI In blocks and then set the buttons to the appropriate values in each variation

If that’s how you want to do it, sure, it can be done. Just keep in mind that when you do the midi re-routing after changing variations you’re going to have to contend with “what if I’m holding notes when I change variations?” The note on events are sent to one destination when the keys are pressed, and the note off events go somewhere else after the variation change.

There are multiple ways to handle issues like this, but the more you start layering in PC messages and such the more complicated trying to handle that sort of thing gets.

Based on your description, if it were me I’d map an actual song you are going to perform to a song in a GP setlist. Within that Song there are Songparts, and those Songparts can map to Rackspaces and Variations as you see fit.

GP is designed around that concept. It’s very flexible, though, so if you want to force songs into Rackspaces and Songparts into Variations within a Rackspace it can be done. The only downside is that it will make things more difficult and it’s not clear to me that you gain anything from it.


Hello Vendes, I have been thinking about the problem of releasing the notes before the redirection. I was thinking about an off message at the time of the change. The point is to combine VST with different midi modules through a MOTU brand midi equipment, and change the sound (Synth) as I change the variations. I’m going to try my rudimentary way of programming and then I’ll upload the script so you can help me improve it. Thank you all

When you bypass a MIDI In block, it automatically sends “Note Off” messages out first.

As far as I can tell, you do not need scripting for what you’re trying to do.

That’s good behavior if that’s what you want. That’s generally not what I want, so I tend to use midi filter blocks when I’m doing the sort of thing he’s talking about.

In my case I have the midi filter blocks set to filter note-on events, so when the filters are bypassed the note-on events go through. When they’re un-bypassed the note-off events still make it through but the note-on events don’t.

The devil is in the details, so I suppose he’ll try some things and see how it goes. The nice thing about GP is there are a variety of ways to approach it, plus scripting and writing your own extensions if you really want some very specific behavior.

I think it is the right behavior for beginning users so that they don’t run into stuck note problems when hey are just getting started. Once a user gains some experience, they can use more advanced techniques as needed.

Are you aware of what a “variation” actually is, how it works, what it can do and what it can’t?
From what i’ve read so far, i guess you expect variations to do things, they are not designed for…
Like my forum-buddies already mentioned, it might be possible to work around the variation concept (with tricks and scripting and…), but it will make things much more complicated than they had to be.

Hello schamass, I am clear about how a variation works (I’m not that new). In fact I use them in several topics. My point was if you can make the same keyboard send midi messages (notes, CC, etc…) to different MidiOutBlock outputs with a kind of switch with which you can select which one to send a message to, it is true that there are issues like the blocking of notes (which I had not considered) and other possible problems. I imagined something like a MidiInBlock to a monswitch with 5 midiOutBlock and through a widget choose where to exit, I will continue investigating since I am not a programmer

No - use multiple MIDI In Blocks, each connected to a different MIDI Out block and just bypass the ones you don’t want to use at any particular time

1 Like

If I understand what want to do, you can use MIDI constrainers for this:

  • one after the MIDI in block of your controller (change the output channel with a widget knob)
  • one before each MIDI out block with a different input channel for each different MIDI out block and 1 as output channel