19,600 Hz – 20,900 Hz  ·  inaudible to virtually everyone

Ultrasonic audio beacons,
made visible.

Some televisions, apps, and retail speakers embed inaudible ultrasonic tones that carry hidden data — used for things like cross-device ad tracking. My Ad Beacons lets you build one, hear how it actually works under the hood, and detect it in real time. Nothing here is a secret protocol; every layer is documented on this page.

19.6–20.9 kHz band · demo waveform simulated preview

What is an audio beacon?

A tone (or set of tones) played at a frequency near or above the top of human hearing, picked up by a nearby microphone — a phone, a smart speaker, a laptop — to silently pass a short piece of data between devices. TVs have used this to detect when their own ads are playing on a second screen. This kit builds an honest, working version so you can see exactly how it's done.

Step 1

Encode

Type a short message. It's encrypted, then converted into a sequence of ultrasonic tone-chords your speakers can play.

Step 2

Broadcast

Play the beacon out loud. It's designed to be strong and layered with redundancy — even a partial capture can often still be decoded.

Step 3

Detect

The web listener or the Mac menu bar app hears the beacon, decodes and decrypts it, and logs it — with a notification showing exactly what it said.

How the data is packed

Each beacon uses 8 fixed tones spread across the ultrasonic band. Every "symbol" is 3 of those 8 tones played together as a chord — so a receiver that only catches a couple of the tones through noise or speaker roll-off can usually still identify which chord it was.

Frame structure

Every beacon starts and ends with a distinctive chirp sweep, used for timing sync and for basic detection even before a single symbol is decoded.

[ CHIRP ×2 ]
[ LENGTH ×3 — majority vote ]
[ AES-256-GCM PAYLOAD ]
[ CRC8 ×3 — majority vote ]
[ CHIRP ×2 ]

The encryption key is a fixed demo key, embedded openly in this site's source and in the Mac app — this project is about showing the mechanism, not building a real tracking product.