How do you sync an interval timer to your music?

Lock every interval to a whole number of musical bars. One bar in 4/4 lasts 240 ÷ BPM seconds. Round each work and rest phase to the nearest bar, then drive the countdown from the audio clock instead of a separate system timer.

That is the whole method. The rest of this page is the arithmetic, the failure modes, and what you give up.

What is a beat-locked interval?

A beat-locked interval is a work or rest phase whose duration is an exact multiple of the musical bar, so the phase change lands on a downbeat instead of somewhere inside the bar.

Standard interval timers do the opposite. You type 30 seconds, they count 30 seconds, and the beep falls wherever it falls — on beat 3 of bar 11, halfway through a fill, one beat before the drop. The timer and the music are two independent processes that happen to run at the same time.

Beat-locking makes one of them the master. The music defines the grid. The intervals bend to fit it.

Why does your timer cut the track mid-bar?

Because nothing connects them. A conventional timer is a countdown that fires a sound at zero. Your music comes from a separate app — Spotify, Apple Music, a podcast player — and the timer has no idea what is playing, at what tempo, or where the bar line is.

This is not an oversight. It is the stated design of the category. The most common selling point across interval timer listings is that the app does not interrupt your music and runs in the background while you listen to something else. Music is treated as a third party to tolerate, not a structure to use.

The consequence shows up in user reviews of those apps as a recurring complaint: the beeps get annoying, especially over another app’s audio. You are hearing two clocks disagree.

How long is one bar?

In 4/4 time, one bar is four beats, so:

bar length (seconds) = 240 ÷ BPM

BPMOne bar (4/4)Bars in 30 sBars in 60 s
902.667 s11.2522.5
962.500 s1224
1002.400 s12.525
1102.182 s13.7527.5
1202.000 s1530
1281.875 s1632
1301.846 s16.2532.5
1401.714 s17.535
1501.600 s18.7537.5
1601.500 s2040
1741.379 s21.7543.5
1801.333 s22.545

Read the third column carefully. At 96, 120, 128, and 160 BPM, 30 seconds is a whole number of bars — those tempos need no adjustment at all. At 140 BPM, 30 seconds is 17.5 bars, so a 30-second interval is guaranteed to end in the middle of a bar. That half-bar is the entire problem.

How do you round an interval to the nearest bar?

Three steps, and you can do them on paper.

  1. Bar length = 240 ÷ BPM.
  2. Bars = round(target duration ÷ bar length), with a floor of 1 bar.
  3. Actual duration = bars × bar length. Display and count down this number, not the one you asked for.

Worked examples:

TargetBPMBarBars (rounded)ActualDrift
30 s work962.500 s1230.00 s0
45 s work1281.875 s2445.00 s0
20 s work1281.875 s1120.63 s+0.63 s
10 s rest1281.875 s59.38 s−0.62 s
40 s work1301.846 s2240.62 s+0.62 s
20 s work1401.714 s1220.57 s+0.57 s

Worst-case error is half a bar. At 128 BPM that is 0.94 seconds; at 174 BPM it is 0.69 seconds. If a sub-second change to a work interval matters to your training, beat-locking is not for you — that tradeoff is real and it is stated in full further down.

One pleasant accident: a 20/10 round at 128 BPM becomes 11 bars of work and 5 bars of rest, which is 20.625 + 9.375 = exactly 30.000 seconds per round. Eight rounds is exactly 4:00. The rounding errors cancel.

Why the countdown has to run on the audio clock

Aligning the first interval is easy. Keeping forty of them aligned is the hard part.

If the countdown runs on its own timer — setInterval, a system tick, anything independent of playback — it is not guaranteed to fire on time. The operating system throttles background work, the screen sleeps, another app takes priority. Each phase change absorbs a small error, and the errors accumulate in one direction. Twenty minutes in, the transitions visibly stop landing on the beat, and no amount of correct arithmetic at the start fixes it.

The fix is architectural: the countdown reads its position from the audio stream itself. Playback position becomes the single source of truth for “what phase am I in and how long is left.” There is only one clock, so there is nothing to drift against.

Why crossfade instead of cut?

Because a hard cut between two loops is audible even when it is perfectly on the beat. Reverb tails, cymbal decay, and sustained bass do not stop at the bar line — they ring past it. Cutting them produces a click or an abrupt silence right at the moment you are asking for effort.

A short crossfade solves it. WimFIT overlaps the outgoing and incoming loops for about 400 ms, scheduled in advance on the audio timeline rather than triggered on arrival. The session sounds like one continuous track that changes character, not like a playlist of fragments.

Beat-locked timer vs. beeps over a streaming app

CriterionBeeps over Spotify / Apple MusicBeat-locked timer
Who defines the gridNobodyThe track’s tempo
Where transitions landAnywhere in the barOn the downbeat
Audio cue neededYes — a beep must cut throughOptional; the music itself signals the change
Music catalogYour entire libraryThe app’s licensed tracks only
Interval precisionExact to the secondRounded to the nearest bar (≤ half a bar)
Works offlineDepends on your streaming appYes, once downloaded
Drift over 20 minTwo independent clocksOne clock

Neither column is universally better. The left column wins on catalog and on exact seconds. The right column wins on everything that depends on the audio and the timer being the same object.

What you give up

Three things, stated plainly.

Your own music. Beat-locking requires knowing the tempo and having loop-ready stems for each phase. You cannot do it to an arbitrary track from a streaming service, because the app never gets access to the audio in a usable form. WimFIT works from its own licensed catalog. If your playlist is the point of your workout, this is the wrong tool.

Exact seconds. You get bars, and bars are what the display counts down. A requested 20 seconds may be 20.6.

Tempo changes. Tracks that ritardando or shift meter break the grid. The catalog is built around steady-tempo material for that reason.

Can you do this without an app?

Partly. Pick a track with a constant, known tempo. Compute the bar length with 240 ÷ BPM. Choose your work and rest phases in bars, not seconds — 12 bars on, 4 bars off, for example. Then count bars instead of watching a clock.

This works, and plenty of instructors have done it for decades. What it will not do is survive a session where you stop thinking about counting, which is most sessions. Automating the count is the only part that needs software.

How WimFIT implements it

WimFIT is an interval training app whose timer is subordinate to the music. Every duration you set is snapped to the nearest bar at the track’s tempo, with a one-bar minimum, and the snapped value is what the app shows and counts down. Total session length is computed on the snapped values: rounds × (work bars + rest bars) + intro + outro.

The countdown reads the audio engine’s playback position. Phase transitions are scheduled ahead of time on the audio timeline with a ~400 ms crossfade between loops, so there is no gap and no click. Sessions are assembled at runtime from per-track loops — intro, work loop, rest loop, outro — rather than pre-rendered, because effort, rest, round count, and track are all chosen by you.

The app also ships 29 exercise demonstrations, a human-recorded voice coach in English and French, full offline operation, and history you can use without creating an account.

WimFIT is in pre-launch. iOS first, Android in preparation. Join the waitlist · What BPM should your HIIT music be? · What the research actually shows · FAQ