neige d'aout

knowledge, art, and other stuff

User Tools

Site Tools


code61_re

This is an old revision of the document!


M-Audio Code 61 Reverse Engineering Project

Preface

It's a MIDI keyboard controller with a ton of programmable knobs, it comes with some editor software to edit these knobs with up to 12 presets on it, downloadable on M-Audio's website, only available on Windows and MacOS. Here we try to reverse engineer that preset editor software…

MIDI ports

There's 4 ports available:

amidi -l
Dir Device    Name
IO  hw:x,0,0  Code 61 USB MIDI
IO  hw:x,0,1  Code 61 MIDI DIN
IO  hw:x,0,2  Code 61 Mackie/HUI
IO  hw:x,0,3  Code 61 Editor

The last one in particular is used by the preset editor.

SysEx messages

SysEx messages generally have the following format:

Startf0
Manufacturer ID7e (non real-time) or 00 01 05 (M-Audio)
Device ID7f (all devices)
…
Endf7

⇒ sent to keyboard

⇐ reply from keyboard

On Linux, try amidi -p hw:x,0,3 -S '<message>' -d

???

⇒ f0 00 01 05 7f 31 06 6d 00 01 01 f7

The LCD says SYS for a second

Device enquiry

⇒ f0 7e 7f 06 01 f7

⇐ f0 7e 7f 06 02 00 01 05 31 06 31 30 34 34 f7

Receive preset

⇒ f0 00 01 05 7f 31 06 62 nn f7

where nn is a preset number between 01 and 0c, or 00 for RAM

⇐ f0 00 01 05 7f 31 06 63 0a 3b nn [xx xx xx xx xx xx] … f7

xx is a 6-byte ASCII preset name

Send preset

⇒ f0 00 01 05 7f 31 06 61 0a 3b nn [xx xx xx xx xx xx] … f7

See also

code61_re.1773390692.txt.gz · Last modified: by Yuki