Repository navigation
∞ TAPEDECK v0.1 — the radio that never runs out
Turn a folder of songs into a radio station that never ends — fully local AI music generation on one consumer GPU, taste-modeled from your own library.
What v0.1 does
- Stations = folders. Your whole library, or twelve songs that define a 2 a.m. mood — each becomes an infinite Pandora-style station (under 24 tracks skips clustering: the folder is the mood).
- Learns your taste, rejects its own misses. librosa features + CLAP embeddings distill your collection into taste veins; every generated take is scored against your corpus before you hear it, with self-calibrating thresholds, an adaptive bar that eases on rejects and snaps back on success, and essence cards that rewrite themselves when a vein keeps failing — no genre ever sits out.
- The radio is never silent. Empty spool serves labeled archive replays while an emergency take cuts; the first two takes into an empty spool always run full quality — the demo moment is protected.
- One GPU, many tenants, zero babysitting. Generation, an optional local LLM (captions + sung lyrics with real structure), and the optional Music Flamingo captioner time-slice a single 16 GB card via duty cycles, watchdogs, and a persistent pre-written bundle queue. A hard cap keeps sung takes ≤ 25% of the spool (configurable).
- A cassette deck that tells the truth. Spinning reels wind black tape from real ledgers (unplayed left, played right), VU meters ride the actual signal, a press-speed gauge shows measured ×realtime, and a card-ownership readout names who is spending the GPU right now.
Requirements
Linux · Python 3.12 · 16 GB NVIDIA GPU (RTX 4080/5080 class) · ComfyUI 0.33+ · MiniMax Music 3 weights (~14 GB). Local LLM endpoint and AI captioning are optional — the radio degrades gracefully without them.
See docs/INSTALL.md.
Honest numbers (reference: RTX 5080)
Generation runs slower than realtime (~0.6–0.8× per unique song, int8 DiT): the radio banks a spool while your GPU idles and spends it while you listen. Expect ~2 hours of fresh music per idle overnight. Quality-first defaults; every speed knob (dit_model, steps, starved_steps, …) is config.
Known gaps
- README screenshot pending; packaged install path not yet walked on a clean machine — extracted from a working daily-driver install. Issues welcome.
- Model licenses are yours to respect: Music 3 (MiniMax Community License), Music Flamingo (NVIDIA non-commercial).