Strata

Solo buildhardware + software + brandoperational at NO SIGNAL

Live

A real-time DJ setlist capture system. A small device in the booth reads track data from the CDJs as music plays, notifying the producer of each track the moment it's played — where, by whom, in what set — and writing every set into a permanent public archive. Infrastructure for creative attribution in a culture that has long protected the DJ's curation by keeping the producer off the record.

  • Raspberry Pi
  • Node.js
  • SvelteKit 5
  • Svelte 5 Runes
  • Three.js
  • Supabase
  • OSC
  • Tailwind v4
Pi reads Pro DJ Link signals, publishes onto a typed in-process bus, and fans out to supabase writer (extendable ie OSC to ESP32s). Disk-backed NDJSON queue absorbs network drops.

Why this exists

DJ culture sits in a strange paradox. It is one of the most influential forms of music curation in the world — millions of people experience music primarily through DJs — and one of the least documented, attributed, and legible parts of the music industry. The live DJ set leaves almost no legible record of itself.

Strata is a small device installed in a DJ booth that listens to hardware signals as music plays and writes a timestamped record of the set to a public web archive. The DJ never touches it; the capture happens as they play.

The product exists for credit and preservation. Producers become known, heard and seen, promoters can cite a setlist, listeners can find tracks they heard live, and the DJ has a public log of what they actually played.

The engineering

The system is built to fail gracefully and remember everything.

A Node.js service on the Pi speaks the Pioneer Pro DJ Link protocol over a dedicated ethernet interface — a network deliberately routed with no default gateway, so it only ever talks to the CDJ switch. Track and beat events publish onto a typed in-process bus that fans out to Supabase for the public archive. Extendable to OSC over UDP to TouchDesigner and Resolume for projection, OSC over UDP to ESP32s for kinetic hardware, and JSON over USB serial to an Arduino at 115200 baud.

When the venue’s WiFi drops, no event is lost. A disk-backed write queue serialises every Supabase write to an NDJSON file using an atomic tmp+rename pattern that survives power loss mid-write. A flush loop replays pending entries with exponential backoff. The Pi authenticates itself via a hardware fingerprint check; if the check fails, the process exits rather than corrupt the archive.

A recent phased refactor

Moved the system from a Pi-owned session lifecycle to a tracks-first model. Every track event is now stamped at write time with `venue_id` and `pi_device_id` resolved at auth, and gated through a Supabase Row-Level-Security chain (`pi_auth → pi_devices → venue_id`).

A single architectural change eliminated an entire class of silent set-end RLS failures the previous architecture produced in production, and moved set boundaries to the web admin and separated the concern of tracks vs set managementfor the kiosk touchscreen - interactions propagate only to creating and editing sets (start, end, rename).

Two artifacts, not two breakpoints

The desktop archive and the booth touchscreen share a palette and typography but use them for very different jobs.

The desktop viewing experience at strata.permaflux.studio leans on layered WebGL shaders and motion that reads like weather — its job is to carry the brand.

The Pi touchscreen (4.3″, 800×480, in the booth) is the operational inverse: high-contrast, large tap targets, near-zero motion, no chrome. A DJ uses it under stage lighting in 1.5 seconds per interaction.

They live at two different URLs and don’t share a component tree.

A second way of seeing

Tracks in the timeline can be colored two ways. State mode (the default) tells you when — phosphor green for live, cooled past-blue for deposited strata. Camelot mode tells you what — coloring each track by its musical key using the 24-position circle-of-fifths system popularised by Mixed In Key.

A set that walks 8A → 9A → 10A reads as a visibly cohesive harmonic gradient. A set that jumps from 2B to 7A reads as a dramatic cut. Coloring by key turns the timeline into a harmonic map of the set.

Typography as a found object

The display and body type is Faune, designed by Alice Savoie in 2018 — and commissioned for, and still used in, exhibition signage at France’s national natural-history museum.

The brand’s guiding physical object is a stratigraphy caption in a dim-lit vitrine. The typeface’s literal original use is the same object. It was chosen because it was already that thing, not because it looked the part. Faune loads from CNAP’s official CDN; attribution lives in a small Colophon component anchored to every page.