Local browser workflow

Describe Tap Stability Against a Target BPM

Calculate descriptive stability metrics

Tap intervals compared with a chartreuse target band and dispersion grid

BPM stability counter

Enter a value. The result updates while you type.

browser memory only; no live device listening, audio, remote API, account, database, or storage. No sign-in or ads.

Result

Start entering values to see the result.

Reviewed concrete example

Stability is a description, not a verdict

The BPM stability counter compares a pasted interval sequence with a target rate and reports dispersion. It does not grade timing, diagnose a condition, recommend practice, or decide whether the target is musically appropriate. A stable sequence can follow the wrong pulse; a variable sequence can accurately reflect an expressive source.

Enter a target from 20 to 400 BPM and at least five interval durations. The target is converted to milliseconds with 60000 / BPM. At 120 BPM, the target interval is 500 milliseconds. At 80 BPM, it is 750.

Metrics with named centers

Range subtracts minimum duration from maximum. Median absolute deviation, or MAD, finds the median of each interval’s absolute distance from the median interval. This makes its center and robustness explicit.

Population standard deviation uses all entered values as the descriptive population. CV divides that standard deviation by the mean interval and can be displayed as a ratio or percentage. It normalizes spread, but it is not “percent accurate.”

Per-interval differences appear in milliseconds and BPM relative to the target. Positive millisecond difference means a longer interval and therefore a lower instantaneous rate. The page labels both signs to prevent inversion mistakes.

Worked target comparison

With a 120-BPM target, analyze 495, 500, 505, 498, and 502 milliseconds. Target interval is 500. Mean and median are both 500. Range is 10. Absolute distances from the median are 5, 0, 5, 2, and 2; sorted, their median is 2 milliseconds.

The sequence sits around the target in this small example. That does not certify the person, device, or source. It only describes five entered gaps.

Now replace the last value with 550. Mean becomes 509.6, median becomes 500, range becomes 55, and MAD becomes 5. The different movements show why one statistic cannot summarize every feature.

Complete and recent views

Choose a recent count from three through the list size. The complete pane preserves the full attempt; the recent pane describes only its tail. If recent intervals shorten, the rate rises. If they lengthen, the rate falls.

A least-squares slope across zero-based interval position is shown as a descriptive trend. Direction is decided before display rounding: an unrounded finite slope above +0.000000001 milliseconds per position is upward, meaning durations tend to lengthen; one below −0.000000001 is downward, meaning they tend to shorten; and a value inside that inclusive epsilon band is flat. The page then displays the slope to nine decimal places. This fixed rule prevents a change in presentation precision from changing the status.

A line fit is not proof of intentional acceleration or slowing. Alternating values, a middle discontinuity, or one extreme can produce a slope that misses the story.

Target difference is not error by default

Calling every difference an error assumes the target is ground truth. The source may intentionally differ, the target may be approximate, or the tapper may follow a half-time level. Therefore the interface says “difference from target,” not “mistake.”

If the median rate is 60 while target is 120, investigate pulse level before interpreting dispersion. Consistent factor-of-two differences are often convention differences.

Validation and context

Non-numeric, non-finite, or out-of-range values produce token-specific errors. The recent count cannot exceed accepted intervals. No calculation runs on a partially valid list, and Clear removes input and results.

Use the same pulse and capture method throughout. Do not combine a mouse session with keyboard intervals without labeling the change. Do not paste absolute timestamps in an interval field.

Privacy and limits

All values remain in active browser memory. They are not uploaded, saved, placed in URLs, sent to analytics, or attached to an identity. Reload and Clear may erase them.

Browser and device latency, source variation, attention, pulse ambiguity, and transcription errors remain outside the calculation. Metrics describe input, not cause.

Comparing metric scales

MAD and standard deviation remain in milliseconds, so they can be read against the target interval. CV is unitless and supports cautious comparisons between different mean durations, but only when capture methods and pulse definitions are compatible. A 5-ms MAD around 250 ms is not contextually identical to 5 ms around 1,000 ms. Preserve both absolute and relative values.

Trend slope has units of milliseconds per interval position. Report the value with direction and do not extrapolate beyond the entered sequence.

Keep context.

Frequently asked questions

Which center does MAD use?

This tool uses median absolute deviation from the median and states that convention.

Is a smaller CV always preferable?

No. It means less relative duration dispersion in the entered list, not higher quality.

Why include a target?

It supplies a visible reference interval and signed differences. It does not become verified truth.

Can the tool evaluate health or performance?

No. It provides educational descriptive statistics only.

## Describe, then interpret elsewhere

Enter one coherent interval list and a documented target, inspect center, range, MAD, CV, deviations, and slope, then report the numbers without converting them into a score.

Continue on this site