Metronome
{{ bpm }} BPM
Auto-tempo trainer

Introduction:

A metronome steadily marks musical time so performers internalise tempo, rhythm and phrasing. Reliable clicks free attention for articulation, dynamics and expressive nuance while maintaining ensemble cohesion.

This browser-based metronome generates audio pulses and animated gauges from any modern device. You set tempo in beats per minute, choose subdivisions and swing percentages, accent the first beat, and even schedule automatic tempo shifts to build speed safely.

Use it to practise scales, tighten ensemble grooves or guide studio overdubs; one tap turns silent counting into an exact audible guide.

Technical Details:

Foundational Principles

The tool schedules future audio events with a short look-ahead window, ensuring each click starts within a few milliseconds of its ideal timestamp despite thread latency. A Web Audio oscillator or noise buffer produces the sound, routed through a master gain node for volume control. Visual feedback derives from a small data buffer that a lightweight charting layer redraws at animation-frame pace. All logic executes client-side; no data leaves the device.

Formula Overview

Variables & Parameters

SymbolMeaningUnitTypical RangeSensitivity
BPMTempobeats /min20 – 400linear
nSubdivision level1 – 4inverse
sSwing factor%0 – 70affects odd 8ths/16ths
ΔAuto-incrementBPM-20 – +20stepwise
NBars per stepbars1 – 16intervalic

Scoring & Categorisation

  • Largo ≤ 60 BPM
  • Andante 61 – 108 BPM
  • Moderato 109 – 120 BPM
  • Allegro 121 – 168 BPM
  • Presto > 168 BPM

Representative Calculations

Example 1 – straight eighths
t=601202=0.25s

At 120 BPM with eighth-note subdivision, each click is 250 ms apart.

Example 2 – 30 % swing

Odd subdivisions lengthen by 0.30 × t; even shorten accordingly, keeping the bar length unchanged.

Edge Cases & Assumptions

  • Minimum tempo clamps at 20 BPM slow-limit
  • Maximum tempo clamps at 400 BPM
  • Swing has no effect on quarter-note mode
  • Auto-trainer skips increments if they would exceed limits
  • Long tap gaps reset tap-tempo averaging

Performance & Stability

The scheduler maintains O(1) complexity by pushing fixed-size events into the queue. A 100 ms look-ahead balances timing precision with CPU load. All processing uses native browser APIs, so performance scales with device capabilities while remaining offline-capable.

Step-by-Step Guide:

Follow this flow to create a personal click track.

  1. Enter a tempo or press Tap four times to capture it.
  2. Select a preset subdivision and, if desired, set Swing.
  3. Open Advanced to adjust beats-per-bar, volume and voice.
  4. Enable the auto-tempo trainer, choosing increment size and bar interval.
  5. Press Start; stop any time to reset.

FAQ:

What browsers are supported?

Any modern browser with Audio Worklet or ScriptProcessor support handles the timing engine; mobile and desktop are equally compatible.

Is my data stored?

No. All parameters stay in the address bar or memory and never leave your device.

Why does tempo change suddenly?

The auto-trainer bumps tempo after the chosen bar count. Set increment 0 BPM to disable this behaviour.

How accurate is the click?

The engine timestamps each click ahead of playback, achieving sub-5 ms accuracy on typical hardware.

Can I accent other beats?

Accent is currently fixed on the first beat. Duplicate browser tabs for polymetric practice.

Glossary:

Beat
Basic pulse that defines musical time.
BPM
Number of beats occurring in one minute.
Subdivision
Division of a beat into equal smaller values.
Swing
Deliberate delay of off-beat notes for feel.
Auto-trainer
Feature that raises or lowers tempo at set bar intervals.
Accent
Stronger emphasis on a designated beat.
Gain
Audio amplitude multiplier controlling loudness.

No data is transmitted or stored server-side.

Embed this tool into your website using the following code: