A Vital preset has no binary header. The whole file is one bare UTF-8 JSON object: nine metadata keys at the top, then settings, the entire synth state, with the wavetable audio riding inside it as base64. Vital is open source (Matt Tytel), so every key can be checked against the synth's own load code; everything below is verified against a real 1.0.7 preset. acidcat dispatches on the 0x7B magic plus a fast search for the "synth_version" marker before paying for a full parse. Hover any field to light its exact bytes and read the decode; click a field with a + to open its table. Color marks kind (see the key).
Regions here are JSON keys, not byte offsets. The writer sorts keys alphabetically, which puts the huge settings object before synth_version: in the sample the marker sits at byte 96,285 of 96,309, so a dispatcher has to search the whole file, not just the head.
Byte zero is the opening brace, and because keys sort alphabetically the first entry is always author. The opening bytes of the sample, Future_EGuitar.vital:
The synth state is almost entirely flat: 772 of the 776 keys in the sample are plain numbers, alphabetical, one per parameter. Even switches are floats (chorus_on = 0.0). The four structured keys are lfos, modulations, sample, and wavetables.
The most human-meaningful deep content in the file. modulations is an array of 64 slot objects, each naming a source and a destination; the slot's depth lives back in the flat parameters as modulation_N_amount (with _bipolar, _power, _stereo, _bypass beside it). One real entry from the sample, slot 3, drawn byte for byte:
Each wavetable nests groups > components > keyframes, and every keyframe carries the raw audio of one single-cycle frame as base64. This is where the bytes go: the first wavetable alone is 22 KB of the sample's 96 KB.
Plain JSON means the reader's job is dispatch and selection, not decoding.