GGWave sings songs from your data

We love alternative methods of transmitting data, and [Georgi Gerganov's] ggwave made us smile. Basically, it does what telephone modems of old did - send encoded data as different audio tones. But GGwave does it with sophistication!

It divides data into four-bit blocks and uses 16 different frequency offsets to represent each possible value. But for each chunk, these offsets are added to one of six different base frequencies, allowing the receiving computer to tell which chunk it is in. It's like a simple framing concept, and it makes the resulting data sound lovely like R2-D2. (It also uses start and end markers to be doubly sure of framing.) Data is also sent with error correction, so small hiccups can be fixed automatically.

What really makes ggwave shine is that it's ported to any platform you care about: ESP32, Arduino, Linux, Mac, Windows, Android, iOS, and anything that runs Python or JavaScript. So it will work in a browser. There's even a GUI for playing around with alternate modulation schemes. Pshwew! This allows a minimalist microcontroller-based beep button to easily control your desktop, or vice-versa. An ESP32 is an IoT-style WiFi-Audio bridge. Write code on your cell phone and you can stream it to any listening microcontroller. Whatever your use case, it's probably covered.

Now the downside. The data rate is slow, around 64-160 bits per second, and the transmission is necessarily beep-booopy unless you're using it for ultrasound or using the radio frequency HackRF demo. But maybe you want to hear when your devices talk to each other? Or maybe you just think it's cute? Yes, but we wouldn't want to have to transmit megabytes that way. But for a simple notification, a few bytes of data, a URL, or some configuration settings, we can see that this is a great software addition to any device with a speaker and/or a microphone.

Oh my god, check out this link from prehistory: a bootloader for the Arduino that runs on line input.

GGWave sings songs from your data

We love alternative methods of transmitting data, and [Georgi Gerganov's] ggwave made us smile. Basically, it does what telephone modems of old did - send encoded data as different audio tones. But GGwave does it with sophistication!

It divides data into four-bit blocks and uses 16 different frequency offsets to represent each possible value. But for each chunk, these offsets are added to one of six different base frequencies, allowing the receiving computer to tell which chunk it is in. It's like a simple framing concept, and it makes the resulting data sound lovely like R2-D2. (It also uses start and end markers to be doubly sure of framing.) Data is also sent with error correction, so small hiccups can be fixed automatically.

What really makes ggwave shine is that it's ported to any platform you care about: ESP32, Arduino, Linux, Mac, Windows, Android, iOS, and anything that runs Python or JavaScript. So it will work in a browser. There's even a GUI for playing around with alternate modulation schemes. Pshwew! This allows a minimalist microcontroller-based beep button to easily control your desktop, or vice-versa. An ESP32 is an IoT-style WiFi-Audio bridge. Write code on your cell phone and you can stream it to any listening microcontroller. Whatever your use case, it's probably covered.

Now the downside. The data rate is slow, around 64-160 bits per second, and the transmission is necessarily beep-booopy unless you're using it for ultrasound or using the radio frequency HackRF demo. But maybe you want to hear when your devices talk to each other? Or maybe you just think it's cute? Yes, but we wouldn't want to have to transmit megabytes that way. But for a simple notification, a few bytes of data, a URL, or some configuration settings, we can see that this is a great software addition to any device with a speaker and/or a microphone.

Oh my god, check out this link from prehistory: a bootloader for the Arduino that runs on line input.

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow