- Topics: 219
- Replies: 732
- Total: 951
rewind a bit…
You said: "…you catch the response with the data (usualy some big sysex message), you interpret that message (read the bytes, toggle some bits, decompress, unpack whatever it takes to get the actual numeric values for your modulators), once you got those values you assign them to modulators in the panel…"
"whatever it takes to get the actual numeric values for your modulators" … The modulators already are indexed by the parameters the modulators send, right? The knob that sends CC13 should inversely be receiving something that looks like CC13 and some sort of value, which is contained within that "usually some big sysex message"… why make more work by requiring some giant array be defined (if your panel has a lot of modulators) when the modulators already are indexed and defined by what parameter they send. .. IE just like if i move my CC13 FM amount knob on my ctrlr panel the parameter is sent to the synth: if i move my [b:1bjircqb][i:1bjircqb]synth’s[/i:1bjircqb][/b:1bjircqb] FM ammt knob, my [b:1bjircqb][i:1bjircqb]panel’s[/i:1bjircqb][/b:1bjircqb] FM ammt knob moves. So you see the modulator already IS indexed…
so why not in that "read the bytes, toggle some bits, decompress, unpack" stage, the long sysex string gets parsed into either a string of cc parameter changes and/or short sysex messages? This is precisely how Fozzie’s midiox script works with my microwaveXT panel. It’s really elegant, contrary to fozzie’s claims that he doesn’t have much programming experience.
typing this on my laptop in blinding sunlight outdoors, I’ve done the best I can to re-read this post and make it as clear as possible.. hopefully this makes sense.