🎚️ AUDIO TOOLS

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.

🔒 100% local · No file leaves your browser

What's new

All posts →
May 11
piano-roll BASS pill row in the auto-play progression — Off / Roots / Walking. The walking mode plays the chord root on the downbeat then the fifth at the half-bar, anchoring the chord stack with a moving low end. Same bass synth shape as the drum sandbox. Try it.
May 11
post Velocity, twice: shipping the same idea to two different tools — per-step velocity drums → chord-progression dynamics piano roll. Same primitive, half the cost.
May 10
piano-roll DYN pill row in the progression — Flat / Crescendo / Wave. Crescendo ramps gain from soft to loud across the chord cycle (verse → chorus); Wave alternates loud / soft. Same scheduler, new per-call gain multiplier. Try it.
May 9
drums ✨ Humanize button — re-rolls velocities on the current pattern so it sounds played-by-hand. Kick downbeat + snare backbeat stay loud, hi-hat off-beats 50% chance demoted to soft. Same hits, breathing dynamics. Try it.
May 8
drums Per-step velocity (off · soft · loud) — every cell is now a 3-state instead of an on/off bit. Soft hits get 0.55× gain and a dimmer per-track tint. Old shared links default to all-loud and play identically to before. Try it.
May 7
post The drum sandbox grew up: from grid to instrument — twelve iterations on a 16-step grid without breaking the URL hash format. Round 106 links still load in the Round 144 sandbox.
May 4
drums 🎲 Surprise me random pattern — fills the 16-step grid with plausible per-track densities. Kick anchored, snare on backbeat, dense hats with gaps. Tap again for a different beat. Try it.
May 4
tuner ▶ Tone reference-pitch playback per string — hear E2 / A2 / D3 / G3 / B3 / E4 to tune by ear before mic-tuning. Useful when the room is too noisy for pickup-mode. Try it.
May 3
piano-roll ♯ / ♭ enharmonic toggle — flip C# ↔ Db, F# ↔ Gb across the chord card, chord-tone list, scale row, and diatonic palette button labels. Bb major now reads as Bbmaj7 not A#maj7. Try it.
May 3
post Flip the read: when one audio file has two right answers — half-time vs straight, ÷2 vs ×2, triad vs 7th, swung vs straight. Four toggles, one idea.
May 2
hub FAQ expanded to 12 entries — added the 70/140 BPM detector paradox, half-time vs straight-time at the same BPM, MPC swing history, and why 7th chords sound jazzier. Read FAQ.
May 2
bpm ÷2 / ×1 / ×2 BPM toggle — flip between half-time, detected, and double-time reads after analysis. Same audio, three reads, no re-analysis. Try it.
Apr 30
metronome Subdivision row — Quarter · 8ths · 16ths · Triplet. Quieter ticks between main beats so the pulse stays in front. Try it.
Apr 30
drums Swing pocket — Straight · Light · MPC · Full. Off-beat 16ths slide into the Dilla pocket at MPC, the triplet shuffle at Full. Try it.
Apr 30
piano-roll Diatonic chord palette — pick a key from 12 options, tap any of 7 buttons (I-ii-iii-IV-V-vi-vii°). Triad / 7ths toggle for jazz harmony. Try it.
Apr 30
piano-roll Inversion / slash-chord notation — C with E in the bass = C/E. Bass shown in cyan; ordinal labelled in the meta line. Try it.
Apr 30
piano-roll Chord shape diagram — one-octave SVG keyboard alongside the chord name. Root in accent, chord tones in cyan. Try it.
Apr 30
post From scale detector to chord workshop — the architecture story across 5 iterations.
Apr 29
drums Drum kit selector — Default · 808 · Lo-fi · Tight. Same pattern, four sounds. Try it.
Apr 29
drums Bassline overlay — Roots or Walking modes follow the chord progression. Try it.
Apr 29
post One scheduler, three layers, four kits — how the drums tool grew into a full beat sandbox.
Apr 29
piano-roll Type a chord name (Cmaj7, F#m7b5) → keys light up. Inverse of the chord detector. Try it.
Apr 29
post The chord workflow on a single HTML page — chord detection, progressions, auto-play.
🎼
PIANO ROLL
Scale + Chord + Progressions

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.

Open piano roll →
21 CHORDS 12 SCALES 8 PROGRESSIONS AUTO-PLAY
🥁
BPM + KEY DETECTOR
Drop a file. Get tempo + key.

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.

Open detector →
AUTOCORRELATION FFT KRUMHANSL
🎸
GUITAR TUNER
Real-time, mic-driven.

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.

Open tuner →
YIN REAL-TIME 5 TUNINGS
🥁
METRONOME
Tight click track.

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.

Open metronome →
LOOK-AHEAD TAP TEMPO SHAREABLE URL
🥁
DRUM PATTERN
Sketch a beat.

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.

Open drums →
16 STEPS 6 PRESETS SYNTHESIZED SHAREABLE URL

Common questions

Are these audio tools really free?
Yes. No signup, no paywall, no usage limits. All five tools (piano roll, drum sandbox, BPM and key detector, metronome, guitar tuner) run entirely in your browser. Audio never leaves your device, so there's no cost on our end to keep them free.
Do I need to upload my audio to use the BPM and key detector?
No. The browser decodes the audio file locally via the Web Audio API and runs all the analysis (autocorrelation for BPM, FFT chromagram plus Krumhansl-Schmuckler for key) on your device. Nothing is uploaded to a server. You can disconnect from the internet after the page loads and the tools still work.
What audio formats does the BPM and key detector support?
Whatever your browser's Web Audio decoder supports. In practice that means MP3, WAV, M4A, OGG, and FLAC on every modern browser (Chrome, Safari, Firefox, Edge).
Can I share my drum pattern or chord progression?
Yes. Both the piano roll and the drum sandbox have a Share button that generates a URL with the full state encoded in the hash. Anyone who opens the link sees the same pattern, chord progression, BPM, drum kit, and bass mode you had. The URL is also what the Save button stores in your browser locally, so you can build up a library of your own patterns.
Does the guitar tuner support alternate tunings?
Yes. Five tunings ship by default: Standard EADGBE, Drop D, Open G, DADGAD, and Bass EADG. The string-reference grid swaps when you change tuning, and the low-frequency floor adapts so a 41 Hz E1 on bass still gets recognized.
How does the metronome stay in time?
It uses the Web Audio API's look-ahead scheduling pattern. A 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?
Yes. All five tools are responsive and tested on iOS Safari and Chrome on Android. The piano roll and drum grid are tap-friendly. The guitar tuner needs a one-time microphone permission, which mobile browsers ask for the first time you tap Start.
Are the analysis results as accurate as Tunebat or other paid tools?
For BPM, our energy-envelope autocorrelation gets you within a few BPM on most tracks; we flag half-time and double-time alternates so you can pick. For key, we use the same Krumhansl-Schmuckler key profiles that academic music-information-retrieval research uses; results match Tunebat on most catalog tracks. Edge cases (mode-shifting tracks, very sparse arrangements) are harder. The detector reports its confidence so you can judge.
Why does my BPM detector say 70 BPM when the song feels like 140?
Because half-time songs share a tempo number with their straight-time read. A trap beat at "140 BPM half-time" has its snare on beat 3 (not beats 2 + 4); the snare-pulse feel is half the speed of the kick-and-hi-hat grid. The detector locks to whichever pulse is loudest in the track. Use the ÷2 / ×1 / ×2 toggle on the BPM detector to flip between reads — same audio, different counting.
What's the difference between half-time and straight-time at the same BPM?
The kick and hi-hat patterns are identical; the snare placement changes everything. In straight-time the snare hits beats 2 + 4 — the classic backbeat. In half-time the snare lands only on beat 3, doubling the perceived bar length. A vocalist gets twice the real estate per measure in half-time, which is why modern trap, drill, and DnB all live there.
What is MPC swing and where does it come from?
MPC swing is a percentage that controls how far the off-beat 16th notes shift relative to the on-beat ones. At 50% swing the grid is straight; at 66% it's a full triplet shuffle. The Akai MPC samplers from the 80s and 90s let producers dial swing in by percent, and J Dilla famously parked his around 54-58% — enough to sound human, not enough to swing fully. That's "the Dilla pocket." Our drum sandbox has the same four presets (Straight 50%, Light 54%, MPC 58%, Full 66%) wired to the audio scheduler.
Why do 7th chords sound jazzier than triads?
A triad is three notes — root, third, fifth. A 7th chord adds a fourth note (the seventh) that's just one or two semitones below the next octave's root, creating a gentle dissonance that wants to resolve. That tension is what makes maj7 sound dreamy, m7 sound thoughtful, and dom7 sound like it's going somewhere. Jazz, neo-soul, and gospel almost never play plain triads — flip the piano roll's diatonic palette to "7ths" mode to hear the difference for any key.
Why all-browser? Most paid alternatives upload your audio to a server, run librosa or essentia, and return JSON. We do the DSP in your browser instead. No upload means no privacy worry, no rate limits, no "free tier ran out" paywalls. The Web Audio API decodes the file, hand-rolled algorithms (~500 lines per tool) handle the analysis. The metronome uses the same Web Audio context to schedule clicks with sample-accurate timing — not the drift-prone setInterval approach. Read the architecture write-up in Three audio tools, four rounds, zero servers.