Lo-fi track generator with automatically matched movie dialogue. Type a vibe, get a complete lo-fi track with a movie quote composed into the arrangement.
Built for ElevenLabs x turbopuffer Hack #4.
Live demo: notbumblebee-production.up.railway.app
- You describe a vibe ("forest coffee", "midnight drive", "3am thoughts") or hit Surprise me
- turbopuffer finds matching movie clips via hybrid BM25 + vector ANN search in a single multi-query call, fused with Reciprocal Rank Fusion
- Claude picks the most evocative clip, chooses a lo-fi subgenre, and edits the composition plan with specific key, BPM, chord progression, and instruments per section
- ElevenLabs Music API generates a structured lo-fi track from the composition plan — intro, groove, peak, outro
- You hear a complete lo-fi track with movie dialogue composed into the arrangement
- turbopuffer — hybrid BM25 full-text + vector ANN search (text-embedding-3-large, 3072d), reciprocal rank fusion
- ElevenLabs — Music API (composition plans + compose), Scribe v2 transcription, Sound Effects API
- Claude — clip selection, subgenre matching, composition plan editing
- OpenAI — text-embedding-3-large for semantic similarity vectors
- pydub — audio mixing, lo-fi processing (low-pass filter, reverb, ducking)
notbumblebee matches dialogue to one of 10 lo-fi subgenres:
lo-fi hip hop · chillhop · ambient lo-fi · jazzhop · lo-fi soul · lo-fi house · acoustic lo-fi · vaporwave lo-fi · lo-fi japan · lo-fi drive
- Python 3.13+
- API keys for: turbopuffer, ElevenLabs, Anthropic (Claude), OpenAI
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtCreate a .env file:
ELEVENLABS_API_KEY=sk_...
TURBOPUFFER_API_KEY=tpuf_...
CLAUDE_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
These scripts process the VoxMovies dataset (~10K movie audio clips):
export $(cat .env | xargs)
# 1. Transcribe all clips with ElevenLabs Scribe v2
python3 scripts/transcribe.py
# 2. Generate text embeddings with OpenAI
python3 scripts/embed_text.py
# 3. Ingest into turbopuffer (BM25 + vector)
python3 scripts/ingest.pyexport $(cat .env | xargs)
uvicorn src.api:app --host 0.0.0.0 --port 8000VoxMovies — 10,189 short movie dialogue clips from 861 speakers.
Brown, A., Huh, J., Nagrani, A., Chung, J.S., Zisserman, A. "Playing a Part: Speaker Verification at the Movies." ICASSP 2021.