|
Post by John Tennison on Sept 29, 2017 13:51:26 GMT
How would I use Stream Byter to split the input from my keyboard into zones, each of which will transmit on a different MIDI channel?
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Sept 29, 2017 15:09:40 GMT
You can do this with Stream Byter I rules. Refer to the midi note table for the hex codes for the notes. Lets' say you want to split at middle C (which is 3C in hex) over channels 1 and 2 (no matter what the incoming channel is): NX 00-3B = X0 # force C-2 to B2 to chan 1 NX 3C-7F = X1 # force C3 to G8 to chan 2We are specifying a range of notes on the left side of the = and where that range matches, a MIDI channel to rewrite to on the right side. You can do overlapping spits too, again with Stream Byter I rules. I wrote a Guide to Stream Byter for MidiBridge which applies to MidiFire also since the Stream Byter in MidiFire is (almost 100%) backwards compatible. Regards, Nic.
|
|
|
Post by John Tennison on Sept 29, 2017 20:27:16 GMT
Thanks, Nic.
This works great.
One other thing I forgot about is that, AFTER the keyboard is channelized, I also need to transpose the zones, sometime by large amounts. For example, After I chanelize the upper-most 2 octaves on a keyboard to channel 2, I often need to transpose down by several octaves, often more than 2 (as allowed by the current channnel strip).
Is there a way I can specify the transpose amount of each zone in the same Stream Byter module that does the channelizing?
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Sept 29, 2017 20:47:55 GMT
I think you could apply separate transpositions on each channel. Following on from the example above, add these rules after the split:
IF M0 == 90 # transpose channel 1 notes up 24 semitones MAT M1 = M1 + 18 END
IF M0 == 91 # transpose channel 2 notes down 36 semitones MAT M1 = M1 - 24 END
Regards, Nic,
|
|
|
Post by John Tennison on Sept 29, 2017 21:26:11 GMT
Thanks.
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Sept 30, 2017 9:16:32 GMT
Although that will result in stuck notes since only the note on is being transposed!
I will correct and adjust later on.
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Oct 2, 2017 11:13:19 GMT
Corrected per channel transposition (notes on and notes off)
IF M0 == 90 # transpose channel 1 notes up 24 semitones MAT M1 = M1 + 18 END IF M0 == 80 # transpose channel 1 notes up 24 semitones MAT M1 = M1 + 18 END
IF M0 == 91 # transpose channel 2 notes down 36 semitones MAT M1 = M1 - 24 END IF M0 == 81 # transpose channel 2 notes down 36 semitones MAT M1 = M1 - 24 END
Regards, Nic.
|
|