I am trying to get the separate bytes from a 256 byte sysex dump (from a Waldorf synth, but this is not really important) and use them as the value bytes of a range of cc messages. The purpose of doing this would be to send the cc values to a midi controller (NM G2 or BCR2000) in a parameter feedback scheme, to update the values of the endless rotary encoders.

I noticed that SC/PC can cope with sysex messages on a PC platform, but would my problem be solvable? The idea would be to capture the sysex string of hex bytes, and send 'em one by one (all or preferably a subset) to the midi out, packaged in the correct CC controller messages as hex value bytes. Of course, I know what sysex byte should be in what CC# message, so maybe I could use some sort of table to do this parameter mapping?

Any ideas whether this is feasible, or whether there is a more simple solution (midi-ox doesn't work since it can't handle sysex input other than storing or routing it)?_________________Spinning at ~0.0000115740740741 Hz

I just noticed that a vbscript approach using midi-ox might be feasible as well, so I'll investigate that option as well. Still, if anyone wants to comment on PC sysex transmogrifying, please do._________________Spinning at ~0.0000115740740741 Hz

IIRC sysex receipt in SC gives you an Int8Array with all the bytes, which you can then parse any way you choose.

Not sure exactly what the question is here...? It's quite straightforward to get individual bytes with messageArray[index], and ranges with messageArray[leftIndex .. rightIndex](*). Like C, indices start at 0.

(*) But keep in mind, the range syntax copies part of the array into a new Array object. If using the same range more than once, it's better to save the partial copy in a variable rather than repeatedly copy the range. (Getting a single array item doesn't copy.)

Thanks James, that helps. I think I will try the psycollider and midiox/vbscript options both, to see which works best. I am having some problems with the midiox scripting, but this is probably due to my relative newbieness with regard to any kind of text-based programming.

I want to 'lift' single bytes from the sysex message to incorporate them as the value byte in appropriate cc messages. The sysex dump that I want to remap to cc message lends itsself well to do this. I am yet unsure what format these bytes should be when psycollider sends cc messages out._________________Spinning at ~0.0000115740740741 Hz

Thanks again! I understood the array thing (was just trying to get across what my intention was), but thanks for the code examples. I always struggle for some time with the exact syntax since I am not fluent in any computer language in particular.

I was a bit fuzzy on the byte format; I wasn't sure whether PC uses decimals or hex for internal sysex or other midi processing, but I now understand all processing is in decimals. Since I am also working on a midiox script - where sysex is in hex and other midi in dec - I was mixing up things.

I have been making headway in the midiox scripting last night, so at least I'm confident that I will get there one way or the other._________________Spinning at ~0.0000115740740741 Hz

I was a bit fuzzy on the byte format; I wasn't sure whether PC uses decimals or hex for internal sysex or other midi processing, but I now understand all processing is in decimals.

Processing is binary but display is decimal. You can turn a byte into hex using byte.asHexString(2) -- for display -- the result is a String that doesn't do math. (For other bases, there is asStringToBase - more than you needed to know I'm sure )

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum

Please support our site. If you click through and buy from our affiliate partners, we earn a small commission.