ggwave is a compact C++ library for transmitting small amounts of digital information between nearby devices through sound. It uses a frequency-shift keying protocol that converts data into audible or ultrasonic audio tones. Reed-Solomon error correction improves reliability when recordings contain noise or imperfect frequency detection. The library generates and analyzes raw waveforms while allowing applications to choose their own audio capture and playback systems. It supports use cases such as device pairing, offline broadcasting, audio QR codes, authorization, and microcontroller communication. Bindings and examples are available for browsers, Python, Node.js, iOS, Android, Arduino, ESP32, and Raspberry Pi Pico. Command-line, graphical, WebAssembly, and file-based demonstrations are included.
Features
- Data transmission through sound
- Audible and ultrasonic protocols
- Reed-Solomon error correction
- Custom audio backend integration
- Browser and mobile platform bindings
- Microcontroller communication examples