Encode and decode Gibberlink/ggwave audio with ease ✨, comes with:
-
Encode: text -> WAV (via CLI and UI)
-
Decode: WAV -> text (CLI
--decodeand UI "Decode" section) -
A small Python UI (Tkinter) with a volume slider
-
A Python wrapper (
gibberlink-ui.py) that builds/runs the Rust CLI -
A Rust CLI (
gibberlink-tx) that uses the officialggwaveC library to encode audio
TBD
-
UI (recommended):
python launcher.pyOn Windows, you can also double‑click
launcher.py. -
CLI:
python gibberlink-ui.py --text "hello world" --protocol audible:fast --volume 75 --out gibberlink.wav -
Decode from WAV -> text:
python gibberlink-ui.py --decode gibberlink.wav -
Direct Rust binary (after build):
gibberlink-tx/target/release/gibberlink-tx --text "hello" --protocol audible:fast --volume 75 --out hello.wav --play
The first run will build the Rust binary automatically (one‑time).
- Python 3.10+ with Tkinter (Windows Python includes Tkinter by default)
- Rust toolchain with Cargo (for building the encoder): https://rustup.rs/
- Windows: audio playback uses the built‑in WinMM (
PlaySoundW) - macOS/Linux: fallback playback tries
ffplay,afplay,aplay, orpaplayif available
This repo already includes the ggwave source tree under ggwave/. The Rust build compiles it statically.
-
UI controls:
- Text input: the message to encode
- Protocol:
audible|ultrasound|dt|mt+:normal|fast|fastest(e.g.,audible:fast) - Volume: 0–100 (default 75). Very high levels can distort.
- Output file: path to save the generated WAV. Playback is optional.
- Decode section: browse a
.wavor use last generated file and decode to text.
-
CLI flags (wrapper):
--text/-t: text to encode (reads stdin if omitted)--protocol: defaults toaudible:fast--volume: 0–100 (default 75)--out: output WAV path (defaultgibberlink.wav)--no-play: generate but do not play--ui: launch the Tkinter UI--decode WAV: decode payload from a WAV file and print
gibberlink-ui.py— Python wrapper + Tkinter UIlauncher.py— one‑liner launcher to open the UIgibberlink-tx/— Rust CLI that links againstggwavebuild.rs— compiles../ggwave/src/ggwave.cppsrc/main.rs— FFI toggwave, WAV writer, and platform playback
ggwave/— upstreamggwavesources (MIT License)
- Cargo not found: install Rust via rustup, then re‑run.
- Playback is too quiet: increase
--volume, raise OS output, or use external amplification. - Ultrasound modes: likely inaudible to humans; reception depends on hardware.
- Linux/macOS playback: ensure one of
ffplay,afplay,aplay, orpaplayexists, or open the saved WAV in any player.
ggwaveby Georgi Gerganov (MIT): https://github.com/ggerganov/ggwave- Concept inspired by Gibberlink translator repo: https://github.com/yanivlevydfs/gibberlink-translator