|
Post by nshaver on Jun 2, 2014 16:46:31 GMT
Can stream byter be used to map a sysex message into a control change?
I have a Roland VK8 organ, and I want to use its drawbars to control Magellan Galileo on my ipad. Roland thought it would be a good idea to send sysex rather than CC from its physical drawbars, so I'm thinking a mapper like stream byter may be my only option for controlling Magellan Galileo drawbars from the VK8.
Here's an example of a VK8 sysex message when moving drawbar #1 to what would turn off the drawbar (value 0): F0 41 10 00 4D 12 10 00 10 00 00 60 F7
I need that to map to a control change, perhaps CC#14, MIDI channel 1, value=0.
Can stream byter do that? When it sees sysex "F0 41 10 00 4D 12 10 00 10 00 00 60 F7", it sends on MIDI channel 1 a CC#14 value of 0?
The drawbar messaage for the first "stop" of drawbar 1 would be slightly different: "F0 41 10 00 4D 12 10 00 10 00 01 5F F7". When that is seen, it would need to send a CC14 value of 16 (there are 9 stop values, 0-8, and 16=1/8th of the way between the CC value range of 0 and 127). And so on for values 0-8, and then the other drawbars #2-9.
Thanks very much for any help.
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Jun 2, 2014 17:01:08 GMT
Hi nshaver,
Right now, the Stream Byter is limited to matching only the first 3 bytes of a message in a rule, so given your examples above all the drawbar messages (ie. drawbars and all stops) will be treated the same way by the Stream Byter.
It isn't going to be able to do the trick for you, I'm afraid.
Regards, Nic.
|
|
|
Post by nshaver on Jun 2, 2014 17:07:12 GMT
Thanks for the quick reply Nic.
Is there any chance that a future update to stream byter will support more bytes? If it supported 11 bytes it would catch what's needed from my sysex. The last two bytes are a checksum and the end-of-message (F7), and things would probably work ok without those two bytes.
If not, do you know of any other app that maps sysex to control changes?
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Jun 2, 2014 17:17:52 GMT
I can't make any promises but at some stage I will be doing another MidiBridge update and will consider expanding the input rule length.
I'm not aware of any other app on iOS that will transform a message like you need.
For Windows/MacOS there is a product called miditranslator but I have never used it myself, so not certain if this will do it either.
Regards, Nic.
|
|
|
Post by nshaver on Jun 2, 2014 17:28:47 GMT
Well, thanks very much for the help. I know it might slow things down if you're having to watch every message for that many bytes, especially considering that I'd be creating 81 rules - 9 drawbars times 9 values. That'd be 81 things to evaluate the last 11 bytes against. I'll watch my midi bridge updates closely in the future to see if you wind up making this change.
Thanks again for your help and your very cool app.
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Jun 2, 2014 17:45:13 GMT
Thinking aloud here, I could change the stream byter input clause to permit matches on byte 'n' of a message (multiple times) so that you could specify a match something like (examples)
00:10 = B0 10 12 # if byte 10 is '00', remap to CC
01:10 5F:11 = B0 10 7F # if byte 10 is '01' and byte 11 is '5F' remap to CC
That could make things more efficient and general.
However, evaluating 11 or more bytes against 81 rules should not be a problem. MIDI data is so sparse compared to audio data for example.
Like I said I won't make any promises but I have added this to the list of possible enhancements, so we will see. If it does happen, I will update this thread.
Regards, Nic.
|
|
|
Post by crony on Jun 2, 2014 18:47:19 GMT
Hello, Just to let you know I'm about to get a Sysex manual for an external midi effect : VoiceLiveTouch 2. I have absolutely no idea at the moment how are they're gonna look like, but , I need to transform Sysex into CC as there's no CC available included for some controls...
|
|
|
Post by nshaver on Jun 2, 2014 19:02:10 GMT
01:10 5F:11 = B0 10 7F # if byte 10 is '01' and byte 11 is '5F' remap to CC
Iff'n you were to do this, how many "AND" might that allow for? If what I was watching for is: Byte: 1 2 3 4 5 6 7 8 9 10 11 12 13 Value: F0 41 10 00 4D 12 10 00 10 00 00 60 F7Then are you saying I might code a rule like this to catch it and send value 0 on CC#14 on channel #1: F0:01 41:02 10:03 00:04 4D:05 12:06 10:07 00:08 10:09 00:10 00:11 60:12 F7:13 = B0 0E 00
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Jun 2, 2014 19:22:34 GMT
Yes, in your example this would be the equivalent of writing just: F0 41 10 00 4D 12 10 00 10 00 00 60 F7 = B0 0E 00I was thinking more that you can just pick to match the bytes you are interested in since in your own case, the first 8 or 9 bytes don't seem to change so if we didn't need to compare them it would speed up the matching step and allow more concise rules to be written. Like I said, thinking out loud! :-) Regards, Nic. (BTW crony I have noted you are interested in this too)
|
|
|
Post by nshaver on Jun 2, 2014 20:52:26 GMT
That sounds great to me. If you get it going, huge thanks. If you don't, I understand and thanks for the fast replies and for clearing up how the feature work for me.
Nick Shaver
|
|
|
Post by dwarman on Jul 28, 2014 4:29:54 GMT
fyi, TB MIDI Stuff, Lemur, and IIRC midi Designer Pro, can all map Sysex to CC and vice versa. I've used TB for this and it works.
|
|