Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Musical Mashup

Web app that produces a mashup of two songs by transferring the melody of Song A onto the timbre and rhythm of Song B.

Architecture

Component Tech Hosting
Frontend React + Vite Cloud Run
API FastAPI Cloud Run
Job queue Cloud Tasks → Pub/Sub
Worker FastAPI GCE g2-standard-8 MIG (scales to zero)
Object storage GCS bucket mashup-audio (input/, output/)
Job state Firestore

Inference pipeline (worker)

  1. Demucs v4 stem separation on Song A and Song B
  2. Basic Pitch — extract MIDI from Song A's melody stem
  3. Librosa — beat tracking on Song B
  4. DDSP timbre transfer — synthesize Song A's MIDI using Song B's instrument timbre
  5. Mix synthesized melody with Song B's drum stem
  6. Upload result to GCS; update Firestore

Repo layout

.
├── frontend/   # React + Vite UI
├── api/        # FastAPI service: uploads, job submission, status
├── worker/     # FastAPI service: pulls from Pub/Sub, runs the pipeline
└── infra/      # Terraform for GCP resources

See each subdirectory's README.md for component-specific notes.

About

Try mashing up the melody of one song with the style and background of another

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors