Audio Transcription & Sheet Music Generation Tool

Machine Learning • Music Information Retrieval • Python Tools

Project Summary

This desktop application converts multi‑instrument audio into clean, printable sheet music. It integrates Magenta’s Onsets and Frames and DrumRNN transcription models with Spleeter for source separation, pretty_midi for quantization, and MuseScore for score generation. Users can separate stems (e.g., piano, drums), transcribe them into MIDI, and export quantized scores — all through an accessible tkinter-based GUI with drag‑and‑drop support.

Developed as my Computer Engineering senior project at Cal Poly SLO, the tool is designed for musicians, educators, and developers interested in AI-assisted music transcription.

Project GUI Screenshot

System Design & Workflow

  1. Audio Import & Conversion — Supports MP3, WAV, FLAC. Converts to 16kHz mono WAV using ffmpeg for model compatibility.
  2. Source Separation — Uses Spleeter to split into five stems: vocals, piano, drums, bass, other.
  3. Transcription — Passes selected stems into Magenta’s Onsets and Frames (piano) or DrumRNN (drums).
  4. Quantization — Uses pretty_midi to simplify rhythms and improve sheet readability.
  5. Sheet Music Generation — Calls MuseScore CLI to produce PDF sheet music from MIDI.

The GUI supports running each step independently, enabling iterative workflows — for example, retrying transcription with different stems without repeating earlier steps.

Implementation Challenges & Solutions

Results & Evaluation

Testing on piano-heavy tracks such as "Don’t Stop Believin’" demonstrated strong rhythmic accuracy and pitch detection when stems were cleanly separated. Quantization consistently reduced rhythmic complexity (e.g., unique durations), leading to more readable scores.

Drum transcription was moderately accurate for basic patterns but less reliable for cymbals and hi‑hats. Guitar transcription still requires improvement.

Example quantized sheet music output pg1
Example quantized sheet music output pg 2
Example quantized sheet music output pg 3
Example quantized sheet music output pg 4
Example quantized sheet music output pg 5
Example quantized sheet music output pg 6

Future Improvements

Explore the Project

Source code, setup instructions, and example sheet music are available on GitHub.

View on GitHub