Transmitting Text via Ultrasonic Audio, Awesome Open Source Library
Quiet.js by quiet

        
          Quiet.js

        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...
          
        
          
          Your received text will show up here. Waiting...
          

        Send Text
        
        
        
        

        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...
        

        Send Image
        
            Choose an image
        
        

        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.


      