A SoundFont is a RIFF file of form sfbk: three LIST chunks, in order. INFO holds the metadata (name, author, version). sdta holds one smpl chunk, every sample's audio back to back. pdta holds the preset/instrument/sample structure, ending in shdr, a table of 46-byte sample headers that name each sample and give its start and end index into smpl. Extracting a sample is a carve of that byte range. SF3 (MuseScore) keeps this exact layout but stores each sample as an Ogg-Vorbis stream inside smpl, marked by sample-type bit 0x10, with the shdr start/end fields repurposed as byte offsets. The record drawn below is a real shdr entry, sample "tu 13" from a library SF2. Hover any field to light its bytes and read the decode; click a field with a + to open its table. Color marks kind (see the key).
Top to bottom, what a reader walks. It is a plain RIFF tree; nothing is compressed at the container level (SF2), so the whole structure is reachable by chunk-hopping.
The outer wrapper: 'RIFF', a u32 little-endian size (file length minus 8), then the form type 'sfbk'. Everything else is a child chunk of this container.
The catalog fields, one sub-chunk each. ifil is the SoundFont spec version (2.x for SF2, 3.x for SF3). The rest are free text.
One smpl chunk holding every sample concatenated. In SF2 this is 16-bit signed PCM, little-endian; a sample is the slice smpl[start*2 : end*2]. In SF3 it is a run of Ogg-Vorbis streams; a sample is smpl[start : end], a self-contained .ogg.
The sample headers. Each record is exactly 46 bytes: a 20-byte name, five u32 indices into smpl (start, end, loop start, loop end, sample rate), then the original pitch, a correction, a stereo link, and a type. A terminal record named "EOS" marks the end of the table. The record below is the real first entry of a library SF2.
The INFO metadata, the smpl blob size, and every shdr record -- each turned into a chunk carrying its real byte offset, so samples are carveable and hex-viewable, and convert lifts them all out.