Local browser workflow

Run an Online BPM Counter Session

Record the next tap

A full tap sequence feeding recent and complete interval statistics

online BPM counter

Enter a value. The result updates while you type.

active values stay in browser memory only. No audio, microphone, file, URL, device listener outside the focused controls, API, account, database, analytics vendor, localStorage, sessionStorage, cookie, or network payload. No sign-in or ads.

Result

Start entering values to see the result.

Reviewed concrete example

Establish the event before the rate

An online BPM counter is only as interpretable as the event you choose to tap. Decide whether one press represents a quarter note, a dotted-quarter pulse, a half-note backbeat, or a whole bar. The page measures your presses; it does not inspect the source and cannot repair a pulse-level switch after it happens.

Focus the counter region and use one input path consistently. A pointer or touch activation records one event. Space and Enter work while the region is focused, with auto-repeat ignored. This prevents a held key from manufacturing a rapid sequence.

What happens on each press

The first tap stores a monotonic timestamp and displays “origin set.” No BPM exists yet because there is no interval. The second accepted tap creates the first millisecond gap. Each following event creates one more adjacent interval.

The elapsed session time is the last timestamp minus the first. It is not the sum of imaginary beat counts, and tap count is not interval count. If the display says 12 taps, the ordinary sequence contains 11 intervals.

For interval d measured in milliseconds, the instantaneous rate is:

BPM = 60000 / d

The raw mean BPM is the arithmetic mean of these interval rates. The raw median BPM is the middle rate after sorting, or the mean of the two middle values when there is an even number. The page also reports duration summaries so an unusual gap remains visible in its original unit.

Full history and recent window

The complete summary answers, “What happened across this attempt?” The recent window answers, “What happened over the newest selected intervals?” Set that window from 3 to 20. A value of 8 means the latest eight gaps, not the latest eight taps.

Suppose ten interval durations are 505, 500, 498, 502, 501, 499, 500, 620, 503, and 501 milliseconds. The 620-millisecond interval affects the full mean and range. With a recent window of three, the current recent values are 620, 503, and 501, so 620 still belongs to that window. Add one new 500-millisecond interval and the recent values become 503, 501, and 500; only then does 620 fall outside the recent window. Nothing is deleted from the full ledger.

This is a descriptive view, not an instruction to prefer the latest number. The source could actually speed up or slow down; the unusual gap could be a missed press; or the passage could remain stable while the input changed.

Reading range and variation

Interval range is maximum minus minimum milliseconds. Mean absolute deviation averages each interval’s absolute distance from the interval mean. Coefficient of variation divides the standard deviation of interval durations by their mean and expresses that ratio descriptively.

These measures answer different questions. Range is dominated by the two extremes. Mean absolute deviation uses every value. Coefficient of variation normalizes spread relative to the mean interval. None is an accuracy percentage, a musical-quality grade, or a diagnosis.

The timeout is part of the method

Choose a reset timeout between 2 and 30 seconds. When a next activation arrives at or beyond that gap, the counter announces a new session and treats the event as its origin. The long pause never becomes a giant low-BPM interval in the old attempt.

A five-second default suits ordinary beat-level tapping but is not universal. Once-per-bar work at a very slow tempo may require a longer value. The dedicated bar pulse counter makes that assumption more visible.

Manual Reset clears the active timestamps immediately. Changing the recent-window setting merely recomputes the view.

A compact worked session

Four intervals of 480, 500, 520, and 500 milliseconds correspond to 125, 120, about 115.38, and 120 BPM. Raw mean BPM is about 120.10. Median BPM is 120. The interval range is 40 milliseconds. Mean interval is 500 milliseconds.

Reporting “about 120 BPM, four intervals, 480–520 ms” is more useful than presenting 120.10 as certainty. Repeat over a representative passage when a downstream edit or rehearsal decision matters.

Common validation messages

If the recent window is below 3 or above 20, the page asks for an integer in range and retains the last valid choice. If reset timeout is outside 2–30 seconds, it explains the allowed span. A non-finite internal result is not displayed; the session offers Reset instead.

Privacy and unavailable features

The tool keeps the active list in browser memory. It does not write localStorage or sessionStorage. It does not set a cookie, send interval values to analytics, create a profile, or synchronize sessions. Reset, reload, timeout, or tab closure can erase the work.

There is no audio input, microphone permission, file picker, URL parser, device-wide key listener, media library, remote API, database, or song identification. Keys are handled only when the counter region has focus.

Frequently asked questions

Why does the first tap show no BPM?

A rate requires a time gap. The first event supplies only one boundary.

Should I trust mean or median?

Inspect both, the interval list, and the source context. The median is less affected by one extreme value; the mean retains every rate’s influence.

Does the recent window remove old taps?

No. It changes only the recent summary. The complete session remains until reset or timeout.

Can I paste intervals instead?

Use the tap interval analyzer. This page is specifically for live deliberate controls.

## Record a reproducible attempt

Set the timeout and window, focus the counter, follow one pulse for a complete phrase, then read full and recent summaries together. Reset before changing the event you are following.

Continue on this site