Skip to content

Mixing Demo Project JSON

The /mixing demo exports a small UI project file so a browser session can be saved and reopened later. It stores per-track arrangement settings — not decoded audio.

This is not the mixer scene format

This is a different exchange format from the Mixing Scene JSON reference. A scene describes a whole mixer graph — strips, buses, VCA groups, and connections — and round-trips through Mixer.toSceneJson() / fromSceneJson(). The demo project file below is a flat, per-track arrangement read only by the browser demo; the engine's fromSceneJson(...) does not accept it. If you are driving the mixer, you want the scene format, not this one.

Shape

The example below is abbreviated — it shows a representative subset of keys. A real export also carries additional top-level fields (such as reverb and vcaGains) and more per-track settings.

json
{
  "version": 1,
  "masterFaderDb": 0,
  "tracks": [
    {
      "id": "track-id",
      "name": "Lead Vocal",
      "offsetSeconds": 1.5,
      "inputTrimDb": 0,
      "faderDb": -3,
      "pan": 0,
      "width": 1,
      "muted": false,
      "soloed": false,
      "polarityLeft": false,
      "polarityRight": false
    }
  ]
}

offsetSeconds is the clip start time on the arrangement timeline; the demo pads each stem by that amount before calling the WASM mixer, so the visual start time is preserved in the offline bounce. Because the file excludes audio, re-import matches tracks by id (or name) once the audio is loaded again.