A .labx is an Arturia Analog Lab bank — and under the hood it is just a ZIP. Each entry is one preset, stored uncompressed, its path spelling out the identity: <Engine>/User|Factory/<Bank>/<PresetName>, with a cover image at the top level. The entry bytes are a Boost C++ text-serialization archive — ASCII, length-prefixed strings — carrying the preset's name, bank, author, tags, save time, and engine version. So the whole bank is legible without a binary decoder: the zip census and the per-preset metadata read straight out of the text. The tabs open the zip framing and the archive, drawn byte by byte from a real bank. Hover a field to light its bytes, click a field with a + for its table. Color marks kind (see the key).
Analog Lab is Arturia's front end to its whole V Collection — Pigments, the Piano, the Wurli, and the rest — and a .labx is a bank of presets exported from it. Open it with any unzip tool and you get a folder tree: one entry per preset, its path encoding engine, user-or-factory, bank, and preset name, plus a cover image. Every entry is STORED (uncompressed), and its content is a Boost text archive — readable ASCII. The bank below is a real one, Solstice.
.labx files..labx is a standard ZIP. The presets are STORED, not deflated, so each entry's bytes sit verbatim in the file.serialization::archive in text mode: length-prefixed strings, space-separated — legible metadata, not a binary blob.Pigments/User/'Solstice'/90s - Solstice. the path carries identity and the archive body carries the rest — two sources that cross-check each other. The preset name ends the path with no file extension, so identity comes off the path shape: any entry three or more levels deep is a preset, the shallower ones (the cover) are assets.carve of a preset's byte region is the literal Boost archive — drop it back into Analog Lab and it replays. each preset has a real offset and size, so the bank doubles as a directory of extractable presets..png/.jpg cover (the artwork you see in a store listing). It is the bank's cover image, distinct from the preset entries.Each preset sits behind a standard ZIP local file header: the PK\x03\x04 signature, a compression method, CRC, the compressed and uncompressed sizes, and the filename length — then the filename and, immediately after, the entry data. The method is 0 (STORED), so compressed size equals uncompressed size and the data is the raw archive. The map is a real preset's local header.
Hover method (0 = stored) and name_len (42 = the preset path length).
compressed_size == uncompressed_size and the bytes right after the filename are the Boost archive. seek past the local header and the metadata reads in place.A preset's bytes are a Boost serialization archive in text mode — the C++ library's human-readable format. It opens with a length-prefixed class name, serialization::archive, then a run of version integers, then the object's fields as space-separated tokens where each string is written <length> <bytes>. the preset name, bank, author, tags, save time and engine version all read straight out of this text. The map is the archive's opening bytes.
Hover len_prefix — 22, the length of the class name that follows.
22 serialization::archive means “a 22-byte string: serialization::archive”, and 20 Low Notes - Solstice is the 20-byte preset name. That length prefix is how a value containing spaces can be read without guessing where it ends.