|
Post by gurbz on Sept 5, 2021 15:45:42 GMT
Hi all, I am creating a Roland GP-8 midi designer layout and so far everything went nice, I can control it now but… My trusty Roland gp- 8 from 1987 is controllable with sysex commands but when I want to refresh / get sysex of the current parameter status it only sends me patch data and not separate controller data. I understand which byte is which parameter though in the patch data. here is a classic controller command sending out to GP8: F0 41 00 13 12 00 02 35 49 F7 #41 = Roland #12 = gp8, 00 02 = dyna filter sensitivity parameter On more modern Roland devices, when I want to request the status, I should use: F0 41 00 13 11 00 02 00 00 7D F7 ( or something like that) but the GP8 gives me patch data. I am using this sysex code now for retrieving the patch data: F0 41 00 13 11 00 00 00 32 4E F7 patch data: 10th byte is the dyna filter sensitivity and so on: F0 41 00 13 12 00 00 0F 0F 00 00 64 00 50 46 32 50 00 32 46 1E 3C 3C 32 32 32 64 35 02 2C 35 1E 28 64 64 64 46 00 00 20 20 20 47 75 72 62 7A 20 62 79 70 61 73 73 20 20 00 32 F7 What sort of script would be suitable for my situation? I just want to refresh the mididesigner layout knobs parameters, screenshot attached. Thinking of this: a input script would come very handy indeed and could be well do-able because the patch data is a string of values that should be delegated to the corresponding parameters every time. cheers and thanks in advance!! Attachments:
|
|
abadam
Developer
Rotten Apple
Posts: 61
|
Post by abadam on Sept 5, 2021 17:43:45 GMT
We seem to be doing something very similar here: link
You need a little script that traps the sysex message and then outputs each of the bytes you are interested in as separate CC's which MD can intepret. if ML == 58 # I think that message is 58 byte # convert value in byte 10 (index 9) in message to CC 40 channel 10 send BF $40 M$9 # ... convert other bytes to other CCs end
|
|
|
Post by gurbz on Sept 5, 2021 18:04:02 GMT
Thx for reply Abadam!
The knobs and buttons I am using in MDP are sysex messages. Does that matter?
I think it is possible to create / automate sysex messages filled with the values from the patch data but I’m not sure how to do that
|
|
|
Post by gurbz on Sept 5, 2021 19:30:17 GMT
We seem to be doing something very similar here: link
You need a little script that traps the sysex message and then outputs each of the bytes you are interested in as separate CC's which MD can intepret. if ML == 58 # I think that message is 58 byte # convert value in byte 10 (index 9) in message to CC 40 channel 10 send BF $40 M$9 # ... convert other bytes to other CCs end Hmm, not working for me yet but I’m sure there is a slick solution for my question. I reworked the script from the link: if M0 == F0 41 00 13 # is this the message we want? assign I0 = $10 # index of 1st value in sysex message assign I1 = 1 # first CC number to use assign I2 = F0 41 00 13 12 00 02 while MI0 != F7 # loop from 1st value to end of sysex send BF I1 MI0 # send cc I1 on channel 16 calc I0 = I0 + 1 # next value field calc I1 = I1 + 1 # next CC to send end end I get some results with this script, a reaction, but the script answers a different question.
|
|
|
Post by gurbz on Sept 5, 2021 19:55:18 GMT
Ok, reworked it a bit:
if M0 == F0 41 00 13 # is this the message we want? assign I0 = $10 # index of 1st value in sysex message while MI0 != F7 # loop from 1st value to end of sysex send F0 41 00 13 12 00 02 I0 F7 end end
I get some results, the checksum doesn’t add up and I see a bit movement, a stream of the same messages. Working it
|
|
|
Post by gurbz on Sept 5, 2021 20:19:26 GMT
The script now
if M0 == F0 41 00 13 # is this the message we want? assign I0 = $11 # index of 1st value in sysex message send F0 41 00 13 12 00 02 I0 F7 end
Results now
Message Out: Length=12: F0 41 00 13 11 00 00 00 32 4E 00 F7 Message In: Length=59: F0 41 00 13 12 00 00 00 0F 20 64 64 01 3E 22 27 52 00 2E 15 1E 3C 3C 32 64 39 4E 35 00 3C 35 1E 28 64 32 00 28 00 64 20 20 20 47 75 72 62 7A 20 63 6F 6D 70 72 65 73 20 00 08 F7 Message In: Length=9: F0 41 00 13 12 00 02 0B F7
|
|
abadam
Developer
Rotten Apple
Posts: 61
|
Post by abadam on Sept 5, 2021 21:25:23 GMT
if M0 == F0 41 00 13 send F0 41 00 13 12 00 02 M$11 F7 end
|
|
|
Post by gurbz on Sept 5, 2021 21:54:41 GMT
if M0 == F0 41 00 13 send F0 41 00 13 12 00 02 M$11 F7 end Yes!!!!!! Thanks Abadam. This really helps a lot for this midi designer layout, thanks so much.. Gonna take care of the other parameters
|
|
|
Post by gurbz on Sept 6, 2021 8:00:12 GMT
Everything works as planned, check out the colors how nice it’s being spread out into separate sysex messages.
MDP log:
Message In: Length=59: F0 41 00 13 12 00 00 0E 06 46 23 32 64 57 24 35 3D 4E 32 46 1E 3C 3C 47 3F 46 3C 34 02 14 35 07 26 64 4E 00 32 00 00 00 20 4C 65 61 64 20 47 75 69 74 61 72 20 32 20 20 00 58 F7 Message In: Length=9: F0 41 00 13 12 00 00 0E F7 Message In: Length=9: F0 41 00 13 12 00 02 32 F7 Message In: Length=9: F0 41 00 13 12 00 03 64 F7 etc
But now I create 9 byte messages instead of 10, the checksum is missing I think. These are messages when turning the knobs:
Message Out: Length=10: F0 41 00 13 12 00 02 32 4C F7 Message Out: Length=10: F0 41 00 13 12 00 03 64 19 F7
Because of this I am noticing that the values between device and MDP are not the same, does that make sense?
|
|
|
Post by gurbz on Sept 6, 2021 16:01:20 GMT
Everything is fine!!! No checksum issues. There was a mismatch between patch datacontainers and corresponding parameters, solved now!! Very happy how this is turning out !
|
|
abadam
Developer
Rotten Apple
Posts: 61
|
Post by abadam on Sept 6, 2021 17:03:59 GMT
Cool. Suspect GP8 is from days before checksums and they are not required in any case.
|
|
|
Post by gurbz on Sept 6, 2021 17:13:03 GMT
Yeah. A few years ago I created a sysex based boss katana layout. I recently checked it out, it is amazingly complex! One can download it for free on the mididesigner website, it is build for a Boss Katana MKI firmware 2.04. Nic From audeonic contributed immensely to that project.
But developing this MDP layout was a breeze compared to the Katana and very rewarding. This is analog stompbox power made wireless midi controllable and the good part is that this old unit is now accessible by modern gadgets like iPads and iPhones. The major drawback of this good sounding units is that they are not accessible. So those days are over.
Thanks a lot, If you see Nic say hi from me! It’s possible that not every issue is covered , I’ll chime back in them but most of layout is ready.
|
|
|
Post by gurbz on Sept 9, 2021 14:09:18 GMT
|
|
|
Post by gurbz on Sept 9, 2021 14:36:24 GMT
Got one question though: if I want to vice versa send a patch to the device, consisting out of the parameters and want to combine them in a patch, how do I send that with a script?
|
|