User Tools

Site Tools


code:goftersysex

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;
code/goftersysex.txt · Last modified: 2015/11/19 15:00 by michfiel