Hi, Ambitious project… wanting to receive sysex patch dumps from a hardware synth and use it to update parameter values
I think I said it all in the title
I’m wanting to control my AFX station synthesiser (aka Novatoon Bass Station 2) with a maxforlive device inside my ableton projects.
If I succeed with this, I may attempt something similar with other synths I have
I’ve found some devices for this synth, but they’re out of date. They either ignore sysex or make use of background apps for sysex communication (before ableton could do it directly)
I’ve found a breakdown of every part of a sysex dump for this synth, which parameter each byte controls. So I don’t need to reverse engineer that part.
https://github.com/francoisgeorgy/BS2-SysEx
Im struggling to find much information about using sysex in max / maxforlive
anyone have any advice on a good way to take that sysex string and split it up to update some live dials?
any help or direction appreciated!
Is it as a simple as receiving the string
and using “unpack” to split it into a bunch of outlets, and feeding that into each live dial for that parameter?
you will receive that sysex string as a stream,
and will have to use thresh or zl group to collect
the stream into list, to be able to split it.
then you can use zl slice or other means of splitting the list.
if you use sysexin (no idea if that works in m4live)
you will not need to detect if data at input is a sysex message,
which would be the case if you use midiin.
that bs2 message is 154 items long, so zl group 154
could also do the first part of the job
Try it: what does [sysexin] print when receiving the dump?
what Max helped me, innocent user, to understand sysex: it's a list encapsuled between 240 and 247, F0 and F7 in hex...
so i can see what changes if a parameter is modified and sent to Max. If it's a total dump of a machine, it can be a very long list, or many sysex messages. I was happy, unable to understand the ground of the syntax, but simply copying a list from midiin, and sending it via iter to midiout, the parameter followed nicely.
In fact, precedent millenar, the MIDI flux dydn't support well to update in realtime many sysex changing parameters, and it was better to use controller or notes, simple messages, and patch in intern off the machine ( for me i.e. a Lexicon PCM80).
serial or USB 1 dydn't like so long repeated messages. And this complexity was made to be invisible for the ease of the customer.
In fine, this ease was nice to save and recall presets as text in Max with coll, without to need midifiles. Today, OSC seems more speedy for parameters in real time. I dydn't test MIDI network.
hth
zzz
added for fun a way to store and recall
zzz
Hey, i made this one:
https://maxforlive.com/library/device/5078/y-a-b-e-yet-another-blofeld-controller
Everything you ask for is in there, hope that helps.