Developer utility

Send Data Through Sound in Your Browser

Acoustic Link turns a short text payload into a sequence of high-frequency tones and reconstructs it on another nearby device. The transfer uses only the sender's speaker and the receiver's microphone: no account, backend, local network, Bluetooth, or Near Field Communication (NFC) connection is involved. Three frequency bands cover different hardware, and a redundant mode can repeat the same packet across all of them.

  • Encode up to 192 UTF-8 bytes into a versioned 4-FSK acoustic packet.
  • Transmit in compatible, balanced, near-silent, or three-band redundant mode.
  • Scan all supported bands while receiving and show live signal diagnostics.
  • Correct single-bit codeword errors and reject detected multi-bit or checksum failures.
  • Run a deterministic noisy loopback test without microphone permission.
didof.dev / tools
Acoustic protocol A7 · client-only
Air is the cable

Acoustic
link.

Send a short message directly through speakers and microphones. No network, Bluetooth, NFC, account, or backend.

0 / 192 bytes ·

Microphone samples stay on this device. Headphones block the physical channel. Keep both devices within a few metres and start the receiver first.

01Open this page on both devices.
02Start listening on the receiver.
03Send from the other device nearby.
  1. Open both devices

    Load Acoustic Link in a compatible browser on the sending and receiving devices. Remove headphones so sound can travel through the air.

  2. Start the receiver

    Choose Start listening on the receiving device and allow microphone access. Its detector scans all three supported frequency bands.

  3. Prepare the payload

    Enter a short message on the sending device. Choose Balanced first, or Redundant when the devices have not been tested together.

  4. Send and verify

    Keep the devices nearby and choose Send message. The receiver displays the text only after forward error correction and CRC-32 validation succeed.

  • A UTF-8 text message of no more than 192 bytes.
  • A frequency profile and one of three output levels.
  • Live microphone samples on the receiving device.
  • An acoustic 4-FSK packet played through the sending device's audio output.
  • A validated text payload that can be copied on the receiving device.
  • Live band, signal-quality, frame-progress, and correction diagnostics.
  • Sending requires a browser with the Web Audio API and an enabled audio output.
  • Receiving requires microphone permission in a secure HTTPS context.
  • The detector supports 48 kHz and 44.1 kHz audio contexts; the browser or operating system can resample the physical input.
  • Balanced mode is the default. Compatible mode uses lower, more audible frequencies; near-silent mode depends more heavily on device hardware.
  • This is a low-rate experimental link for short text, not a replacement for Wi-Fi, Bluetooth, or file transfer protocols.
  • A maximum-length single-band packet takes about 93 seconds; redundant mode takes about three times as long.
  • Some speakers and microphones attenuate frequencies above 15 kHz, and operating-system audio processing can alter the signal.
  • The current protocol does not negotiate a band, acknowledge receipt, or retry a failed packet automatically.
  • Frequencies near 18–19 kHz are not guaranteed to be inaudible, especially to younger listeners and animals.
  • Message encoding, audio synthesis, microphone analysis, decoding, and validation happen in the browser.
  • Acoustic Link does not upload the text payload or microphone samples to a server.
  • The microphone stream stops when listening is stopped or the page is closed.

Acoustic Link frames each payload with a preamble, synchronization sequence, versioned header, sequence number, byte length, CRC-16 header check, and CRC-32 payload check. Each four-bit nibble is encoded with Hamming SECDED, which corrects one flipped bit per codeword and detects two. Interleaving spreads short bursts across different codewords. Four-Frequency-Shift Keying (4-FSK) then maps pairs of bits to four data tones. A separate clock tone gives the receiver a boundary before every symbol. The receiver runs Goertzel detectors for the known tones, searches for the preamble across three bands, decodes the frame, rejects any uncorrectable codeword, and exposes the payload only when its CRC-32 matches.

Does Acoustic Link use the internet?

No network is used for the transfer itself. Both devices need the page, but the payload travels only as sound from one device to the other.

Are the tones ultrasonic?

Not necessarily. The three profiles span about 14.2 to 19.2 kHz. The highest band may be inaudible to many adults, but hardware support and human hearing vary.

Why does Redundant mode take longer?

It sends the same packet in all three frequency bands. This increases the chance that one band crosses the physical channel, but it triples most of the transmission time.

Why did a valid-looking signal fail?

The receiver intentionally discards a frame when synchronization, forward error correction, CRC-16, or CRC-32 validation fails. Move the devices closer, increase output, or use a lower-frequency profile.