mirror of
https://github.com/ggerganov/ggwave.git
synced 2026-02-07 17:54:39 +08:00
Update README.md
This commit is contained in:
10
README.md
10
README.md
@@ -7,18 +7,20 @@
|
||||
Tiny data-over-sound library.
|
||||
|
||||
|
||||
|
||||
## Details
|
||||
|
||||
This library allows communicating 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.
|
||||
|
||||
**Mobile examples:**
|
||||
|
||||
<a href="https://apps.apple.com/us/app/waver-data-over-sound/id1543607865?itsct=apps_box&itscg=30200&ign-itsct=apps_box#?platform=iphone" style="display: inline-block; overflow: hidden; border-radius: 13px; width: 250px; height: 83px;"><img height="60px" src="https://tools.applemediaservices.com/api/badges/download-on-the-app-store/white/en-US?size=250x83&releaseDate=1607558400&h=8e5fafc57929918f684abc83ff8311ef" alt="Download on the App Store"></a>
|
||||
<a href='https://play.google.com/store/apps/details?id=com.ggerganov.Waver&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' src='https://i.imgur.com/BKDCbKv.png' height="60px"/></a>
|
||||
|
||||
**Browser demo:** https://ggwave.ggerganov.com
|
||||
|
||||
**Mobile demo:**
|
||||
|
||||
<a href="https://apps.apple.com/us/app/waver-data-over-sound/id1543607865?itsct=apps_box&itscg=30200&ign-itsct=apps_box#?platform=iphone" style="display: inline-block; overflow: hidden; border-radius: 13px; width: 250px; height: 83px;"><img src="https://tools.applemediaservices.com/api/badges/download-on-the-app-store/white/en-US?size=250x83&releaseDate=1607558400&h=8e5fafc57929918f684abc83ff8311ef" alt="Download on the App Store" style="border-radius: 13px; width: 250px; height: 83px;"></a> | *(Android coming soon)*
|
||||
|
||||
### Modulation (Tx)
|
||||
|
||||
The current approach uses a multi-frequency [Frequency-Shift Keying (FSK)](https://en.wikipedia.org/wiki/Frequency-shift_keying) modulation scheme. The data to be transmitted is first split into 4-bit chunks. At each moment of time, 3 bytes are transmitted using 6 tones - one tone for each 4-bit chunk. The 6 tones are emitted in a 4.5kHz range divided in 96 equally-spaced frequencies:
|
||||
|
||||
Reference in New Issue
Block a user