ACIDCAT . FILE FORMAT REFERENCE

Bitwig Wavetable Anatomy

vawt containerPolymer / Sampler
rev 2026.07
magic vawt
endian little
container own
sample 76 61 77 74

A .wt is a Bitwig wavetable: a fixed 12-byte vawt header, then raw signed 16-bit samples. The header names the length of one single-cycle wave and how many waves are stacked; the data is those waves laid end to end, frame-major, no interleave. Bitwig writes one whenever you drop a WAV onto Polymer or another wavetable device. Hover any field or byte to light its exact span and read the decode. Color marks kind, the way syntax highlighting does (see the key). Example: vawt + 2048 samples/wave + 256 waves, a real 1 MB table.

file regions

Top to bottom, what a reader walks. There is no footer: the file is exactly 12 + frame_count * frame_samples * 2 bytes.

vawt header0x00 . 12 bytes . little-endian

The whole header, drawn below as a byte map. Four fields, all little-endian: the magic, the wave length, the wave count, and the offset where samples begin.

sample data0x0C . to EOF

Immediately after the header: frame_count * frame_samples signed 16-bit little-endian samples, laid out frame-major. Wave 0's complete cycle comes first, then wave 1's, and so on. No per-wave header, no interleave. Full-scale (observed range spans the whole -32768..+32767).

formatint16 little-endian, frame-major
per-wave bytesframe_samples * 2
wave i at12 + i * frame_samples * 2
total samplesframe_count * frame_samples
file sizeexactly 12 + total_samples * 2 (no footer)
wave-length variantsframe_samples in the wild

frame_samples is not fixed. Across a 5636-file corpus, three values appear; 2048 dominates.

2048~91% . the common Bitwig / Serum-lineage resolution
256~9% . lower-resolution tables
1024rare
not vawtthe BWBM beat-map chunk lives inside a WAV; this is its own file