Thanks Paul - no sure how to diagram it here but let me provide context:
1 - Hardwired 88 key controller into computer.
2 - Keytar using widimaster transmitting to WidiBud (which is plugged in computer)
3 - Minilab 3 using widijack transmitting to the same WidiBud
Correct - so Im going in now and changing all of the wiring from Widi Bud to a single 61 key channel - and Ill wire widi bud remote keyboard as a separate thing.
then I can always figure out the keytar system separately and then make a quick change when ready
Have I missed something, I have not used WIDI devices? The channels mechanism in MIDI was designed to allow multiple devices to communicate on the same cable. Can you not separate the devices by assigning channel number? This way you can easily identify the source in GP?
I cannot speak for @jweisgal, but yes of course you can distinguish the controller using a different MIDI channel. But it is quite boring when changing to different controllers like I do in our rehearsal studio. Each time you have to figure out to change the MIDI channel of a controller that you don’t know well. And when you want to use Rig Manager things are not straightforward, as in Rig Manager controllers are distinguished by a different MIDI port and not a different MIDI channel.
As @David-san points out swapping controllers in Rig manager is tricky as they are not channel based, but there is a workaround that may help you. By adding a second alias using the Local GP Port. I have used loopMIDI to demonstrate the WIDI input stream.
Then adding these few lines to gig script, the channel 2 messages are routed via rig manager on a new Alias (assuming your keytar is on channel 2).
const KEYTAR : Integer = 2
var Widi_Bud : MidiInDeviceAlias
var Keytar : MidiInDeviceAlias
On MidiEvent(m : MidiMessage) from Widi_Bud
If GetChannel(m) == KEYTAR Then
InjectMidiEventViaRigManager(Keytar,m)
Else
InjectMidiEventViaRigManager(Widi_Bud,m)
End
End
You should now have the best of both worlds.
Edit: I have amended the names in the Rig Manager and Gig Script to more closely match your names. NOTE, the underscore used in the name Widi_Bud to allow the scripting to identify the MIDI device correctly.
@Spav, this is exactly what I was referring to when I said “not straightforward” and why I’d like CME to create one virtual MIDI port per connected controller. In the meantime I’ve put a WIDI UHost per WIDI Jack, which makes it possible to have (at greater expense) one MIDI port per controller. Fortunately, as you illustrate perfectly, with GP and a good Gig Script you can correct many of the problems encountered with controllers. But every time you have to scratch your head. My keytar, for example, depending on the patch selected, sends on several MIDI channels. A little effort from CME would really help…
By the way, any reason you didn’t use the On MidiEvent callback in you Gig GPScript ?