| Built this over the weekend to bridge the gap between "can hum a melody" and "can code algorithmic music patterns" (Strudel/TidalCycles) for live coding and live dj'ing. What it does: Real-time pitch detection in browser using multiple algorithms:
CREPE (deep learning model via TensorFlow.js)
YIN (autocorrelation-based fundamental frequency estimation)
FFT with harmonic product spectrum
AMDF (average magnitude difference function)
Outputs: visual piano roll, MIDI files, Strudel/TidalCycles code
All client-side, nothing leaves your machine
Why multiple algorithms:
Different pitch detection approaches work better for different inputs. CREPE is most accurate but computationally expensive; YIN is fast and works well for clean monophonic input; FFT/HPS handles harmonic-rich sounds; AMDF is lightweight. Let users switch based on their use case. Technical details: React, runs entirely in browser via Web Audio API
Canvas-based visualization with real-time waveform rendering The original problem: I wanted to learn live coding but had zero music theory. This makes it trivial to capture melodic ideas and immediately use them in pattern-based music systems. Try it: https://dioptre.github.io/tidal/ Works best on desktop. Will work more like a Digital Audio Workbench (DAW). Source: https://github.com/dioptre/tidal |