Rytm Sysex list?

Is there any compiled somewhere ?

1 Like

No official documentation, it therefore requires user reverse engineering, or get some clues from github


Has anybody used/looked into this? Would it be possible to scramble the pattern trigs for some AFX/Autechre/glitch stuff in realtime?

@mekohler maybe uses it or at least references/bumps it iirc - pretty sure a few others have too (probably also the og contributor to repository) - not used it myself, but the pattern dumps on Elektron devices are pretty hefty/dense and often change - @void (estranged genius of elektronauts) may have done stuff like that - he certainly did some truly epic things with teh Rytm, not all of which were developed further

1 Like

I use that library for all of my apps. The only thing that changes between devices is the machine ID. Sysex won’t be in realtime though as Kits take 1-2 seconds to transfer and Patterns 3-5 seconds


Thanks, this is the only resource I found so far. It’s a bit complicated for me to find the relevant info, though…
Any idea how I could find, for instance, how to reload the current kit ?

By the way, any idea how this information was gathered ?

I think the original MD’s manual had sysex documentation.


Yes, absolutely, I still have the manual, and that’s why I was surprised that Elektron stopped making the sysex lists public. Do you imply that the MD documentation was the starting point to reverse engineer the AR sysex ?

Yeah, I’m guessing bsp’s library was started using that. Either way, the library contains all the Sysex Send / Receive messages you could want, and they work across all of the devices if you change the AR_PRODUCT_ID in the library to match the hardware you’re working with.


According to the Github README: https://github.com/bsp2/libanalogrytm

All file format information has been found out by analyzing/comparing hundreds of sysex messages sent by the AR.

1 Like

Yep, but I tried monitoring sysex messages from the AR while performing different actions, and didn’t receive any.

It doesn’t send sysex for that stuff. Sysex is only sent when requested externally, or you use the System menu to dump the sysex. Sysex is usually meant for large information, not small realtime updates.


Too bad.

Would anyone be kind enough to help to decipher some of the info contained here : https://github.com/bsp2/libanalogrytm ?

one or two sysex message examples would probably set me on the correct way. For now I’m just overwhelmed by the code.
For instance, the sysex for a kit request and get the sound parameters + machine types ? (that would be my main need, in fact). In the end, I’ll use Max/MSP to gather kit settings and convert the data to MIDI NRPNs.

Check sysex.h:

F0 00 20 3c 07 00 id 01 01 nr 00 00 00 05 F7

that’s the basic request message for everything, just replace the ID and NR fields…this will cause the RYTM to send an ENCODED sysex message to you. You use the libraries functions to decode that sysex to turn it into an actual string of readable numbers. You’re going to have a headache doing all of this in MaxMSP unless you know how to use c code in that environment.


Thanks for the reply !

id is the id of the Rytm ? so 0x00 0x20 0x3c ?
nr is the number of the request, so
Is that right ?
Also, what does ‘encoded’ mean and why is it encoded ?

By any chance, could you write the complete message for a kit request ?

Sorry for the dumb questions.

I can’t experiment right now since my Rytm (like, my 4th Rytm…) is on its way.

The easiest way would be to use Javascript in Max


It turns out that I’m currently following a course on Javascript in Max. My previous coding experience is close to 0, and it’s mainly about Live API and control surfaces, but still…

I’d be happy to help. Won’t be available much this big week-end (going to Paris to see The Smile in concert) but after that, I’ll be (more) free.

1 Like