Send/receive patterns with SYSEX (documentation?)

I suspect that Max is far from the easiest software to use to perform the data manipulation, but the Elektron protocols are clearly written.

A few minutes’ reading and maybe looking at some other implementations on GitHub should show you how to do the packing and unpacking.

There is so much fun you can have with the Monomachine’s MIDI spec before you even touch sysex. Had some fun jams w/ song position pointer messages at the end of the weekend. :imp:

But yeah I would like to get into the sysex side of things at some point, too…

Also I think Max is a great environment for this kind of manipulation, at least if you do the sysex processing w/ one of its languages (i.e. Javascript). I’m doing MIDI control with C right now but mostly because ultimately I want my code to run efficiently and reliably on a Raspberry Pi.

Simon: [i]Ok, so…

We will continue with a by request-basis on the SySex documentation due to various reasons for the time being. Note that we will not deny anyone these documents, so please don’t hesitate to contact us (support) about it.[/i]

Thanks Simon, much appreciated for the response. Ticket raised :wink:

license: [Rusty: Put me on the list as being interested in getting both of these documents as well please.]
The plot thickens…

I deny all knowledge… :thinking:

void: yea looking forward to see some more elektron sysex action. beware, it’s a deep rabbit hole :slight_smile:

I’m curious to dig into it… I’ve seen some, um, interesting ones in my time…

guga: …it’s going to be an hard time for developers… :astonished: :alien: :confused: :stuck_out_tongue_winking_eye:

You told me it was all moonbeams and bunny rabbits though? :stuck_out_tongue:

Thank you, Yamaha…

Thank you, Yamaha…[/quote]
Yep! You know I built a Midi/SysEx editor for the RS7000 once upon a time…?

Was handy for sorting out the proper access and automation for the effects and stuu and things…

1 Like

Thank you, Yamaha…[/quote]
Yep! You know I built a Midi/SysEx editor for the RS7000 once upon a time…?

Was handy for sorting out the proper access and automation for the effects and stuu and things…[/quote]
Oh fun. Yeah that sounds really valuable since their UIs are often so bad. They make some great machines once you get past that, though.

I wasted a week trying to reverse engineer RY30 sequence dumps once upon a time but it was way over my head. Best I got was to display katakana in kit names. Yamaha wasn’t nice enough to provide docs, either. Elektron are saints in comparison.

Thank you, Yamaha…[/quote]
Yep! You know I built a Midi/SysEx editor for the RS7000 once upon a time…?

Was handy for sorting out the proper access and automation for the effects and stuu and things…[/quote]
Oh fun. Yeah that sounds really valuable since their UIs are often so bad. They make some great machines once you get past that, though.

I wasted a week trying to reverse engineer RY30 sequence dumps once upon a time but it was way over my head. Best I got was to display katakana in kit names. Yamaha wasn’t nice enough to provide docs, either. Elektron are saints in comparison.[/quote]
The RS7000 has 20 odd pages of information in the back of the manual. I was using to create automation, parameter lock effects, generate/merge midi files etc… I wonder what I did with that?

Still… cna think of even worse bits of gear that are a nightmare

Haha, sounds like … Fun!
Speaking of SySex, Supercollider seems like it would be very useful for SySex duties. A shame it’s mostly developed for OS X though.

1 Like

Sweet :wink:

That will keep me out of a trouble… ableit only momentarily

I’m also very interested in this.

T’here was a machinedrum ipad app created that’d send in pattern/kit info. I use max/msp pretty regularly but really want to be able to send in pattern-editing info (without hacking in some param-locks by pumping in redundant CC’s while sending note-on’s in real-time record mode… dirty dirty)

It was me who did the MD iPad thing.

why did I never release it?

because the MD would sometimes hang up or behave weirdly. I think there’s some bugs in its OS vaguely related to receiving sysex (patterns, kits) while the sequencer is running, and the Elektron dev team is understandably busy with the newer machines.

Likely the MM will have similar issues…

the analog machines are rock solid and have built-in USB, much better to deal with.

1 Like

Wasn’t aware if you’d fully released it -

I was probably one of several who contacted you asking about it - I was wondering what your sysex results ended up looking like, or for some pointers on how you sussed it all out.

Of course, I’m still interested in it - as I’d like to be able to easily export something I whipped up on my pc out to the machinedrum (or monomachine). This is primarily down to param locks & locked data (not crucial) but mainly the trig values of on/off. To remove that completely as I focus in generative stuff (youtube.com/midinerd) it’d be really nice to grok that.

I mapped out the midi CC’s in max which is pretty easy as you probably know, but the formatted sysex stuff I just never cracked open. I feel like if I knew how to send 1 or 2 of the messages properly I’d become literate to the rest of the documentation.

Is there anything I can do to coax this out of you? Not asking for source code per-se: I send the midi continue / stop / play messages to the MD from max by sending values of ints of just 248, 250, 252 to [midiout] and it works. - Is there a representation conversion I need to go from the reference hex shown in the Elektron Sysex Documentation - and a preamble/hex setup message I need to send to start piping along the pattern data? I’m seriously intrigued by this.

I mapped out all the Monomachine CCs in a Max for Live object and added the ability to send random values within a range for each parameter.

I found it really arduous though and kept thinking, Why am I not doing this in script? It would have taken a fraction of the time.

So, what is a good language to use - if I want to send Midi CCs / Sysex and build a basic UI?

/takes notes :wink:

i’m not sure it would have taken less/more time for you to get MIDI CCs/SySex out using a different approach than Max…
you’ll still need to build the UI and code a bit to get things to work. sure you have pre-cooked code that you can reuse but still…
language-wise, anything that does the job would do; a good language is the one that works better for you :joy: :astonished:

1 Like

i’m not sure it would have taken less/more time for you to get MIDI CCs/SySex out using a different approach than Max…
you’ll still need to build the UI and code a bit to get things to work. sure you have pre-cooked code that you can reuse but still…
language-wise, anything that does the job would do; a good language is the one that works better for you :joy: :astonished:[/quote]
Thanks Guga. I don’t have much experience with Max but I was manually connecting several hundred wires as opposed to writing a couple of loops in code. I wouldn’t know how to approach Markov Chains in Max!

I’ve written generative pattern and sound generators in Basic (many years ago) and more recently in UnityScript (bit like javascript) and C# - but the C# code was working with samples inside the game rather than Midi streams. Unity may be a possibility.

I would love to make small executables similar to your randomizers but incorporating Kits and Patterns. Did you use C++?

Oh, it does, even with just CCs. But it’s still fun.

It’s not really about the language, more about libraries/frameworks…
for the sysex stuff itself though, it’s better to use a language that’s good for messing with structured binary data: C or C++.
MIDI and UI are two separate topics, there are many libraries to choose. Depends on which platform you want to develop for. Any library/framework comes with its own baggage. A good all-in-one cross-platform solution is JUCE, but it costs money if you want to release commercially.

1 Like

It’s not really about the language, more about libraries/frameworks…
for the sysex stuff itself though, it’s better to use a language that’s good for messing with structured binary data: C or C++.
MIDI and UI are two separate topics, there are many libraries to choose. Depends on which platform you want to develop for. Any library/framework comes with its own baggage. A good all-in-one cross-platform solution is JUCE, but it costs money if you want to release commercially.[/quote]
Thanks Void. I hadn’t heard of JUCE - will check it out.

Also very interested to see what comes of this.