Announcing an unofficial SDK for Analog Rytm MKII running firmware 1.70 written in Rust

This is awesome.

1 Like

If anyone started to experiment with it I gave it a road test today and started to write a max external and found a few minor bugs. I’ll update it tomorrow :sparkles:

3 Likes

Good work, i don’t own a Rytm, so won’t benefit me. But kudos for putting in the hours and contributing to the community!

Unfortunately, this

Is probably why they won’t document their sysex. They lose control over their own APIs and have to maintain backwards compatability, support community asking questions, they’ll get hounded when stuff breaks, and they can’t make the changes they want/need for the feature they’re building.

Supporting apis for your own software is hard enough, but atleast they can say ”oh sorry, this machine version is higher than what the current overbridge supports, you must upgrade OB”.

6 Likes

Even if they were to publish versioned sysex info for every box, there would still be people wailing when stuff breaks.

I can quite see the downsides, for Elektron, in making this stuff public.

2 Likes

I agree with both of you to a certain extent but I’m sure that they have their own internal documentation and I still see benefit of them sharing it “as is” and say that we’ll not give support, use it taking the responsibility etc.

There is also another form of sharing. Sometimes companies share it by request. One time I have sent an e-mail to TC-Helicon for Voice Live Touch 1 and they sent me their sysex docs. :slight_smile:

4 Likes

If anybody is interested to follow the max external development here is the repository.
I just started it and probably will not continue as fast as the SDK but eventually it will become something. I’m always open to contributions :sparkles:

4 Likes

I’d be intersted in a NodeJS module, if possible.

1 Like

Maybe I’d do that also, it is just some boring labor doing the neon bindings :slight_smile: .
If somebody else would like to work on it before I do I’d be glad to contribute.

2 Likes

It is interesting that I have missed the question here sorry.
Exactly. I think some parts of my work can translate to other projects such as

  • Project structure and software design
  • Translatable types, such as length, speed and the same sort where I believe probably Elektron keeps consistent across devices.
  • The sysex reverse engineering techniques adopted
  • The queries are known to be translatable across devices and the query reverse engineering has been done before me which probably everybody would benefit from.

maybe there are some other things which would translate that I can not think of now.
The short answer is yes.

I want to give you an example of a translatable type which is one of many.

This kind of type represents the micro timing value for a trig. Most of elektron devices are sequencers and I’m sure they have micro timing settings and even if I don’t know probably they use

  • The same intervals
  • The same internal sysex ranges
  • The same internal sysex encoding

This is an assumption but starting with an assumption would help a reverse engineering effort a great deal.

There are also internal relatively complex techniques (bit level) to keep the sysex format short and as packed as possible. These techniques are also discovered during our process so there is a good chance that they are being used in other devices also.

These are just a few examples.

I hope it gives some context :pray:

1 Like

I have been implementing serialization and deserialization for the project structure in the SDK for enabling saving and loading projects for example but it seems that when json is being used it is extremely large, should have guessed that, around 31 mb ( unformatted ) for a single project. 1.903.974 lines. :laughing:

Maybe it helps you appreciate how much data is conceptually available in your rytm to play with. :slight_smile:
I couldn’t find a way to share 62mb json.

Anyway, maybe sometime later I’ll implement sysex deserialization to just one file which shouldn’t be more than 5mb per project.

Feature is there now but any sane environment probably will not use it :slight_smile:

4 Likes

Hey all,

Thanks again for the interest.

Here is the MaxMSP object announcement powered by the SDK.

I hope you find it useful :sparkles:

7 Likes

i dont understand anything, but cheers to the people involved! anything done with that much love is always appreciated

3 Likes