|
Post by somervid111 on Oct 25, 2017 22:48:13 GMT
Hi, i was wondering if it is possible to use stream byter to take a sysex message and send the original event plus 5 more of the same event but changing the value of the address bit for each sysex event.
I am using midi designer to control a Roland Integra-7 via sysex messages. The midi input to the I-7 is a guitar midi module sending on Ch1 to 6. I have sysex control over I-7 part 1(ch 1) but need that same sysex event sent to I-7 part 2-6 so that the guitar plays the same patch on all strings(I.e part 1-6). Example sysex message for part 1 tone is 41 10 00 00 64 12 18 00 20 06 59 40 V I need the following sent for part 2-6 as well as original event. 41 10 00 00 64 12 18 00 21 06 59 40 V 41 10 00 00 64 12 18 00 22 06 59 40 V 41 10 00 00 64 12 18 00 23 06 59 40 V 41 10 00 00 64 12 18 00 24 06 59 40 V 41 10 00 00 64 12 18 00 25 06 59 40 V
i thought I could do this with channel rules for sending the message to Ch1-6 but doesn't work.
thanks in advance
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Oct 26, 2017 7:29:29 GMT
Hi somervid111, Yes, the Stream Byter in MidiFire can do this. Without seeing the actual sysex message (I would expect it to start with F0 and not 41 and I don't know what the V represents), if I assume the byte we need to alter is the 10th byte, then try the following. rules: IF M0 == F0 41 10 00 IF M4 == 00 64 12 18 IF M8 == 00 20 ASS M9 = 21 XX = XX +C ASS M9 = 22 XX = XX +C ASS M9 = 23 XX = XX +C ASS M9 = 24 XX = XX +C ASS M9 = 25 XX = XX +C ASS M9 = 20 END END ENDOr just merge the scene file attached to this post for a custom module. If this does not work, pipe the MD sysex into an Event Monitor in MidiFire and open up the detail page for the actual message data and post that here. Regards, Nic.
|
|
|
Post by somervid111 on Dec 1, 2017 13:33:19 GMT
Nic, Thanks for this, what I forgot about was the roland checksum, if I use the above rule I will not have correct roland checksum. Is there a way to recalculate checksum for the 5 extra generated messages. The first checksum would come in on ch 1 message and then using your rule above I would need the checksum To change for the subsequent sysex events generated by stream byter II.
Thanks Again, Darryl
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Dec 1, 2017 13:51:08 GMT
Hi somervid111, Which byte in the original message is the checksum? How is it calculated? Or, if you could show me the 5 outgoing messages each with correct checksum that might be easier? Regards, Nic.
|
|
|
Post by somervid111 on Dec 2, 2017 15:23:23 GMT
Nic, Here is what I am trying to do. I want to use Roland's Integra-7 editor app to control my I-7 however I would like to select a tone on Part 1(ch.1) and have Part 2-6(Ch.2-6) select the same tone and if possible even be able to edit the tone in Part 1 and have those edits apply to Part 2-6. Here is what I get out of Midi Monitor for selecting Full Grand Piano on the 6 parts:
Part 1(Ch.1) Full Grand F0 41 10 00 00 64 12 19 02 00 00 46 75 6C 6C 20 47 72 61 6E 64 20 31 20 20 20 20 7F 01 40 40 40 40 40 40 40 40 40 01 34 F7
Part 2(Ch.2) Full Grand F0 41 10 00 00 64 12 19 22 00 00 46 75 6C 6C 20 47 72 61 6E 64 20 31 20 20 20 20 7F 01 40 40 40 40 40 40 40 40 40 01 14 F7
Part 3(Ch.3) Full Grand F0 41 10 00 00 64 12 19 42 00 00 46 75 6C 6C 20 47 72 61 6E 64 20 31 20 20 20 20 7F 01 40 40 40 40 40 40 40 40 40 01 74 F7
Part 4(Ch.4) Full Grand F0 41 10 00 00 64 12 19 62 00 00 46 75 6C 6C 20 47 72 61 6E 64 20 31 20 20 20 20 7F 01 40 40 40 40 40 40 40 40 40 01 54 F7
Part 5(Ch.5) Full Grand F0 41 10 00 00 64 12 1A 02 00 00 46 75 6C 6C 20 47 72 61 6E 64 20 31 20 20 20 20 7F 01 40 40 40 40 40 40 40 40 40 01 33 F7
Part 6(Ch.6) Full Grand F0 41 10 00 00 64 12 1A 22 00 00 46 75 6C 6C 20 47 72 61 6E 64 20 31 20 20 20 20 7F 01 40 40 40 40 40 40 40 40 40 01 13 F7
I tried selecting other tones as well and the same bits highlighted red above seem to be consistent to select Part 2-6. I assume those values could be assigned from the incoming message? The tricky part is how to calculate a new checksum for Part 2-6 because the checksum will be different depending on the message. You can see the Roland checksum in blue above, btw the tone select messages were all different sizes(i.e some 41, 30, 18 bytes) but all were consistent with the red bytes changing as per above.
Not sure if it's possible or whether the I-7 will respond properly but I sure would like to try to make this work.
Thanks In Advance, Darryl
|
|
orand
MidiFire Beta
Posts: 6
|
Post by orand on Mar 4, 2018 2:59:05 GMT
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Mar 5, 2018 10:36:52 GMT
Hi somervid111, Oooh, sorry - I never followed up on this. My apologies. orand - thanks for the pointer Looking at that, we should be able to calculate a checksum of each sysex message as it passes though with the upcoming version of MidiFire which supports basic looping. If you're still interested in getting this to work, bump this thread after MidiFire 1.11 is released (hope to submit to Apple very soon) and I will write the checksum code (unless Oran gets there first!) Regards, Nic.
|
|