← back to selected work resume →
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 to present
Stack
Astro · Python · Pedalboard · FabFilter · Whisper · Claude

01AudioDex — the 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, fingerprinted, and flown into the bin it actually belongs in. 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 Twenty thousand two hundred seventy nine files, read and filed. Every tool I own assumes you already know what you have — now I do. Audio 14.m4a is in Tracks, waiting.

Voice Memos
Name Date Modified
how the Mac sees it

Fire the kiln on the selected voice memo to forge its catalog entry.

Catalog standby
Field Rooftop, 6am: the city before the traffic
21:38
Summary

Pure field capture. Twenty minutes of a city waking up before the cars take it over. No part to keep, but the low hum underneath would bed a pad beautifully.

0:00[wind across the mic]

4:12[a train, far off]

11:50…first cars.

18:30[one bird, three notes, close]

field recordingcity6amtextureauto-filed
Track Audio 14.m4a head to toe ★ 1 keeper
3:48
Summary

A phone memo, recorded once at 2am, never re-recorded. The audio is rough and it does not matter: the take is the song. Filed, titled, and kept so it could actually get finished.

0:00…okay, just play it, don't fix it.

0:41…head to toe, that's the line.

1:12[humming the next part]

1:31…leave it. that's the one.

voice memo2amone takethe keeper
Inbox Note to self: drop the bridge out, don't build it
0:48
Summary

Not a song. Me talking through a fix for a track I'd left half-open: pull everything but the vocal for two bars before the last chorus. Filed so I'd actually find it again.

0:03okay, the bridge. the bridge is too much.

0:19drop it out. just the vocal, two bars, right before the last chorus.

0:35then slam back in. that's the move. don't forget this one.

voice memonote to selfmix ideatracks
what the catalog understands

02Signal Studio — the workshop

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 refused to stay a toy.

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.

Any instrument with a MIDI port can become a voice — the studio plays it, samples the return, velocity and all.

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

03Richard — the engineer

Trust your ears

The last step — and the live frontier: an engineer that develops the more it gets used.

LANDR and Ozone ship one fixed opinion about better. This one is growing its own — blind round by blind round.

Version one was going to learn my taste from a million votes and become the best engineer in the world. That fantasy died honestly — what it left behind is a test I can't cheat, feeding an engine that develops through use. 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:00 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 crowns
clean · do-less hand-built · eng_clean.py 2 crowns
bright · forward hand-built · eng_extended_chain.py 0 crowns

Its strongest leaning so far is restraint — the default is to do nothing:

do less do more

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

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.