Smooth Skip Explained
Smooth Skip — called Seamless Transition in the app's settings — is Interlude's signature playback feature. Instead of a hard cut between tracks, the player analyzes the tempo of the current and next song, gradually matches their BPM, and times the handoff around the natural fade-out of the outgoing track. The result is a mix that sounds intentional rather than accidental.
This page explains exactly how it works, when it triggers, what it costs in battery and CPU, and the cases where it deliberately does nothing.
Turning it on
Open Settings → Playback → Seamless Transition. The feature is off by default. You can adjust the crossfade duration (0–12 seconds) and choose whether transitions override the app's normal gapless behaviour for same-album tracks.
How it works
The pipeline runs in four stages, all on-device. No audio is ever uploaded.
Tempo detection
While a track plays, a lightweight on-device analyzer computes its BPM from the audio stream. It uses an onset-strength envelope followed by autocorrelation — the same family of algorithms used by dedicated DJ software, scaled down to run efficiently on a phone CPU.
Tempo matching
When the current track is within the configured crossfade window of its end, the player compares the outgoing BPM to the incoming BPM. If they differ by less than a small ratio (about 12%), the player applies a time-stretch to the incoming track so its tempo gradually converges to the outgoing tempo over the transition window.
Fade-out detection
Rather than assume the fade-out is at a fixed offset from the end, the player detects silent and decaying sections in the outgoing audio. If a silent intro is present on the incoming track, the transition starts the incoming song right after that silence ends, so no click or jump is audible.
Crossfade
The two streams are mixed with an equal-power crossfade curve. The outgoing track fades to silence while the tempo-matched incoming track fades in, both over the same window. When both streams are gapless-compatible (same codec, same sample rate), the outgoing stream's tail continues to play under the incoming track's head.
What the timeline looks like
In a typical transition with an 8-second fade window: the last 8 seconds of Track A overlap the first 8 seconds of Track B. Track B's tempo is stretched toward Track A's tempo during those 8 seconds, and then released back to its native tempo at the end of the fade. If Track A's tail is a decay rather than a full fade, the player aligns the start of the overlap to the silent point in that decay.
When it triggers
Seamless Transition does not always apply. It activates only when all of the following are true:
- The feature is enabled in settings.
- The current track has at least the configured fade window remaining.
- The next track is already queued (i.e. the current track has a successor).
- The next track's audio has been analyzed and its BPM is known, or can be analyzed in time.
- The BPM ratio between the two tracks is within the time-stretch tolerance.
- The current track is not being seeked or scrubbed at the moment the transition would begin.
- The user has not manually tapped "Next" within the last two seconds — a manual skip always cuts cleanly.
If any of those fail, the player falls back to a normal crossfade (if enabled) or a hard cut.
Battery and CPU impact
Tempo analysis is the only part of the pipeline that isn't trivial. On a modern ARM64 phone:
- BPM analysis of a 4-minute track takes roughly 1–2 seconds of CPU time, spread across the playback of the track.
- The analysis runs at low thread priority and yields to playback, so it does not cause audio dropouts.
- Measured battery cost is roughly 2–4% per hour of playback on a Pixel 6-class device, which is less than the difference between streaming and cached playback.
- Once analyzed, a track's BPM is cached in the app's private storage. Re-analysis is not required for tracks you've played before, including offline.
If you are on a low-end device, you can disable the feature with no other impact — the app otherwise behaves identically.
Limitations
Where Smooth Skip is not used
The following cases intentionally bypass the transition pipeline. This is by design, not a bug.
- Same-album tracks — when both tracks are consecutive on the same album and the app's gapless mode is enabled, the gapless path is used instead, because inter-track silence is part of the album's mastering and should not be altered.
- Live recordings and DJ sets — if the track's BPM varies significantly over its duration, the tempo-matching would be audible as wobble. The player detects this and skips the match, falling back to a plain crossfade or cut.
- Very short tracks — tracks shorter than the fade window are transitioned with a hard cut. Adjusting the fade window smaller will let the transition apply to them.
- Tracks with no detectable tempo — spoken-word, ambient, and classical tracks often lack a strong periodic onset. In those cases the time-stretch is skipped and a standard crossfade is used.
- Manual skip — pressing Next or Previous always cuts cleanly; the user's intent is taken as "I want this to end now".
- Cast playback — when casting to a Google Cast device, the transition runs on the cast device's stream, but the audio decoder's buffer prevents precise alignment. Cast transitions are best-effort.
Frequently asked questions
Does it change the pitch of the music?
No. The time-stretch preserves pitch. A track at 120 BPM stretched to 126 BPM during the transition will sound like the same song, just slightly faster, and only for the duration of the crossfade.
Does it work with downloaded tracks?
Yes. Downloads and cached tracks are analyzed the same way as streams, and since the audio is local, transitions on downloads are typically more precise because there is no network jitter.
Can I disable it just for one track?
Not currently per-track, but per-album if the album is marked as "continuous" (gapless). A per-track override is on the roadmap for Phase 02.
Why does the transition sometimes feel one beat off?
BPM is a scalar; it doesn't capture beat phase. Two tracks can share a BPM but have their downbeats offset by half a beat, in which case the mix will feel rhythmically "uncomfortable" even though the tempo is matched. Phase-aware alignment — beat-grid detection rather than BPM alone — is a Phase 03 item.
Does it work with the equalizer and crossfade together?
Yes. The equalizer is applied before the crossfade mixer, so both tracks share the same tonal balance during the transition.