Skip to content

∞ TAPEDECK v0.1 — the radio that never runs out

Choose a tag to compare

@CharlesMod CharlesMod released this 14 Aug 21:50
· 40 commits to main since this release

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).