==== Multimode ==== In addition to the outdated sysex documentation, at least in firmware 1.15, a protocol for the multimode is implemented ^ Label ^ Value ^ Description ^ | MULR | 01h | Multi Request | | MULD | 11h | Multi Dump | ==== User Wavetables ==== ^ Label ^ Value ^ Description ^ | WTBD | 12h | Wavetable Dump | A wavetable dump is used to transfer wavetable data to the Blofeld. Each wavetable is transferred as 64 consecutive wave dumps. ^ WT ^ WN ^ Location ^ | 50 | 00..3F | Wavetable 80, Wave 1..64 | | 76 | 00..3F | Wavetable 118, Wave 1..64 | ==== Sample Code ==== Convert a 21 bit signed integer (provided in three 7-bit characters) into a 32 bit signed integer http://stackoverflow.com/questions/11704309/how-to-build-a-negative-32-bit-integer-from-bytes-without-a-range-check-error uint32 sample = (sysex[kWavetableDataOffset + index * 3 + 0] << 14) | (sysex[kWavetableDataOffset + index * 3 + 1] << 7) | (sysex[kWavetableDataOffset + index * 3 + 2] << 0); if (sample & 0x00100000) { sample |= 0xfff00000; } curWavetable.data[wave][index] = (int)sample;