Skip to content

Latest commit

 

History

History

README.md

Program dumps | System overview | Bytes | Byte map

M7 system-dump SysEx format

Community reverse-engineered specification for SYSTEM dumps captured while holding SYSTEM on the M7. These are I/O and routing settings — not program sound parameters. Not an official Bricasti specification.

Auto-generated by python run.py (or python -m m7_sysex export). Re-run after adding dumps under sysex/system/; do not hand-edit generated pages.

Frame layout

Observed length: 77 bytes for the captured system dumps.

Offset Size Content
0 1 F0 SysEx start
1-3 3 Manufacturer ID 00 62 63 (Bricasti Design)
4-7 4 Header 70 08 02 00 (SYSTEM family; byte 6 is 02 vs 01 on PROG)
8-71 64 System payload as nibbles (0x00-0x0F) — no program-name / register-basis region
72-75 4 Checksum: CRC-16/ARC over offsets 8-71, packed as four high-nibble-first bytes
76 1 F7 SysEx end
F0 | 00 62 63 | 70 08 02 00 | <system payload nibbles> | <4 nibble cs> | F7

Notes

  • Same nibble packing and checksum algorithm as program dumps, but a shorter message with a different header and no program-name field.
  • Each sysex/system/<series>/ folder is an independent capture stream (same convention as program parameter folders).
  • Program-dump analysis, byte map, and Kaitai spec do not include these offsets.

Series map

Series Offsets Encoding Confidence Dumps
Audio Format 15 raw_u8 high 2
Audio Routing 13 raw_u8 high 3
Display Level 21 raw_u8 high 5
Dry Gain 10-11 nibble_hilo high 9
Midi Bank 25 raw_u8 high 14
Midi Channel 22-23 nibble_hilo high 17
Output Level 17 raw_u8 high 3
Wet Gain 8-9 nibble_hilo high 8

Byte coverage

System layout is 77 bytes. Full table: byte-map.md · short overview: byte-map-overview.md. Codegen: m7_system_dump.ksy / m7_system_dump.spec.json.

Status Bytes
Known / frame / checksum 77
Secondary 0
Unknown 0

Series pages

Index with descriptions: bytes/README.md.

Capture notes

  • Audio routing: offset 13 (raw_u8); Stereo=0, Mono L=1, Mono R=2.
  • Display level: primary field @ offset 21; offset 25 also moves in this series (secondary).
  • MIDI channel: encoded 0-15 maps to channels 1-16; omni uses encoded 16.
  • Output level: primary byte at offset 17 (raw_u8 values 0, 1, 2 for UI 8/16/24).
  • Wet gain: offsets 8–9 (nibble_hilo); Off/Full are discrete; numbered settings are 0.5 dB steps from −60 dB to 0 dB (Full).
  • Dry gain: offsets 10–11 (nibble_hilo); Off/Full are discrete; numbered settings are 0.5 dB steps from −60 dB to 0 dB (Full).

Last exported: 2026-07-22

Open questions

  1. Offset 25 couplingmidi bank primary @ 25; display-level series also moves offset 25 (secondary)
  2. Rarely used SYSTEM knobs (e.g. register lock) not yet in dedicated series