This is a javascript binding for libquiet, a library for sending and receiving data via sound card. It can function either via speaker or cable (e.g., 3.5mm). Quiet comes included with a few transmissions profiles which can be selected for the intended use. For speaker transmission, there is a profile which transmits around the 19kHz range, which is essentially imperceptible to the human ear.

Quiet uses the Web Audio functionality in order to send and receive sound. Sending data is supported by Chrome, Firefox, Safari, and Edge. Reception is supported by Chrome, Edge, and to some extent Firefox.

Try it out in these examples or browse the documentation.

Transfer Text

This example will allow you to transmit text between two quiet-compatible browsers. There is a transmitter which will send tones through your speakers, and a receiver which will decode the tones through the microphone. These examples may run either in the same browser or in different browsers on different devices. The ultrasonic example cannot be received by Firefox, and neither receiver will work in Safari.

Be sure to turn down your volume to 50% or lower on your transmitting device.

Receive Text

Your received text will show up here. Waiting... Start Audible Receiver

Your received text will show up here. Waiting... Start Ultrasonic Receiver

Send Text

Send (Audible)

Send (Ultrasonic)

Transfer Image

This example will allow you to transmit an image between two quiet-compatible browsers. Because this example requires a little more power than the last one, the receiver will need to be on a laptop or desktop computer. Additionally, you will need to connect the transmitter and receiver by cable, such as a 3.5mm phone connector.

Neither Safari nor Firefox can be used as receivers for this example.

Receive Image

Your received image will show up here. Waiting...

Start Receiver

Send Image

Choose an image

Send

Profiles

Let's take a look at the configuration for the audible text transmitter we saw earlier.

This is a profile that tells Quiet.js how to operate. It specifies a modulation scheme gmsk and a center frequency 4200 .

Changing the behavior of Quiet.js is as simple as creating a new profile, making a few tweaks and then trying it out. To some extent, Quiet.js is a soundcard-based modem-building framework, thanks to the flexibility of liquid DSP.

License

Quiet.js is licensed under 3-clause BSD. It is compiled with liquid dsp and libjansson, which are licensed under MIT license. For full details, see 3rd party licenses.