Ggwave: Tiny Data-over-Sound Library
Published on: 2025-07-15 04:09:19
ggwave
Tiny data-over-sound library.
Click on the images below to hear what it sounds like:
waver-v1.4.0.mp4
talking-buttons-demo-0.mp4
arduino-tx-3-github.mp4
Details
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
... Read full article.