Rig manager: MIDI devices zones and channels

Sorry - we get that you’re not busting the product — it’s just that so often we get asked why some particular feature isn’t there and there’s no other answer beyond we can’t do it all at once :slight_smile:

Okay, sorry I read in one of the links about a scriptlet that should be used to accomplish this, but I now understand it should be possible identifying source and destination via osc handles. Thanks that looks very useful, I will try that.

This has nothing to do with the global rackspace. The splits you need are needed at the level of the local Rackspaces. Here you have one split per Keyb_x defined in each MIDI in block. You define things such that each of your keyboards has the proper split and all splits can be superimposed in case you have only one keyboard rather than n. In a local Rackspace it could be that, for one specific song, you only need keyb_1 to play a piano on a full keyboard range split. In another one you could have Keyb_1 used with a half keyboard split for organ and Keyb_2 with the other half keyboard split for bass. Until the split you define superimpose properly, once your play with a single keyboard which MIDI Device has been assign to each of the Keyb_1 to Keyb_n, then it will work. Nothing to do with the Global Rackspace.

1 Like

I agree that it’s more logical to do any splits in the local rackspace but it could be a default split ready to go which doesn’t need to be repeated in regular rackspaces. But I think I already mentioned that this was not such a big deal to me. Most important thing is un-merging devices by channel number.

And what if you have this “default” split defined in the Global Rackspace and you need another one in the Local Rackspace? It is much better to have one template rackspace with all common things and wiring you need and to duplicate it.

I proposed you the idea of a Gig Script which would do exactly what you requested if I understand well. But, you didn’t react to this proposal…

Which is trivial by just using multiple MIDI In blocks in a rackspace.

It sounds to me that the reason this is an issue for you is because you aren’t using any USB ports and so you only have one MIDI connection to your computer. If that’s the case, why are you not just setting one keyboard to channel 1 and the other to channel 2 (say) and that’s it? Why do you need more than 2 input channels?

Then I would only need to define it when I need a different split. But like I mentioned, I’m not sure if I would use it so it’s not a big deal.

Sorry I might have missed that. Thanks for the proposal. Would it offer any benefits compared to creating separate midi blocks with filtering?

Yes I am aware of this and this is exactly how I work and what I did for each normal rackspace. Which is why I wanted to organise this in a central manner using the global rackspace but I didn’t know how to get this data to the regular rackspace but apparently this is possible with MIDI OSC blocks.

This channel filtering would be done seamlessly in the Gig Script. In the GP rackspace you would have no change and coudln’t even notice if you play through the merged MIDI or not.

Thank you, that sounds very helpful!

If it is useful to you I could post the GPScript for you tomorrow, is it?

That would be great, thanks!

Here you have the GPScript to copy/paste in the Gig script editor, modify to match your own Device Alias Name you defined in Rig Manager and compile:

Var
  Keyb_Omni, Keyb_1, Keyb_2 : MidiInDeviceAlias // Replace by your own Device Alias Name you defined in Rig Manager
  
On MidiEvent(m : MidiMessage) from Keyb_Omni
  Var channel : Integer = m.GetChannel();

    Select
      channel == 1  Do InjectMidiEventViaRigManager(Keyb_1, m.WithChannel(1));            
      channel == 2  Do InjectMidiEventViaRigManager(Keyb_2, m.WithChannel(1));      
      true          Do InjectMidiEventViaRigManager(Keyb_Omni, m); // passes the message thru if not dispateched to one of the Keyb_n, remove the line if unnecessary 
    End 
End

Please, give us a feeback if it works for you…

1 Like

Looks great, thank you. I am at work now so I will try it out tonight and let you know. Yesterday I already played around a little with the gpscript code so I think I understand how it works.

I’m afraid I need a little more help with this. I attempted to define in the rig manager Keyb_Omni (alias for physical MIDI input), Keyb_1 and Keyb2 (both unconnected), but I can place into the rackspace only connected MIDI input devices so Key_1 and Key_2 are not listed. I also attempted not to define Keyb_1 and Keyb_2 in the rig manager, place an available MIDI input and rename this to Keyb_1 etc., but then the script gives compilation errors.

Are we to guess the compilation errors or could you perhaps share them with us? :innocent::innocent::innocent:

1 Like

I’m not at the computer right now but it said something like the midi alias was not linked to a device and that the script was disabled for this rackspace (which was not named).

To be more precise: the gig script window says compilation successful and the error messages appear in the script output window.

Yeah, no, that doesn’t really help — I don’t know what device names you have, what devices names you declared in the script, what device names are in the actual rig manager and so forth.

Sorry to be so blunt but trying to diagnose the issue this way is like someone asking their doctor to cure their pain but not telling the doctor where the pain is!

1 Like

Please post a screenshot of your Rig Manager window and another one of your Gig script editor. Such that we can help you efficiently.

1 Like

…and the Logger window.

1 Like