Ableton LiveFabFilterBass Station IIMODXTR-8Sa wall of plugins

Finishable

I own all of it — and eight years of music still wasn't getting finished.

  • losttwenty thousand fragments no tool could read
  • stalledideas gone before a project was even set up
  • doubtedmixes redone forever, because louder always wins

Songs were dying in three places, so I built three tools — one for each.

Role
Designer, builder, sole engineer
Timeline
May 2026 — present
Stack
Astro · Python · Pedalboard · FabFilter · Whisper · Claude

01the Catalog

Know what you have

Twenty thousand scattered recordings, read by sound, named, and made playable.

the problem Twenty thousand files. Four drives, iCloud, the Voice Memos vault, friends' DMs. No master list, no way to even ask what's in here.

the sweep Every file read by sound and fingerprinted; the keepers fly to the bin where they belong. Watch the pile become a shape.

deduped Same take, three names. The catalog hears that they are identical and folds the copies away. Twenty groups, gone.

a catalog 20,279 files read and catalogued; the keepers filed across five bins, the rest parked in archive or folded away as copies. Every tool I own assumes you already know what you have — now I do. Audio 14.m4a is in Tracks, waiting.

Every bin, live, in its own room: open the Catalog →

02the Studio

Play, don't fiddle

Where a found sound becomes an instrument, and an instrument becomes a track idea.

Ableton is the finish line. Nothing owned the starting line — the two a.m. minute between an idea and a playable groove.

Built first as the instrument on this site's homepage — then it demanded a room of its own.

The studio has a law now: a jam is not a song, and the room knows the difference. Everything it grows — drums, bass, chords, effects — grows toward the moment a loop earns its way into a track.

the homepage instrument
DRUMS
KEYS
BASS
drop the loop to start 120 bpm
drums
keys
bass
live inLIVE

always rolling — the jam is never lost. drag across a lane to grab a loop.

grab loops in the stream view — they land here

blocks snap to bars — build the idea, then ship it.

A synth on a MIDI cable can become a voice: the studio plays it and samples what comes back. The round trip is real on my desk; making it one press is the current build.

Since this was written the room has kept growing: drums ripped from my own hardware with a sequencer that swings, and reverb, drive, and motion as lanes you perform rather than menus you set.

0:00 / 0:04

Four bars I'd keep — an idea that now deserves finishing. send it to the engineer ↓

03the Engineer

Trust your ears

The last step: an engineer that has to beat doing nothing, blind.

LANDR and Ozone ship one fixed opinion about better. This one has to earn every move past a null baseline.

Version one was going to learn my taste from a million votes and become the best engineer in the world. That fantasy died honestly — under a blind, loudness-matched A/B it was overfitting a biased evaluator. What it left behind is a test I can't cheat. Eight rounds in, one rater — me — the only leaning that keeps repeating is restraint: the default is to do nothing. Take a round yourself:

head to toe three chains, one source — blind
⚖ loudness-matched

Sound on. You're the judge here. Listen blind, then crown one.

0:00 / 0:22 Take 1

13 switch · hold or enter to ♛ crown · r reveal · space play

Every take is loudness-matched — otherwise the loudest one always wins. There is no wrong crown, only taste.

~/automation/data/taste/jon.json
n_votes: 8warmth: −0.02air: 0.00density: −0.008restraint: +0.205note: job 219 — picked raw over treatments → +restraintnote: job 222 — chose 'clean'

an editable file, not a model — I can read it, argue with it, overrule it

warm · vocal-safe hand-built · eng_vocal_aware.py 1 crown
clean · do-less hand-built · eng_clean.py 2 crowns
bright · forward hand-built · eng_extended_chain.py 0 crowns

That restraint, live on the dial:

do less do more

Only a safe ceiling. Nothing tonal — the default does nothing.

Take the blind test yourself, any time: open the Judge →

04the record

Finish

0:00 / 0:00

Found in a junk drawer. Played like a band. Judged blind. Finished.

The system never made a note — it just kept this one alive long enough to become a song.