Wrote midi file to rytm sysex converter

Looks like this guy did the sysex stuff: https://github.com/bsp2/libanalogrytm
Still not a friendly solution…trying to suss it out now…[/quote]
Thanks. I have no idea where to begin with those files though. What application do i even open them in? what is a makefile? I can get as far as README. I basically don’t know how to use a library. What language is it?
Ideally I’d like to get the sysex info into Max MSP since I can understand that environment. [/quote]
Makefiles are used to run a batch process that compiles and links code…that library is in C. If you just want to get the sysex info to use in MaxMSP you will have to read the source code and start taking notes as to what does what, figuring out the different bytes for the commands, and everything else the sysex spec requires, then attempt to send the sysex msgs with Max/Sysex Librarian and see what happens. There is no plug and play solution. Download the MachineDrum manual and read their sysex spec for that to get an idea of what to expect.

Looks like this guy did the sysex stuff: https://github.com/bsp2/libanalogrytm
Still not a friendly solution…trying to suss it out now…[/quote]
Thanks. I have no idea where to begin with those files though. What application do i even open them in? what is a makefile? I can get as far as README. I basically don’t know how to use a library. What language is it?
Ideally I’d like to get the sysex info into Max MSP since I can understand that environment. [/quote]
Makefiles are used to run a batch process that compiles and links code…that library is in C. If you just want to get the sysex info to use in MaxMSP you will have to read the source code and start taking notes as to what does what, figuring out the different bytes for the commands, and everything else the sysex spec requires, then attempt to send the sysex msgs with Max/Sysex Librarian and see what happens. There is no plug and play solution. Download the MachineDrum manual and read their sysex spec for that to get an idea of what to expect.[/quote]
So if i managed to compile the libanalogrytm code what would the program do? is it just a document of how the sysex is organised, or can I actually use it to automatically parse/format sysex data ?

I’m wondering if I could compile the code into a max object somehow…

Looks like this guy did the sysex stuff: https://github.com/bsp2/libanalogrytm
Still not a friendly solution…trying to suss it out now…[/quote]
Thanks. I have no idea where to begin with those files though. What application do i even open them in? what is a makefile? I can get as far as README. I basically don’t know how to use a library. What language is it?
Ideally I’d like to get the sysex info into Max MSP since I can understand that environment. [/quote]
Makefiles are used to run a batch process that compiles and links code…that library is in C. If you just want to get the sysex info to use in MaxMSP you will have to read the source code and start taking notes as to what does what, figuring out the different bytes for the commands, and everything else the sysex spec requires, then attempt to send the sysex msgs with Max/Sysex Librarian and see what happens. There is no plug and play solution. Download the MachineDrum manual and read their sysex spec for that to get an idea of what to expect.[/quote]
So if i managed to compile the libanalogrytm code what would the program do? is it just a document of how the sysex is organised, or can I actually use it to automatically parse/format sysex data ?

I’m wondering if I could compile the code into a max object somehow…[/quote]
…read the github page/readme.

Sorry hadn’t checked forum for updates, I see there is some interest in this so I’ll write up a full doc on how to use it today.

this guy did most of the work reverse engineering the format - https://github.com/bsp2/libanalogrytm
but he hasn’t written any documentation either, so i just had to reverse engineer his code :slight_smile:

OK someone try this:

-Download/unzip the source code:
https://github.com/gattis/MIDIDrumToRytmSysex/archive/master.zip
https://github.com/bsp2/libanalogrytm/archive/master.zip
-Rename the folders to MIDIDrumToRytmSysex and libanalogrytm in your Downloads folder
-Open Terminal.app and fun the following commands
-Download/Install OS X Command Line Tools:
$ xcode-select --install
-Change directory to where you downloaded the code
$ cd Downloads/MIDIDrumToRytmSysex
-Compile the C code
$ make
(you should get a couple messages, maybe warnings, and a new file called raw_to_syx)
-Install the python libraries you need
$ sudo easy_install cstruct
(enter your administrator password)
$ sudo easy_install python-midi
-Now you can run python to convert any drum midi file to a raw file. For instance, Download/Unzip http://www.fivepinpress.com/InstantDrumPatterns.zip
$ python midi_to_raw.py ~/Downloads/Instant\ Drum\ Patterns/Drum\ Patterns\ Type\ 1/200\ Patterns/2DISCO.MID
(which will generate 2DISCO.MID.syx)
-Then use the C code you compiled to convert the raw file to a syx file
$ ./raw_to_syx ~/Downloads/Instant\ Drum\ Patterns/Drum\ Patterns\ Type\ 1/200\ Patterns/2DISCO.MID.raw
(which will generate 2DISCO.MID.raw.syx)

-Download C6 from electron, and load/send this syx to your rytm, and it will load the pattern

@gattis I’ll try this week. Btw, this is badass. One additional thing I would add to instructions is to backup everything via sysex first

Shouldn’t be that hard, in fact easier, but there are a lot of things in Rytm patterns (plocks, etc) that don’t exist in MIDI, so that info would be lost in conversion.[/quote]
gattis,

Any chance we could see this work the other way around? pattern to midi for use in a DAW?

1 Like

I tried this and it works! I’d love to get this code inside a m4l interface…