11 ms·
Quiet.js – Transmit and receive data in the browser at 44.1kHz
- kreetx 7y agoShare your results if you tested this! :) (I have no relation to the library)
- danielbln 7y agoTested sending text via ultrasonic from Chrome on a Mac to Chrome on an Android phone and it works as advertised (didn't test image tranmission).
- lucasverra 7y agoCould this work as validation of geo positioning ? Instead of having to scan a specifically geo placed qr code (client side), having a web app that listen some encoded ultrasonic passphrase could match the feature Edit : no safari support :(
- deleted 7y ago[deleted]
- dillonmckay 7y agoI believe this is already used in retails stores, and passively listening app libraries are able to determine the user’s location. I believe it is also used for television ads.
- mwcampbell 7y agoDo you know of any commercially available and reliable implementations of this sort of ultrasonic beacon that a startup could use? I have a dream of a product I want to develop someday. I like to go to bars and do karaoke. But I would love to be able to open an app on my phone and submit the songs that I want to sing, then get an ETA for my next turn. To prevent abuse, the system should somehow validate that the user is in the venue. Having the user point their phone at a screen displaying a QR code would be problematic though, especially for people like me (I'm legally blind). Would an ultrasonic beacon work reliably, even in a noisy karaoke bar? Maybe a Bluetooth beacon or beacons would be better, but that would be more hardware for the venue or mobile karaoke DJ to buy and set up. Yes, I know, all of this is totally a first-world problem; I should focus on things that really matter.
- dillonmckay 7y agoI think this is a good idea. I agree with you about the QR code being problematic, simply because some bars are extremely crowded, and it would be difficult to ‘find’ the QR code. Also, anybody could take a picture of the QR code and re-share it.
- lucasverra 7y agoQR code gets a tad more secure if you couple with geolocation prompt.
- cocochanel 7y agoWorks!
- callesgg 7y agoI like the idea but I think it would be more useful it it was more reliable. Ignore all types of speed requirements and make it super reliable then it could actually be useful in special circumstances. Receiving the audible sound did not work at all in any browser. Receiving the ultrasonic (that is not very ultrasonic at all clearly hearable) did work in chrome and firefox. Sometimes it figured out that there had been a message but not what it was. (saying missing packets) Sending worked from all browsers.
- ChicagoBoy11 7y agoWhen I lowered my mba volume to just two bars it still worked but I could no longer hear anything
- buboard 7y agoaudible text worked right away from iphone to my webcam. ultrasound had some packet loss , it had to be really close to the cam.
- jrockway 7y agoThat's interesting. I experienced the opposite with my iPhone and AT2020 microphone. Ultrasonic always worked perfectly, audible complained of packet loss. I am not sure what the noise floor looks like when comparing ultrasound to the normal audible range. It does seem unlikely to me that all this street noise would only be in the audible range and not ultrasonic, but since my ears can't hear ultrasound, I have no idea. Ultrasound did work better. I tried the image as well; no idea if it worked. I got tired of waiting.
- buboard 7y agoprobably has to do with the webcam, mine was a microsoft HD cam
- sdan 7y agoI remember Google had an extension that did something similar like 5-10 years ago... not sure what happened to that (obviously probably Killed By Google). Otherwise, this is definitely cool! Could be used like airdop.
- pgeorgi 7y agoI believe that extension would be https://chrome.google.com/webstore/detail/google-tone/nnckehldicaciogcbchegobnafnjkcne https://chrome.google.com/webstore/detail/google-tone/nnckeh... (last updated 3 years ago). Not sure if that was ever something official or just an experiment. There's also (the non-Google) chirp.io that started around the same time.
- rbirkby 7y agoCould do with a dog frightener sample. Some people in our wework are allergic to dogs, so this would help them.
- thomasfl 7y agoThis cool hack deserves the name AirDrop much more than the AirDrop feature created by Apple. No bluetooth or other radio transmitted standard used, and no infrared used either. Hey, I see lots of supercool social datings apps using this hack.
- andromeduck 7y agoA smart display stuff like Chromecast and probably airplay use this.
- fookyong 7y agoReminds me of Clinkle: https://en.wikipedia.org/wiki/Clinkle https://en.wikipedia.org/wiki/Clinkle
- plq 7y agoWould this work even with crappy laptop speakers or would you need some proper hardware?
- dessant 7y agoThis transmission method should work with most speakers, chirp.io has tested it with greeting card speakers. https://www.reddit.com/r/programming/comments/9zp0v0/sending_emoji_or_anything_else_through_sound_via/eajf2bh/ https://www.reddit.com/r/programming/comments/9zp0v0/sending...
- userbinator 7y agoThat's because "greeting card speakers" are piezos, and have a much higher frequency response curve than even normal tweeters. On the other hand, they also have no bass.
- egorfine 7y agoSo, a modem?
- IggleSniggle 7y agoA modem _implemented in a browser_ for any device with a microphone and speaker (and browser), yes. I'm really enjoying trying to think of good use cases for this, tbh
- slowenough 7y agoA PWA that picks up and beacons that emit local area "off-internet" websites wherever you go?
- IggleSniggle 7y agoI was thinking along similar lines. A neighborhood sneaker-net backed by something like gun https://github.com/amark/gun https://github.com/amark/gun
- marknadal 7y agoTHIS WOULD BE SO COOL!!!!!! please email me :D :D :D
- kreetx 7y agoYes, but in a browser ! :p It reminds me the quote: "Everything that can be implemented in javascript will be implemented in javascript." And this implementation is actually pretty neat.
- fsiefken 7y agoI wonder what the bandwidth limit would be if you took 44.1kHz audio transmission to the extreme. Something like 56k6 modems?
- mattkrause 7y agoProbably quite a bit higher: POTS was band-limited to something like 300-3000 Hz, which covers speech pretty well but not much else (hence the tinny hold music).
- fsiefken 7y agoIf this is true, then a brief 30s audio signal would yield more then a A4 photo capture of high density visual encoding, like microsoft hccb barcodes, interesting
- mattkrause 7y agoRaw audio files are pretty massive. A .wav file is 16 bits/sample x 44,100 samples/sec ≈ 700 kbps. Thirty seconds of that is about 2.5 Mb, which is a reasonable size for a photo. However, you wouldn't be able to send nearly that much data, since you'll be limited by various kinds of noise.
- davinic 7y agoBut wouldn't POTS imply a far less noisy environment once filtered?
- mattkrause 7y agoIt's a tradeoff. You're now nyquest-limited to sending fewer symbols per second (baud), but you might be able to use a larger "vocabulary" of symbols. This was one of the big changes in modem design. The first 300 baud modems used one 1 bit/symbol, but the V34 modems used a bigger symbol set that could send 6-10 bits/symbol (and also sent the symbols faster).
- tiku 7y agoIt works, but I can even hear the ultrasonic variant. I guess it's more like vibrations from the surrounding case than the speaker sound itself.
- userbinator 7y agoI suspect that's more due to aliasing or some other DSP that's happening (most audio designs have bandpass filters, because anything outside the usual range is not considered a valid signal.)
- IggleSniggle 7y agoWhile this is true, 19k is also hearable to most young people (maybe under 25 or so). We use 44k because it is right above double the cutoff of human hearing.
- nxpnsv 7y agoUsing above half sampling rate will cause audible artifacts from aliasing. I guess you sampling rate is 44k...
- copperx 7y agoOnly exotic, multi-thousand dollar speakers will reproduce 44k, and for that you need a 96k sampling rate. By using a sample rate of 44k you can theoretically only reproduce up to 22k.
- IggleSniggle 7y agoYou may have misunderstood my comment. 19k/20k is right at the limit of human perception for people with extremely good ears. Thus, "we use 44k because it is right above double the cutoff," ie 22k. As an aside, you will see 96k used (or more commonly 48k), but mostly for production work where the extra information could have value (comparable to using RAW for images, even though humans can't perceive all the information "natively").
- 7y ago
- est31 7y agoOn a related note, even if the user has disabled speakers or muted the website, you can still make it generate noises: https://thume.ca/screentunes/ https://thume.ca/screentunes/
- Santosh83 7y agoIs that page supposed to produce a speaker noise? It doesn't produce anything audible here (standard Firefox on Windows 10)...
- Rychard 7y ago> On some LCD monitors this page will cause the screen to emit a tone that varies in pitch with the bar height. Maximize window for best results. Looks like any noise is the by-product of the electronics within the device, rather than anything playing through the speakers. Coil whine (or something to that effect), I imagine.
- est31 7y agoThe noise should be generated by your LCD screen and is usually faint but exant. The larger the area it occupies the louder it is, so it's recommended to maximize it. You might also have an LCD screen that doesn't emit sound, but I don't know the details.
- mpolichette 7y agoThis is soo cool. Thanks for sharing. I have a pretty large monitor and it is easily audible when full screen.
- lecarore 7y agoThis worked to transmit "hello world" between my desktop (firefox) and mobile (firefox). Great project :) Of course you need a relatively silent room. This could have many nice applications
- tomxor 7y agoHas anyone figured out the throughput of this yet?
- emi420 7y agoI'm working in a project for my local fire station to receive GPS data via VHF radio (widely used by emergency services in my country). We are trying with DTMF, this seems interesting.
- paulie_a 7y agoDon't they already do this? I hear them all the time on my scanner? Hell they use a four digit unencrypted code to activate the emergency sirens.
- copperx 7y agoI thought that fire trucks had a switch to activate the sirens by the drivers; I had no idea they were activated remotely by radio.
- paulie_a 7y agoI was referring to the standalone towers in the Midwest. Maybe elsewhere. When I was a kid i would wake up on Saturdays at noon due to the siren. My dad also had a police scanner I could hear. One summer I put 1 and 1 together All you need is a dtmf decoder and a small transmitter to set the off those large sirens on high poles throughout that sprinkle the country in small towns and probably large cities
- jrockway 7y agoThere is a lot of prior art here, the most relevant of which is probably APRS: https://en.wikipedia.org/wiki/Automatic_Packet_Reporting_System https://en.wikipedia.org/wiki/Automatic_Packet_Reporting_Sys... Newer digital modes do much better than this older AFSK system, but FSK does work pretty well. Some newer things to look into: https://en.wikipedia.org/wiki/WSPR_(amateur_radio_software) https://en.wikipedia.org/wiki/WSPR_(amateur_radio_software) FT8: https://en.wikipedia.org/wiki/WSJT_(amateur_radio_software) https://en.wikipedia.org/wiki/WSJT_(amateur_radio_software) The more interesting modes (WSPR, FT8) are designed for high-loss channels, so have a lot of error correction. For example, I can use 5W of power, indoors, to communicate across the country with it. For high-bandwidth VHF channels, it doesn't matter what you use really. The goal would be to find something that already exists and is easy to integrate, and there are a lot of options.
- eigenvalue 7y agoThis seems like a good way of doing data exfiltration from a secured/monitored computer. Just get the source from git and run it locally in the browser, then take whatever file you want to extract, zip it, and then encode it in base64, using this to copy it to your personal phone. I bet the Goldman Sachs programmer who went to prison for uploading his trading code to an FTP server wishes he had been more clever like this.
- dangerface 7y agoYou could just use your phone to listen to the cpu to extract whatever you want. https://www.pcworld.com/article/2082200/listen-up-rsa-keys-snatched-by-recording-cpu-sounds-with-a-phone.html https://www.pcworld.com/article/2082200/listen-up-rsa-keys-s...
- anonu 7y agoBut there's a lot easier ways to exfiltrate I'd imagine. Encrypting data and using the web for transferring. This would have the effects of obfuscation, deniability and just simple data transfer. Graphics cards are also massively high bandwidth devices... You'd need to figure out how to encode a digital signal and hook up to the wire. Or just record video off the screen.
- cyborgx7 7y agoexport data as a video of a shifting qr code sounds like a cool project
- eigenvalue 7y agoI actually wrote an implementation in Python of this exact idea: https://github.com/ANIME-AnimeCoin/Pastel/blob/18676aa55fe0ff2048d2a4428b24c388a5f95fbe/src/storage_layer/pastel_pastelid_qr_code_authentication.py https://github.com/ANIME-AnimeCoin/Pastel/blob/18676aa55fe0f...
- wil421 7y agoData loss prevention programs should be able to see you encrypting and encoding the file. Symantec’s website states it can detect someone encrypting a zip file or using PGP. It’s a cool thought experiment. Just do it on your coworkers computer :-)
- jermaustin1 7y agoWhen I was 12 or 13 I wrote a program that transmitted data over speaker and microphone. It would generate a 90ms tone for each byte and a 10ms silence. It wasn't elegant, and most of the code was stolen from Planet Source Code, but it worked mostly.
- widdershins 7y agoWhat did it sound like?
- jermaustin1 7y agoFor the most part like a less dynamic modem. Less EEEE-OOOO-SCRSHHHH and more EEE-EEE-EEE it had a base tone of something middle-c like (can't recall, it was 20 years ago now) add just added the byte value with a modifier on top of the base. So for long stretches of it it was just to my ear pretty much the same sound, especially when transmitting ascii text.
- savingGrace 7y agoWhat are some real applications for this?
- Bootwizard 7y agoStreaming high quality audio files
- royal_ts 7y agoGoogle uses this kind of Authentication for Chromecast when a User isn't connected to the same Network as the Chromecast is. This way you can still send Videos. It's called Guest Mode or something and is Opt-in
- bobbiechen 7y agoZoom does some kind of ultrasonic sound in Zoom Room AV systems to automagically pair your computer to the room. Unfortunately I can hear it (though none of my coworkers can) as a periodic high-pitched chirping.
- FpUser 7y agoI loved it, very cool
- dingo_bat 7y agoNice way to jump the airgap. Surprisingly fast too.
- adamredwoods 7y agoI used to have a 300 baud modem, which was used to connect computers over the phone (BBSs). It was fun to listen to and when I upped it to 1200 baud, it was fun to hear the difference from white noise to the more distinct beeps in the 300 baud. I think it's neat to experience data in different forms, audible, tangible, and maybe aromatic (smell-o-vision) data?
- manx 7y agoNice! What about implementing tcp/ip on top of that and running decentralized protocols like ipfs? Lots use cases. But the bandwidth is probably too limited.
- imvetri 7y agoThis is a good example of attacking digital machine without user knowing. A keylogger in ultrasonic range. Silent and effective. This technique works at OS level and browser level. And nobody can protect from these kind of attacks. Unless staying away from digital machines. Just an example of why digital growth is bad unless and until humanity live in harmony.