When ever you switch or save presets from the hardware, the synth sends two sysex messages. They both start with a common header:
F0 00 21 07 64 CMD PATCHNO
Where CMD is 02 on the first message and 03 on the second and PATCHNO is 0-15 for the patch number.
Testing seems to suggest that sending the exact same messages will do nothing. So maybe the Hardware doesn't support saving patches via SysEx, which would be a shame. I'm looking forward to the announced apps to spy on them.
Message Two: Patch Name
The second message is simple, so let's get that out of the way first: It's the patch name.
I have no idea of what's the limit on this, I need to test it, but I would assume something like 16 bytes sounds reasonable. Also, keep in mind that this is 7 bit, so only ascii, I guess.
Message One: Patch Data
The patch data message contains all params of the current patch. By experimentation, I have managed to decode all of them. The message contains 32 bytes and I assume that the last byte, which is zero for all presets I've looked at so far, is reserved.
The patch format maps all parameters described in the manual, with the notable exception of the headphone volume, which kinda makes sense.
All offsets are relative to the header, so 0 means the 8th byte (byte 7 with zero index).
|Waveform OSC 1
|Waveform OSC 2
|Amp EG Attack
|Amp EG Release
|Filter EG Attack
|Filter EG Release
|Filter EG Invert
|Amp EG Decay
|Amp EG Sustain
|Filter EG Decay
|Filter EG Sustain
|Delay MIDI Sync
|Reserved (always 00)
Messages to send to Craft
Update! Today, Craft published the first version of the companion app and since a Mac version now exists, I was able to find out how to save patches to the Craft and more.
Make LEDs blink
I am not 100% sure of the purpose of these messages, but my guess is that they really are just there to make the four LEDs blink in an interesting way to confirm actions.
F0 00 21 07 64 06 0x y0 F7
The only messages that the App seems to send are
06 20 and
08 20. From experimentation I can say that
0x is the pattern (06 is a circular pattern, where as 08 is a flashing pattern) and
y0 is the number of animations that should be played. The lower nybble doesn't seem to do anything.
Save a patch
F0 00 21 07 64 08 01 0x F7
0x is the slot that you want to save the patch in. (since there are 16 slots, this goes from
This saves the current state of all parameters to a preset slot. There is no way (not that I found at least) to explicitly save a set of parameters.
The Craft answers this message with the two messages described at the top and what seems to be some sort of "Save Confirmed" message:
F0 00 21 07 64 08 02 0x F7
The obvious omission from this is that there doesn't seem to be a way to save a patch name on the device, despite the fact that the device reports names for the factory patches. If you save a patch, the patch name is automatically set to
User Patch 0x and reported back as such. Such a shame.