A .multisample is a ZIP: a multisample.xml zone map plus the member sample WAVs. The manifest binds each sample to a key range, root note, velocity layer, and loop, how a multi-sampled instrument is packaged into one file. It is the one Bitwig type not identified by leading magic (it shares PK with any zip), and Bitwig writes a mismatched CRC that trips a naive reader. Color marks kind (see the key). Pure stdlib to read: zipfile + xml.etree.
A ZIP: a manifest plus the member samples. No fixed byte header, so it is described structurally.
Standard ZIP local-file-header magic. This is the one Bitwig type not identified by leading magic alone (a JAR or any zip shares PK); acidcat peeks the central directory for multisample.xml to confirm.
Bitwig writes each entry with a CRC-32 that does not match the data, so Python's ZipFile.read raises BadZipFile. acidcat reads entries by seeking past the 30-byte local header (plus filename + extra), bypassing the CRC check. The central directory, and namelist(), are unaffected.
The manifest: an instrument name and a list of
Ordinary WAVs (occasionally FLAC/AIFF), stored in the zip. Each can itself be walked by the WAV walker after extraction; the multisample layer is purely the zone map over them.