Synth Forum

Notifications
Clear all

Decoding the encoded sysex values

4 Posts
2 Users
0 Likes
2,332 Views
Posts: 0
New Member
Topic starter
 

Hi,
I just want to know how to get the tonegenerator parameters (like Looper, Octaves etc) values from encoded json.

{"id":12773,"user":"https://soundmondo.yamahasynth.com/api/v1/users/2328/","name":"BetweenSpaceCutoff","reface":"CS","description":"Play with the speed. An innerspace organ/fx.","snapshot":"https://soundmondo.yamahasynth.com/media/snapshots/1490237647.png","data":{"sysex":[{"11":96,"10":0,"12":247,"1":67,"0":240,"3":127,"2":0,"5":0,"4":28,"7":3,"6":4,"9":15,"8":14},{"24":87,"25":47,"26":71,"27":1,"20":48,"21":117,"22":55,"23":0,"28":72,"29":103,"1":67,"0":240,"3":127,"2":0,"5":0,"4":28,"7":3,"6":26,"9":0,"8":48,"11":127,"10":0,"13":1,"12":64,"15":50,"14":126,"17":3,"16":0,"19":98,"18":35,"31":0,"30":0,"34":247,"33":124,"32":0},{"11":95,"10":0,"12":247,"1":67,"0":240,"3":127,"2":0,"5":0,"4":28,"7":3,"6":4,"9":15,8:15}]},"social":{},"background":null,"tags":["FX","Pad",SFX],"created":"2017-03-23T02:54:06.948057Z","updated":"2017-03-23T02:54:07.334208Z";}

I have gone through the docs and at one place it is mentioned that total size of packet is 61 bytes and packet bytes are like

13 byte Header:
FO, 43, 00, 7F, 1C, 00, 04, 03, 0E, 0F, 00, 60, F7

11 bytes Tone Data :
FO, 43, 00, 7F, 1C, 00, 1A, 03, 30, 00, 00

22 bytes ToneParameter Data

2 bytes of checksum
checksum, F7

13 bytes of footer:
F0, 43, 00, 7F, 1C, 00, 04, 03, 0F, 0F, 00, 5F, F7

As per my understanding above mentioned packet bytes only be applied over the stream data which we capture from synthesizer to app using CoreMidi or WebMidi api. But how to decode the json packet.

Regards
Vishal

 
Posted : 29/01/2018 5:03 am
Martin
Posts: 0
Eminent Member
 

Hi,

you can find the sysex data by parsing the values that follow
"data":{"sysex":[

after that you will find the sysex data in three { } blocks and after that a closing ]

The weird thing is that the sysex data are ordered kind of random, but you can find the address in the sysex by looking at the first value in the valuepairs.
For example the fist valuepair in the first {} block you see is "11":96 This means that byte #11 in the first sysex block has value 96 ( or hexadecimal 60 if you wish) starting count at byte #0. You can check that in each of the three {} blocks you will find one "0":240 pair. 240 equals hexadecimal F0. Byte #0, the first byte, of each sysex block is always hexadecimal F0. In the footer and header blocks you will find a "12":247 - byte #12 (the 13th byte and last) of those blocks is 247 (hexadecimal 247)

Some of the json data on the soundmondo website have some sysex data blocks doubled or tripled. Probably a MIDI communication bug in the soundmondo app or website. This is harmless, but the total dump will be larger than expected compaired to the Reface SysEx documentation in those cases. Especially the RefaceDX patches suffer from that, probably because it has the largest and most complex dumpsize. (still only 241 bytes - which should really be no problem for the app and the soundmondo website)

If your aim is to convert patchdata from the Soundmondo website directly to SysEx format: That's exactly what I have already done HERE! If you are lazy you can just download everything from there.

😀

 
Posted : 31/01/2018 6:25 am
Posts: 0
New Member
Topic starter
 

Martin wrote:

Hi,

you can find the sysex data by parsing the values that follow
"data":{"sysex":[

after that you will find the sysex data in three { } blocks and after that a closing ]

The weird thing is that the sysex data are ordered kind of random, but you can find the address in the sysex by looking at the first value in the valuepairs.
For example the fist valuepair in the first {} block you see is "11":96 This means that byte #11 in the first sysex block has value 96 ( or hexadecimal 60 if you wish) starting count at byte #0. You can check that in each of the three {} blocks you will find one "0":240 pair. 240 equals hexadecimal F0. Byte #0, the first byte, of each sysex block is always hexadecimal F0. In the footer and header blocks you will find a "12":247 - byte #12 (the 13th byte and last) of those blocks is 247 (hexadecimal 247)

Some of the json data on the soundmondo website have some sysex data blocks doubled or tripled. Probably a MIDI communication bug in the soundmondo app or website. This is harmless, but the total dump will be larger than expected compaired to the Reface SysEx documentation in those cases. Especially the RefaceDX patches suffer from that, probably because it has the largest and most complex dumpsize. (still only 241 bytes - which should really be no problem for the app and the soundmondo website)

If your aim is to convert patchdata from the Soundmondo website directly to SysEx format: That's exactly what I have already done HERE! If you are lazy you can just download everything from there.

😀

 
Posted : 04/03/2018 1:37 pm
Posts: 0
New Member
Topic starter
 

Hi Martin,
Apology for late reply. Thanks for your kind help. I read lots of documents but I could not find anything but your reply clears everything. Great Help..

 
Posted : 04/03/2018 1:45 pm
Share:

© 2024 Yamaha Corporation of America and Yamaha Corporation. All rights reserved.    Terms of Use | Privacy Policy | Contact Us