← home

Notivox

A Python engine that transcribes monophonic recordings into notes.

Notivox takes a single-line recording — a solo cello or violin, say — and turns it into a sequence of pitched note events with start/end times and quantized durations. The work so far is the transcription engine itself: pitch detection, note segmentation, and rhythm estimation.

Pitch detection

Two backends, built to compare against each other:

The CREPE path is multi-pass and onset-aware: a coarse librosa onset pass splits the audio into fast/slow regions, then CREPE runs with an adaptive step size (finer through fast passages), and a third pass re-scans long gaps at a micro step size — labeling genuine silence as rests.

Note & rhythm cleanup

Stack

Python — librosa, CREPE, aubio, NumPy, and SciPy, with matplotlib for visualizing pitch tracks. A Flask web interface (upload → transcribe) is scaffolded; for now the pipeline runs from the command line.