I thought I would only need to buffer the first 6 or so bytes of the sysex stream, then (if ID match) put them to the output queue as well as the remaining bytes (one by one) of the message.
Instead of storing the stream, you could just implement a counter which increments on each matching value (starting from 0xf0) till the ID is reached.
Since the values are known (for you), this is the most efficient solution since it only consumes 1 byte (considered that you also pre-filter the MIDI port)
But how to change the midi channel of the recorded events? I’m not sure how this works.
Because there isn’t a control surface like on the “big brother” MBSEQ V4, the channel can only be changed in the MBSEQ_C.V4 file (located in the SESSIONS/<session> directory)
The parameter is called MIDI_IN_RecChannel
0 disables the function, 1..16 selects the channel
My ideal (I think) would be each keyboard on different channel (merged) controlling each synth, then to choose which keyb/synth combo gets recorded with the seq midi channel selector? Should this work?
No, but I could provide this as an expert option, also only selectable in a configuration file.
The intention of MBSEQ V4L was to have a simple and fool-proven sequencer - than more options I’m adding, than higher the possibility that somebody isn’t able to troubleshoot a non-working recording function. Therefore I’m trying to avoid this.
E.g. if he assigns a different MIDI OUT channel for one of the two tracks, he would have to change the MIDI OUT channel of his keyboard (used for recording) as well.
If he doesn’t do this, he doesn’t get any notification about this problem.
In MBSEQ V4 somebody could enter the MIDI monitor page to ensure, that the MIDIbox gets at least the MIDI data (and he can also find out the channel this way) - but no way for MBSEQ V4L
Best Regards, Thorsten.