How bxnkuoch/music_gen works
Adaptive AI Music learns a listener’s preferences from pairwise song choices, then uses those preferences to select library slates and steer/rank newly generated songs. The main workflow runs from the web rating app through the FastAPI layer into personalization and persisted ratings; live requests pass through a database-backed worker queue, generation, feature extraction and ranking. Reference uploads provide a separate “more like this” path. The README documents pool generation and evaluation capabilities, but their full wiring is not established by the sampled source.
Main entry points: references.py Reference songs · db.py PostgreSQL + pgvector · worker.py Background worker · app.py HTTP API
Components 18
Listener experience
- Rating app
web/app/rating-app.tsx - Create view
web/app/create-view.tsx - Web API client
web/app/api.ts
API and personalization
- HTTP API
src/music_gen/api/app.py - Rating recommender
src/music_gen/api/service.py - Request service
src/music_gen/api/requests.py - Preference learning
src/music_gen/personalization/models.py - Slate policy
src/music_gen/personalization/policy.py
Music processing
- Background worker
src/music_gen/worker.py - Job runner
src/music_gen/pool/runner.py - ACE-Step generation
src/music_gen/generation/acestep.py - Song featurization
src/music_gen/features/pipeline.py - Audio embeddings
src/music_gen/embeddings/clap.py - Feature storage
src/music_gen/features/store.py - Reference songs
src/music_gen/references.py
Persistent state
- PostgreSQL + pgvector
src/music_gen/db.py - Audio files
Other components
- Listener
Connections 26
- Listener → Rating app: rates songs
- Rating app → Web API client: requests data
- Create view → Web API client: creates requests
- Rating app → Create view: shows view
- Web API client → HTTP API: calls endpoints
- HTTP API → Rating recommender: delegates ratings
- HTTP API → Request service: delegates requests
- HTTP API → Reference songs: stores uploads
- Rating recommender → Preference learning: fits preferences
- Rating recommender → Slate policy: selects slates
- Rating recommender → PostgreSQL + pgvector: reads and writes
- Request service → PostgreSQL + pgvector: queues requests
- Background worker → Reference songs: embeds pending
- Background worker → Job runner: processes jobs
- Background worker → Song featurization: featurizes songs
- Background worker → Request service: finalizes requests
- Job runner → PostgreSQL + pgvector: claims and saves jobs
- Job runner → ACE-Step generation: generates clips
- Job runner → Audio files: writes audio
- Song featurization → Audio files: loads audio
- Song featurization → Audio embeddings: embeds audio
- Song featurization → Feature storage: stores features
- Feature storage → PostgreSQL + pgvector: writes vectors
- Reference songs → PostgreSQL + pgvector: stores reference state
- Reference songs → Audio files: stores uploads
- Reference songs → Audio embeddings: embeds references