← All explainers
A system guide for synced personal playback

Let headphones follow the room.

An iPhone can recognize the soundtrack playing nearby, recover its current timecode, and start a personal dubbed track at the same moment.

01 · Mental model

The room audio becomes a moving clock.

The analogy

Like glancing at a station clock, the phone learns both which program is playing and where it is now.

The reality

ShazamKit matches a fingerprint of the microphone audio to a custom reference signature and returns an updated offset into that recording.

02 · Runtime system map

Listen, locate, seek, play.

Room screenOriginal video and speaker audio
ACOUSTIC AUDIO →
ShazamKitCustom catalog match on iPhone
MEDIA ID + OFFSET →
HeadphonesDubbed track via AVPlayer
ALIGNED PLAYBACK

Important boundary: ShazamKit finds identity and time. AVFoundation loads, seeks, buffers, and plays the dubbed audio.

03 · Prepare the experience

Alignment begins before the visitor arrives.

The original soundtrack and every dub need the same zero point and duration map.

01 / REFERENCE

Fingerprint the original

Create one ShazamKit signature for the full museum video. Longer signatures provide more opportunities to match.

02 / ALTERNATES

Master every dub

Export translated tracks against the identical picture timeline. Preserve silence, pauses, and edits.

03 / CATALOG

Attach routing metadata

Map the reference signature to the exhibit ID, version, duration, and URLs for each language.

04 · Shared timeline

One moment, two playheads.

The match offset anchors both the room video and personal audio to the same source timeline.

0:000:301:001:302:002:30
Large errorSeek the dub directly to the matched offset.
Small driftBriefly adjust playback rate, then return to 1×.
Lost matchKeep a short grace window, then reacquire from the room.
05 · Product reality

“Synced” is a control loop.

01
Recognition takes time

Show a listening state and begin playback only after a confident match.

02
Devices drift

The room player and phone clocks are independent; re-check periodically.

03
The phone hears itself

Use headphones. Speaker playback can contaminate microphone capture.

04
Edits break alignment

Version the catalog and dubbed assets as one immutable release.

06 · Sync-loop simulator

Watch the app catch up.

ROOM VIDEO
01:12.0
PHONE DUB
01:10.8
Difference: −1.20 sWaiting for room audio

The demo exaggerates drift so the correction is visible. A production app should tune seek and rate thresholds through on-site testing.

07 · iPhone stack

Who owns what?

01
MicrophoneCaptures the room soundtrack
AVAudioEngine
02
RecognitionMatches continuous buffers
SHSession
03
CatalogStores reference signatures
SHCustomCatalog
04
ClockReports current reference position
predictedCurrentMatchOffset
05
PlaybackSeeks and rate-corrects the dub
AVPlayer
08 · Build order

Prove the clock first.

Make one exhibit recognizable.Generate one full-length reference signature and load a focused custom catalog.
Display the offset before playing audio.Validate recognition and timecode accuracy in the actual room.
Add one precisely mastered dub.Seek to the predicted current offset and listen through headphones.
Then add drift recovery.Measure error continuously and choose between rate correction, seek, or reacquisition.
09 · Keep this model

Recognition starts the clock; feedback keeps it aligned.

Fingerprint the room’s original audio.Use a custom ShazamKit catalog for known museum media.
Master every dub to the same timeline.No synchronization algorithm can repair mismatched edits.
Turn the match offset into a playback target.AVPlayer follows that target using seek and gentle rate changes.
Design for noise, pauses, and lost matches.A museum is a hostile acoustic environment, so recovery is part of the product.