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 —

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.

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.