Main Content

Tiny data-over-sound library

This library allows you to communicate small amounts of data between air-gapped devices using sound. It implements a simple FSK-based transmission protocol that can be easily integrated in various projects. The bandwidth rate is between 8-16 bytes/sec depending on the protocol parameters. Error correction codes (ECC) are used to improve demodulation robustness.

This library is used only to generate and analyze the RAW waveforms that are played and captured from your audio devices (speakers, microphones, etc.). You are free to use any audio backend (e.g. PulseAudio, ALSA, etc.) as long as you provide callbacks for queuing and dequeuing audio samples.

Here is a list of possible applications of ggwave with a few examples:

- Serverless, one-to-many broadcast
- wave-share - file sharing through sound
- Internet of Things
- r2t2 - Transmit data with the PC speaker
- buttons - Record and send commands via Talking buttons
- Audio QR codes
- [Twitter] - Broadcast your clipboard to nearby devices
- Device pairing
- Authorization”

Link to article