Skip to content

dj-incarnadine.org

Incarnadine

Alternative tango, mixed with intention — and the toolkit that makes it possible.

The idea

An alt-tango set lives or dies on its transitions. Every song is a small move away from the last one — a little more energy, a step less traditional, a slower pulse — and a great set is a long chain of moves that each feel inevitable. Incarnadine turns that instinct into software: every track in the library is scored on five dimensions, and during a set the console proposes the handful of most interesting next moves instead of a wall of search results.

Five dimensions

Traditionality

From Golden Age orchestras to music that was never tango at all — the axis an alt set actually travels.

Energy

Driving intensity, from barely-there ambient to relentless rhythmic push.

Romance

Lyrical and melodic warmth — swooning to cold and abstract.

Juiciness

The signature dimension: texture, dynamics, surprise — how much music a dancer has to play with.

Tempo

Recorded as true BPM, folded to the danced pulse — a vals at 180 reads as the 60 the floor feels.

The live console

Pick an opener; the engine scans the whole library and deals four to eight candidate cards, each labeled with its dominant move —+energy−tradslower — pulling in genuinely different directions. Click to queue a few songs ahead, reorder with the mouse, and capture a note mid-song without breaking stride.

The Incarnadine console: now-playing card, queue, set stats, and a board of eight candidate cards with move labels and BPM badges
Mid-set: eight direction-diverse candidates off a Tom Waits waltz, filters leaning +trad / +energy.

The engine watches the set, not just the song: after a sustained energy climb it offers a release; when the night drifts too traditional or too alt, it nudges back. Tracks already played tonight never resurface, recent sets decay slowly, and repeat artists get buried. A sparkline, traditional share, and set history keep the whole arc in view.

Now-playing card with album art, danced-pulse BPM badge, move chips and a track note, beside the queue and per-dimension set trend charts
The now-playing card — danced-pulse BPM, move chips, notes — with the set's trajectory charted per dimension, queued moves dotted ahead.

Playback drives the Spotify desktop app directly — songs end in a clean hard gap, never a crossfade, and never bleed into the next album track. Mid-set there are no tokens to expire and no network to trust: with the library mirrored to one offline playlist, the venue's wifi can die and the music doesn't.

The library

Built in conversation. Playlists import from Spotify into one SQLite file; Claude enriches each track from tango domain knowledge — and flags what it doesn't confidently know rather than guessing. The DJ's corrections are sticky forever. A registry tracks every source playlist as imported, partial, or blocked, so a flaky connection leaves an honest record instead of a silent gap.

Under the hood

Bun, React, and tRPC end to end; Drizzle on bun:sqlite; AppleScript to command Spotify; lasertag for styling. One process, one database file, one browser tab — and every scoring weight in a single constants block, calibrated set by set.