capturing SYSEX dump?

daddymax's icon

I have only recently been playing around with SYSEX, as my waldorf blofeld relies on it to have full control of its variables.

I noticed that i can send a sysex dump of my current patch from the blofeld - i was wondering if there is a way to have max receive and store this info so i can start playing around with it? Im hoping to find a way to morph/ interpolate between presets..

That is all yet to be thought about, currently, im just wondering if anyone has ever patched anything up that will simply receive and store a sysex dump from an external hardware synth. Any ideas?

metamax's icon

Yes, lots of ways to do this. My first thought was [coll]. Post an example.

spectro's icon

Or, provided the dump is less than 512 characters, sysexin -> capture can help...

benniy's icon

i love that topic! have built tons (!) of librarians and editors for my synths at home. interpolation will not work off the hat, because sysex is generally very complex and often strangely (and synth-specifically) bundled, how ever it is doable (just as anything in max), for sure!

the attached patch will get you started as for grabbing one sysex-dump from the synth. the rest is storing to coll, making a menu to recall if desired, building yourself a preset system, extracting certain bytes from the sysex message and changing them if desired (lots of reading manuals of your synth on this one!) and so on.

Max Patch
Copy patch and select New From Clipboard in Max.

some things you might stumble upon:
1) keep in mind that you can not patternize colls.
2) be very aware, if the synth uses a checksum (probably one of the last bytes in the sysex message). this can be very annoying to calculate and might be necessary if you change certain data in the original sysex message

daddymax's icon

Brillliant - thanks so much for all the advice from everyone - Benny, I appreciate you sharing your patch, ill jump in and have a look asap.

midierror's icon

Benniy, I'd love to ask you some questions about your synth editors! This is exactly what I'm looking to build right now

benniy's icon

go for it :)

midierror's icon

Superb!

I'm pretty proficient at sysex editors - making patches and programs which can send individual parameters. Eg https://www.youtube.com/watch?v=9QXd2fNyYmQ or https://www.youtube.com/watch?v=UL3Qp-pj2PE

These are great, but I'd love to be able to load sysex files, or request a voice dump from the synth and have the values sent to my gui.

I have started investigating this, and found [listfunnel] and [spray] can sort of distribute the params of a sysex message which I've copied and pasted in.

Do you know a better method?

Can sysex files themselves be loaded?

Is there any way of saving an entire synth preset in max? - or spitting out an authentic sysex message ?

Many thanks
midierror

Peter Ostry's icon

Look into the [capture] object. I use [capture 4000] which is usually big enough for the sysex I get.

Basically:
At the start of incoming sysex (decimal 240) you clear the [capture] and a [zl group] object. Then [capture] gets all data until the end (decimal 247). With this number, you count the stored digits, use the output to set [zl group], wait a little and finally dump the [capture]. The result is one group with the entire capture content. Frome here you can continue with [zl slice] objects to get the parameters you need.

See the attached example patch.

Max Patch
Copy patch and select New From Clipboard in Max.

midierror's icon

Cool, thanks! I'll give this a try - it should give me the option to use requested bulk voice dumps or sysex files to update the gui. Excited!

Bill 2's icon

I've been loosely following this for possible future use and played with both pasted patches. AFAICT this does the same thing but a little more simply:

Max Patch
Copy patch and select New From Clipboard in Max.

[zl group] doesn't need to be set; it just needs a bang after all numbers have been entered (which also clears it). The "4000" just sets the maximum allowable size, so you could make it anything, or change it with a "zlmaxsize $1" message. Not sure what the maximum can be.

PS: G'day Peter, fellow Logic Environment refugee. :-)

Peter Ostry's icon

Ah, thanks, much better.
Maximum list length is 32,676.

PS: Hello Bill, nice to meet you again outside of the dark caves of the Environment ;-)

Bill 2's icon

"Can sysex files themselves be loaded?
Is there any way of saving an entire synth preset in max? - or spitting out an authentic sysex message ?"

I'm becoming more interested so I had a bash at it using [table]. Haven't tested it on a synth though. Does anyone know if the maximum length of [table] is also 32,676?

Max Patch
Copy patch and select New From Clipboard in Max.

PS: Peter, "seeing" you in this thread has prompted me to wonder how many things we do quite easily in Max simply couldn't be done in Logic - a scary thought!