Always 7027 bytes total
Start Value Bytes Description
0 0xF0 1 SYSEX Start 1 0x00 1 Europe/USA ID 2 0x20 1 Europe ID 3 0x3C 1 Elektron Music Machines MAV ID 4 0x03 1 Monomachine ID 5 0x00 1 Base Channel (Padding)
6 0x5D 1 Digipro waveform dump ID
7 0x01 1 Version 8 0x01 1 Revision
9 1 Wave Position in Digipro manager (0x00 to 0x3F)
10 4 ASCII Name
14 7008 Bytes of payload data
7022 1 Checksum (bit 7 to 13) 7023 1 Checksum (bit 0 to 6)
7024 0x36 1 Message length (bit 7 to 13) 7025 0x69 1 Message length (bit 0 to 6)
7026 0xF7 1 SYSEX end
Payload is encoded into 876 packets of 8 bytes each, with each packet encoding 7 bytes of the waveform data.
The first bit of each byte is always zero due to sysex constraints and the first byte of the packet contains just the MSB bits for the remaining 7 data bytes that had to be dealt with because of this.
Given the following 8 bytes of payload data: 0x4D 0x1A 0x0A 0x0A 0x43 0x19 0x0A 0x67
The first byte 0x4D would be 0100 1101 as binary, so ignoring bit 1, that means that the unpacking would look like this.
payload byte | byte number | | msb bit | | | binary decoded | | | | | v v v v v 0x1A 1 1 0001 1010 0x9A 0x0A 2 0 0000 1010 0x0A 0x0A 3 0 0000 1010 0x0A 0x43 4 1 0100 0011 0xC3 0x19 5 1 0001 1001 0x99 0x0A 6 0 0000 1010 0x0A 0x67 7 1 0110 0111 0x87
In this way, the payload actually encodes 6132 bytes of waveform data.
The Waveform data seems to have three sections, with the bytes interleaved with one another.