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.
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.
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).
Offset | Parameter |
---|---|
00 | Waveform OSC 1 |
01 | OSC mix |
02 | Detune |
03 | Spread |
04 | LFO Rate |
05 | LFO Depth |
06 | Filter Resonance |
07 | Filter Cutoff |
08 | Distort Amount |
09 | FM Amount |
10 | Fine Detune |
11 | Delay Amount |
12 | LFO Shape |
13 | LFO Destination |
14 | Delay Time |
15 | Delay Feedback |
16 | Waveform OSC 2 |
17 | Amp EG Attack |
18 | Amp EG Release |
19 | Filter EG Attack |
20 | Filter EG Release |
21 | Filter EG Invert |
22 | Amp EG Decay |
23 | Amp EG Sustain |
24 | Filter EG Decay |
25 | Filter EG Sustain |
26 | Octave |
27 | Scale |
28 | Glide Amount |
29 | Filter Morph |
30 | Delay MIDI Sync |
31 | Reserved (always 00) |
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.
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.
F0 00 21 07 64 08 01 0x F7
Where 0x
is the slot that you want to save the patch in. (since there are 16 slots, this goes from 00
to 0F
)
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.