Elektron CTL Framework Open-Sauce

Hey guys,

it’s spring, so I decided to make my code for the Elektrons public:
https://github.com/jpenca/elektron-ctl

as it is, this thing allows deep programmatic control of the Machinedrum and the Analog Four.
What is deep control? Almost everything.

Most importantly, full editability of the sysex structures, and a mechanism for asynchronous reading & writing of that data.

I’ll add documentation & examples when I have time & if there is any interest in that.

2 Likes

That one contains a LOT of work, as I know. I don’t think that I can make use of the code, but thanks for sharing!

cheers Moritz :slight_smile:

yeah it’d probably be another huge heap of work to document all of this haha.
but I’ve tried to keep it readable… ObjC is kind of nice in this regard…
e.g. pattern editing is quite straightforward:
https://github.com/jpenca/elektron-ctl/blob/master/MachineDrumFramework/A4Pattern.h

if anyone wants to start using this but has problems getting into it, feel free to ask

1 Like

Makes me wish I was more clevereverer…

Now I get why you picked your forum name! :stuck_out_tongue_winking_eye:

Wow! I think I might have to have a look at this… Well done!

what does this mean for us endusers?

i know, ‘everything can now be got at’, but has anyone already had ideas?

(ive heard people talking about if the code was available, they could do this & that…)

Hi Jakob,

Thanks for your immense contribution. This code is truly valuable and instructive and I know it took you a lot of effort to create. Thanks for sharing!

This makes me want to get an AF, much more inspiring than Overbridge!

this is seriously awesome, thanks so much for sharing!

didn’t even realise sysex was implemented on the A4, will definitely be taking a look at this

As far as I know it’s not documented at all; void reverse-engineered everything. Amazing work!

So this is useless with the OT?

As far as I know it’s not documented at all; void reverse-engineered everything. Amazing work![/quote]
definitely not documented, brilliant work on void’s part…
makes me wonder if there is anything similar going on with the OT. :imp:
I asked elektron support about OT sysex implementation a long time ago (before the A4 was released) and the answer i got was along the lines of “maybe sometime in the distant future, definitely not anytime soon though”…
next time i have some free time i might try firing a few sysex queries at the OT, maybe something magical might happen :joy:

1 Like

you just reverse-engineered an assumption !

This is beautiful :wink:

obj-c is not my thing, but will definitely have a look… What is the license?

you just reverse-engineered an assumption ![/quote]
I reverse-engineered like 98% of the user data. but also got support from Elektron devs.
most of the work was actually painstakingly mapping out sound parameters (A4Params).
before 1.1 there was a lot of arcane usage of the sysex dump menu, but this is not necessary anymore… take a look at the A4Request & A4SysexMessage classes. :slight_smile:
there’s also various tools & helpers in the framework, such as a markov chain implementation…
even models for the envelope & LFO behaviour… the sequencer is completely modelled and can run synced to the AF, generating MIDI notes… a useful MIDI parser… etc., etc.

1 Like

MIT. do whatever basically.
yeah a port to C++ would be nifty :slight_smile:

1 Like

added a demo project and installation guide to the repository: https://github.com/jpenca/elektron-ctl

1 Like

MIT. do whatever basically.
yeah a port to C++ would be nifty :)[/quote]
Is that a challenge? :slight_smile:

(Way too busy during the next few months, no way I’m going to start messing around with this)

it’s 404?
i looked around github, not something i’m super familiar with and i dunno. was kinda expecting to see a lot of m + h files?

you just reverse-engineered an assumption ![/quote]
I reverse-engineered like 98% of the user data. but also got support from Elektron devs.
most of the work was actually painstakingly mapping out sound parameters (A4Params).
before 1.1 there was a lot of arcane usage of the sysex dump menu, but this is not necessary anymore… take a look at the A4Request & A4SysexMessage classes. :slight_smile:
there’s also various tools & helpers in the framework, such as a markov chain implementation…
even models for the envelope & LFO behaviour… the sequencer is completely modelled and can run synced to the AF, generating MIDI notes… a useful MIDI parser… etc., etc.[/quote]
what are you doing with markov chains? the other day i was reading about how they’re used to crack “good” passwords by starting with dictionaries of statistically relevant words and going through all the l33t spelling people try (if i understood it right) and they’re cool if you use them to try out a bunch of different musical elements as the “dictionaries”. seems like i see them used for just pitch a lot, which i dunno…

i’d like try to use your sysex to get more into speech synthesis on the a4, it’s definitely capable and it’d be so much easier to not do it by hand. :dizzy_face: i’m not even sure overbridge will work for this because a lot of plug in hosts don’t seem to like updating at audio rates…