Limitless Audio Format
All values are little endian.
9 bytes | LIMITLESS |
---|---|
Anything | Empty space of unknown length reserved for later specification. |
4 bytes | HEAD |
1 byte | Quality (all qualities are little-endian): 0: 8-bit integer 1: 16-bit integer 2: 32-bit floating point 3: 24-bit integer |
1 byte | Mode: 0: Channel mode: individual spatial channels are exported, playback requires the same specific setup, but no processing is needed. 1: Object mode: individual objects are exported to be mixed later to any speaker setup. |
4 bytes | Channel/object count. |
9 bytes for each channel/object | 4 bytes - rotation on X axis (32-bit float), 4 bytes - rotation on Y axis (32-bit float), 1 byte - low frequency (8-bit boolean, 0 if false). |
4 bytes | Sample rate. |
8 bytes | Total samples. |
The rest | Blocks for each second. Each block begins with channels/objects / 8 (rounded up) bytes: each bit in this byte array shows if a channel has samples or not in the current block. Bits are high-ordered and right-aligned, while bytes are low-ordered (for 12 channels: 8-7-6-5-4-3-2-1, ----12-11-10-9). After these, the samples follow for each channel which was declared active in the previous byte array, frame by frame, each frame containing a sample for each active channel, in ascending channel order. |