Version: 1.3.0 Last updated: 2026-07-27 Companion to: /spec
1. v1.0.0 — what works today
Everything below is live in the app right now, on real audio, with all four external APIs wired.
Auth & library
- Email / password + Google sign-in via Lovable Cloud.
- Route-gated
_authenticated/*subtree redirects to/auth. - Personal track library with upload; every row is RLS-scoped to
auth.uid(). - Upload limits enforced up front: audio only, 50 MB, 12 minutes.
Analysis pipeline
- Runs server-side. Close the tab, close the laptop — the job keeps going, advanced every minute by a scheduled tick.
- Stages are forward-only and idempotent: submit → poll → derive → interpret → enrich → done, each with its own timeout ceiling.
- Every transition is written to an event ledger the user can read on the track page, including failures, skips, and retries.
Music DNA layer
- L1 Measured — key, BPM, time signature, chord progression, section timestamps, loudness. Solid borders signal "confidence 1.0".
- L2 Derived — energy curve, section loudness, harmonic complexity, vocal presence, stereo width, Roman-numeral chord movement with common-name mapping ("Sensitive Female Progression"). Dashed borders signal "derived, ~0.9".
- L3 Interpreted — genre, sub-genre, mood adjectives, era feel, "sounds like" references, plain-English why per tag. Muted borders signal "interpreted, ~0.7".
- Every blob is versioned by
METHODOLOGY_VERSIONand stamped with its provider, so re-analysis is deterministic and auditable.
Telling the truth about the numbers
- Tempo reconciliation across Fadr, MusicAtlas, and the derived curve, with half/double-time detection.
- Disagreements are shown, not hidden — when two providers differ on key, BPM, or loudness, you see both.
- Grounding guard on interpretation: a claim that contradicts the measured layer never reaches you.
- Anything not measured says not measured. No invented defaults.
Chat + hands-free voice
- Five specialist agents: Chord Coach, Producer, Lyricist, Reference Scout, Blueprint Architect.
- Per-track threads and a global chat page with a sidebar of every session; thread IDs are URL-first, so refresh restores the exact conversation.
- Tools:
get_track_dna,search_tracks,compare_tracks, all server-side and user-scoped. - Deepgram STT + Aura-2 TTS with a VAD hands-free loop and quiet / normal / loud-studio sensitivity presets. Voice is selectable per agent.
Create
- Blueprint, Suno prompt, and chord variations generated from the track's DNA.
- ElevenLabs 30-second DNA-seeded sketches, each ratable 👍/👎 — that feedback trains your profile.
Corrections and memory
- Every DNA tag has a "this is wrong" affordance. Corrections are logged and applied as overrides on future reads, and aggregate into a per-user profile that steers later interpretation and creative output.
Visuals
- DNA Helix, Energy Ribbon, Chord Constellation, Section Contact Sheet, Confidence Weather — all driven by the data, none decorative.
Your data
- Delete a track and its audio, DNA, events, corrections, artifacts, and chats go with it.
- Delete your account and everything above goes, for every track, plus your storage folder and login.
Docs, trust & ops
- Public spec at
/specand roadmap at/roadmap, both downloadable as Markdown. - Terms and Privacy name every processor that touches uploaded audio.
- Personal admin at
/admin: library totals, methodology version, API-readiness matrix, 30-day USD cost meter. - Per-user daily spend caps on every paid provider; paid paths fail closed.
2. Waiting on APIs
Scaffolded and flag-gated — no rewrite required when the data arrives.
- Reference Scout Nebula — needs MusicAtlas embeddings for a 2D taste map of your library.
- Stem Cross-Section — needs per-stem waveform data rather than preview URLs alone.
- Snippet Sculpt — needs snippet iteration history.
- Lyric Prosody River — needs a lyrics extraction pipeline.
- Hum-to-analyze and live reference listening — need voice isolation on user input and per-stem querying.
3. Planned
- Per-account voice preference — move the voice choice off the browser onto the account.
- Comparison mode — two tracks side-by-side, radar chart, LLM narrates the gaps.
- Python-based L2 metrics — rhythmic density, groove micro-timing, MERT embeddings, Essentia mood.
- MIO relationships —
inspired_by,derived_blueprint,cover_of,practice_version. Turns "reference → my song" into first-class data. - pgvector similarity — "songs like this one", meaningful past ~50 tracks.
- MIO export bundle — auditable download (DNA + corrections + confidence + relationships).
- Cyanite provider (Plan C) — commercial-licensing escape hatch; interface exists.
- v2.0 canonical rename — MIO / MRE / Music Memory vocabulary in code, gated on real paying users.
4. Explicitly non-goals
- Not a DAW. We do not replace Logic, Ableton, or FL Studio.
- Not a distribution platform. We do not publish to Spotify.
- Not a stock-music library. Snippets are sketches, not licensed cues.
- Not a general chatbot. Every agent is scoped to songwriting.
This roadmap is the source of truth for what's shipped vs. what's coming. When it changes, bump `APP_VERSION` in `src/lib/app-version.ts`.