Audio analysis and tempo detection

Two separate things can analyse audio: the input you are listening to, and a file you have selected. Both report a BPM estimate and a confidence — and it pays to understand what confidence means here before trusting a number.

Listening to input

Input capture never starts automatically. Start it explicitly from either:

Microphone permission is requested only in response to that start. Selecting a device, or merely opening Settings, does nothing. The Settings panel reinforces this: "Opening settings does not start capture."

Device and sensitivity

Control Range / options Default
Device System default plus available inputs System default
Sensitivity 0.25 … 4, shown as × 1.0
Refresh devices disabled while input is running —

If the selected device goes missing, capture stops with "Selected input disconnected. Choose an available device and enable input." Repeated device changes auto-reconnect at most three times, then stop and ask you to re-enable.

What you get

Choosing half or double time

Onset detection is genuinely ambiguous about octaves. When it is, you get "Beat detected · tap to choose half or double time." and the ÷2 tempo / ×2 tempo buttons become available (for estimates inside 40…240 BPM). Clear tempo hint removes it.

A hint only re-ranks existing candidates — it never manufactures evidence, and the detector still has to verify any result. Status text says so: "Tempo hint X BPM · audio still verifies the estimate."

Detecting a file's BPM

Select a clip whose source has audio, open Inspector → Audio, and press Detect file BPM (it reads Analyzing… while running).

For audio-only media, analysis also runs automatically in the background because the waveform needs it, and the measured end-of-file corrects the clip's duration.

What confidence means

The source is unusually direct about this: confidence is not a calibrated probability. It combines evidence, short-window agreement, period ramp and competitor separation, capped at 0.99. Treat it as a rough stability indicator.

Acceptance thresholds, for reference:

Stage Requirement
Live input estimate accepted at least 4 periods, evidence ≥ 0.32, confidence ≥ 0.28
File consensus, per block confidence ≥ 0.5, BPM inside 40…240
File consensus, final ≥ 1.5 s of clustered support, confidence ≥ 0.5
Auto BPM adopts anything confidence ≥ 0.65

Auto BPM

The footer's Auto BPM checkbox lets Ultimate VJ adopt estimates automatically, subject to all of:

Automatic adoption is deliberately not undoable and does not feed back as its own detector hint, so an adopted estimate can never become the prior that justifies itself. It is saved per set.

Manual tempo edits do seed the detector hint, which is the mechanism by which your own judgement helps future estimates.

Audio-reactive clip opacity

Separate from detection, and available per clip in Inspector → Audio:

Control Range Default
Audio reactive opacity toggle off
Input gain 0.1 … 10, shown as × 1.0

The clip's visual contribution is multiplied by level × gain × 5, clamped at 1. This changes only what you see — it never changes audible file playback, and it requires audio input to be enabled.

The hint below it: "Live input level drives this clip's layer contribution. Enable audio input in settings to start capture."

Not verified