|
Post by chordam7 on Jan 19, 2016 19:09:51 GMT
Greetings! I have been using MidiBridge for some relatively basic features but this is the first time I may have to venture into Stream Byter, and I'm a little stuck.
I recently came up with some music using the Fugue Machine app. I would love to send the four voices to different sounds, but the app is currently only set up to send to one MIDI channel. While Googling for a solution, I ran across a forum post where a user pointed out that Fugue Machine will let you assign different velocities to each voice, which could be very useful.
I checked the Velocity Split module and I see it will only split the keyboard at one point -- so only two voices. What I'd like to do is split it into four velocity ranges (say, 1-30, 31-60, 61-90, 91-127, or something similar), and have each range go to a different MIDI channel.
I'm not unfamiliar with coding so I looked at Stream Byter and it sure seems like that would do the trick. But I'm not familiar with the details of the MIDI protocol or Stream Byter and, unfortunately, I'm absolutely crushed for time right now, so I'm hoping someone can either provide some code (if it's as simple as I suspect) or at least give me a few pointers as to the variables and syntax, to speed me up. Sorry to be such a wimp and any help is appreciated. Thanks!
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Jan 20, 2016 11:45:56 GMT
Hi chordam7, Splitting across 4 channels by note velocity can be done with the Stream Byter with a bit of trickery. The issue is that you also need to send the note off event to the channel that the note on was sent to. The velocity splitter knows this, but the Stream Byter does not, so we need to clone every note off to all 4 of the channels in a scattergun approach and hope that the receiver doesn't get upset by extraneous note offs. Here is how you do it: # velocity split incoming notes across channels 1-4 9X XX 01-1E = X0 # vel 1-30 CH 1 9X XX 1F-3C = X1 # vel 31-60 CH 2 9X XX 3D-5A = X2 # vel 61-90 CH 3 9X XX 5B-7F = X3 # vel 91-127 CH4 9X XX 00 = 8X # force note on/vel0 to note off 8X = 83 +C # clone note off to CH4 8X = 82 +C # clone note off to CH3 8X = 81 +C # clone note off to CH2 8X = 80 # map note off to CH 1Let me know how that works (or not). To change the velocity split points you alter the values in bold. Regards, Nic.
|
|
|
Post by chordam7 on Jan 21, 2016 16:51:11 GMT
Thank you so much for that information! I can tell it would have taken me quite some time to figure that out on my own. I hope to get a chance to try it this weekend -- will definitely report back.
|
|