Inspiration

When a workshop or event loses connectivity, someone may still need to share one sentence with everyone nearby. A speaker and microphone are common to the devices already in the room. Earshot explores whether that ordinary hardware can carry a short text message directly through sound. This is a reuse of my earlier TechCommons Hacks V2 build, which I completed but did not submit before its deadline; reuse is allowed by Practice to Create.

What it does

A sender types a short message in a browser. Earshot converts it to a sequence of audible tones and plays it through the device's speaker. Nearby phones that have already opened the receiver page and granted microphone permission listen for the frame and decode the text. There is no network exchange during transmission, no account and no Bluetooth pairing. A received message stays in the local page. This is an experiment for brief local communication, not a dependable alert system.

How I built it

I wrote a 16-tone frequency-shift-keyed acoustic modem in TypeScript using the Web Audio API, AudioWorklet and a Goertzel tone detector. A frame contains synchronization tones, payload, a CRC-8 check, and an end tone. The browser transmitter repeats the entire frame; a receiver accepts the first copy that passes the check. The UI shows a live tone spectrum and basic signal state. Vite builds the static site. The modem and interface have no runtime AI service.

What I verified

Headless loopback and synthetic-channel tests pass for timing offsets, simulated noise and room echo, and the decoder rejects corrupt frames in the tested cases. These are software tests, not a guarantee of delivery across real phones or rooms. The demo video shows the browser interface and reports the simulated results. I have not yet verified physical phone-to-phone delivery; that is the next validation step.

Limits and next steps

Messages are short (120-byte cap) and audible to anyone nearby. They are not private or encrypted. Delivery has no acknowledgement; silence or noise can prevent reception, and background browser behavior varies by device. The page must be loaded before connectivity is lost, and microphone permission is needed. Earshot is not for emergencies. A next step is repeatable mixed-device testing across rooms, distances and noise levels, including reporting failures rather than only successful trials.

Existing solutions and originality

Data-over-sound is established prior art. ggwave, for example, is an open-source acoustic data transmission library with browser examples and one-to-many use cases. Earshot does not claim to invent the medium. Its contribution is a from-scratch modem paired with a deliberately simple sender/receiver interaction for one short local message, and an inspectable signal display.

Sources and AI disclosure

The modem tests, design and limitations are documented in the public repository. Typefaces Archivo and JetBrains Mono are under the SIL Open Font License. Claude assisted with the original build; Codex assisted with current hackathon research and presentation. The video uses a macOS synthetic narrator. No AI model is used at runtime.

Built With

Share this project:

Updates