Five free audio tools, all browser-only.
A piano-roll scale + chord detector with auto-play progressions, a BPM + key analyzer, a real-time guitar tuner, a tight Web Audio metronome, and a 16-step drum pattern player. No signup. No upload.
What's new
All posts →Tap notes for scales and chord names (21 chord types matched by Jaccard similarity). Pick a progression — I-V-vi-IV, ii-V-I, i-VI-III-VII, blues, Andalusian — and hit play; the page cycles each chord at your tempo using the same Web Audio look-ahead scheduler the metronome uses. Shareable via URL hash.
MP3, WAV, M4A, OGG, FLAC. The browser decodes the file, builds a 200Hz energy envelope, autocorrelates it across 60–200 BPM lag space, and slides an FFT chromagram against all 24 Krumhansl-Schmuckler key profiles. Half/double-time tempo alternates and key confidence in the result panel.
One-time mic permission, then the tuner reads the audio stream ~50 times a second. Hand-rolled YIN pitch detection finds the fundamental. Cents-off needle, color-coded state, string highlight that follows your tuning — Standard, Drop D, Open G, DADGAD, or Bass.
Web Audio look-ahead scheduler — sample-accurate timing the JS thread can't drift. 30-300 BPM, accented downbeat, four time signatures (4/4, 3/4, 6/8, 5/4), tap-to-set tempo. Spacebar starts and stops. Shareable via URL hash.
16-step grid, four tracks (kick / snare / hihat / open hat). Each hit synthesized on the fly — kick is a sine with a pitch envelope, snare is filtered noise + tone, hats are high-passed noise bursts. 6 presets (boom-bap, trap, drill, house, half-time, bounce) and the same look-ahead scheduler the metronome uses.
Common questions
Are these audio tools really free?
Do I need to upload my audio to use the BPM and key detector?
What audio formats does the BPM and key detector support?
Can I share my drum pattern or chord progression?
Does the guitar tuner support alternate tunings?
How does the metronome stay in time?
setInterval fires every 25 ms and checks
whether the next click should play within a 100 ms window;
if so, it queues the click on the audio thread at a precise
audioCtx.currentTime. The audio thread handles
the actual timing, so the click track stays sample-accurate
even when the JS thread is busy.
Do these tools work on mobile?
Are the analysis results as accurate as Tunebat or other paid tools?
Why does my BPM detector say 70 BPM when the song feels like 140?
What's the difference between half-time and straight-time at the same BPM?
What is MPC swing and where does it come from?
Why do 7th chords sound jazzier than triads?
setInterval approach. Read the architecture
write-up in
Three audio tools, four
rounds, zero servers.