"QRdio" (or better name)

Encode and decode hidden text messages in 'white noise' audio using Javascript HTML5 and QRCodes

This is based on a kooky idea I had a while ago which came up again recently in conversations about messaging, encryption, security and privacy.

It's not very useful at this stage and it's not 'secure' in any way, but I thought it was an interesting experiment/exercise in hiding messages in other media formats. Also that it's entirely done using Javascript in the browser. - built by kosso

QRdio encoder

Input some text and hit return:
(max. chars about 340 .. for now)

Below is an audio file generated from the black and white blocks of the QR code. (It sounds like noise)

We take all the small squares of the QRcode and placing them all end to end, then take the black and white values (1 and 0) and make them 255 and 0. Finally, we use HTML5 and Javascript to make an audio/wav file dataURI using a data array of all the 0's and 255's. It sounds like white noise. It isn't. I call it QRdio :)

If the resulting audio is able to be scanned (by the Javascript library being used - there are more to try) it will show up in the decoder. You can also download and then upload the wav audio file to decode it.

It works. Now to think of something to do with this...

QRdio decoder

Now we need to be able to take a 'QRdio' file and decode the 'noise' back to the matrix of 1's and 0's which we need to paint a QRcode from it. We can then read that code to provide the message within the noise. Cunning!
Select a QRdio wav file:

decoded message:

The message length limitations appear to be in the Javascript library I'm using to read the QRcode generated by the audio. Scannable (with a phone) QRcodes can be generated with a lot more characters though. Maybe I could bundle this lot into an iPhone and Android app using Titanium?

built by kosso
for extra qredits : view the source :)