Skip to main content

The Specification

The LIFE format specification defines the structure, encoding rules, and conformance requirements for .life files.

Version 1.0 was published on May 5, 2026. It is the first formal definition of the format.

Download

LIFE-Specification-v1.0.pdf


Structure

A .life file is a UTF-8 encoded JSON document containing three required sections and one optional section.

{
"preamble": { ... },
"codec": { ... },
"events": [ ... ],
"extensions": { ... }
}

Each section has a specific purpose:

  • Preamble - the self-describing header. Contains the format version, scaling method, reference frequency, and target spectrum. A .life file must be interpretable from its preamble alone.
  • Codec - the translation rules. Defines how source frequencies map to target frequencies and back.
  • Events - the data. A time-ordered sequence of frequency states expressed as harmonic ratios.
  • Extensions - reserved namespace for future capabilities. Unknown extensions are silently ignored.

Design principles

The specification was designed around five principles:

  1. Relationships over absolutes - frequencies are ratios, not Hz values
  2. Self-describing - no external reference required to decode
  3. Reversible by default - translation is always lossless unless explicitly marked otherwise
  4. Extensible without breakage - unknown fields are ignored, not errors
  5. Human readable - JSON is the canonical format, not binary

Versioning

The specification uses semantic versioning. Minor versions add optional fields. Major versions may alter structure. All 1.x files are parseable by any 1.x parser.

Licence

The LIFE specification is released into the public domain. No permission is required to implement, extend, or build upon it.