[HN Gopher] Web Audio Modem (2017)
       ___________________________________________________________________
        
       Web Audio Modem (2017)
        
       Author : klaussilveira
       Score  : 60 points
       Date   : 2022-05-27 14:57 UTC (8 hours ago)
        
 (HTM) web link (martinmelhus.com)
 (TXT) w3m dump (martinmelhus.com)
        
       | loloquwowndueo wrote:
       | "What do you do when you cannot copy text between computers due
       | to lack of internet connectivity? "
       | 
       | Literally what Minimodem was created for :)
       | 
       | http://www.whence.com/minimodem/
        
         | pseudosavant wrote:
         | Never heard of it, but looks really cool. Too bad there isn't a
         | web/WASM build of Minimodem so that it'd run in any web
         | browser. This could be an interesting way to do data exfil.
         | Although that has already been done covertly at ultra-sonic, or
         | near ultra sonic, frequencies that real people can't actually
         | hear.
        
       | egypturnash wrote:
       | "N.B. This was only ever intended as a gimmick and a proof of
       | concept - not something that I would actually use at work. Please
       | keep this in mind before arguing why I should be fired over this
       | in various online comment sections." - from the end of the
       | article
        
       | quijoteuniv wrote:
       | They should fire this guy!
        
       | 1-6 wrote:
       | Is this like a QR code but using audio instead?
        
       | booleanbetrayal wrote:
       | What a cool project! Hoping to see a full web suite with
       | something like "ProTerm" integration someday.
        
       | speps wrote:
       | > The AudioContext was not allowed to start. It must be resumed
       | (or created) after a user gesture on the page.
       | 
       | Created a new issue: https://github.com/martme/webaudio-
       | modem/issues/8
        
         | moron4hire wrote:
         | The last update to the repo was 4 years ago. So you'll should
         | probably not hold your breath and just chuck this into the
         | browser console:
         | oscillators[0].context.resume()
        
       | chmorgan wrote:
       | Was excited to try it out but no audio here from the encoder,
       | Safari on OSX. Plugging some text in, hitting encode, maybe I'm
       | doing it incorrectly?
        
         | tristor wrote:
         | It worked for me on OSX with both Firefox and Safari, although
         | I did need to whitelist Javascript on Firefox in NoScript for
         | the site. The volume level was pretty low, but was able to hear
         | it with headphones.
        
       | ec109685 wrote:
       | How close is this to something that would work with an off the
       | shelf modem?
        
         | jaywalk wrote:
         | It's not.
        
       | rkagerer wrote:
       | I used amodem with high-end audio cables in production a long
       | time ago - can't get into details:
       | 
       | https://news.ycombinator.com/item?id=17333257
        
         | exikyut wrote:
         | Heh, I parsed that in 3 stages.
         | 
         | - "oh, another audio modem library to file away"
         | 
         | - "aww, I wonder what the details are... but that's a story in
         | itself, alright then"
         | 
         | - "wait that says _in production_. this is actually keeping
         | something standing up. Oh. I wonder if the recipient actually
         | realizes. "
         | 
         | So, the one question I probably *can* ask: what effective data
         | rate did you manage?
        
       | strbean wrote:
       | I love this! I've thought about doing it myself in response to
       | the lack of data channels in WebRTC.
        
       | brian-armstrong wrote:
       | Self plug - another web modem
       | 
       | https://quiet.github.io/quiet-js
        
       | ale42 wrote:
       | Why not just reusing an existing modulation? There are dozens out
       | there, from fast ones to super robust ones like JT65 (ridiculous
       | baudrate, but you can basically decode it even when the sounds
       | can't be heard any more)
        
       | kcarter80 wrote:
       | I skimmed and couldn't find. Is the baud rate mentioned?
        
       | PaulHoule wrote:
       | For a long time I've wondered if you could make a synthetic
       | aperture sonar with PC or phone parts.
        
         | yourapostasy wrote:
         | Your comment prompted me to wonder what kind of other kinds of
         | shenanigans we could get up to if we combined "Acoustic
         | beamsteering with speakers and Arduino" [1] with an array of
         | normal sonar transducers.
         | 
         | [1] https://www.youtube.com/watch?v=_CSbL-PUwbM
        
         | cadr wrote:
         | Is this of interest to you?
         | https://hackaday.com/2022/02/23/bend-it-like-sonar-beacon-wi...
        
       | unholiness wrote:
       | A project I worked on in college was a "steganographic modem",
       | transferring data in the audio spectrum by lacing a song being
       | played with a signal, such that the signal in each frequency band
       | would always be below the threshold that the human ear could tell
       | the difference.
       | 
       | Even in a controlled setting the bitrate we achieved was very
       | low, but for most songs it was enough to encode the lyrics. Seems
       | quite useful until you remember both ends already need the
       | original audio file in its entirety!
        
         | itintheory wrote:
         | > Seems quite useful until you remember both ends already need
         | the original audio file in its entirety!
         | 
         | That still seems quite useful. Steganography aims to obfuscate
         | the presence of communication, not encrypt the data. You'd
         | embed your ciphertext via the audio steganography. I can
         | imagine this used for a dead drop by placing the encoded audio
         | in a jukebox, or potentially even playing it over the
         | radio/muzak system, if that isn't too lossy / the algorithm has
         | enough error correction.
        
         | exikyut wrote:
         | Very cool. I wonder if the source to this is still floating
         | around anywhere?
        
       | P4u1 wrote:
       | Genious! Great idea man.
        
         | nomel wrote:
         | You would have loved the 90's!
        
       | a-dub wrote:
       | good ol fsk. i've built rudimentary time-stamping schemes in this
       | way in past. basic signal processing can be fun!
        
       | ranger207 wrote:
       | Putting an increasing series of ASCII characters into the encoder
       | results in some surprisingly musical tones
        
       | jancsika wrote:
       | I remember reading a paper where the author had a proof-of-
       | concept for sending data over audio using an algorithm that
       | created pleasing sounds in the normal hearing range.
       | 
       | Does anyone know what I'm talking about? Some of the demos
       | sounded like R2D2 but also carried data. I can't find it using a
       | Google search.
        
         | 3-cheese-sundae wrote:
         | This is almost certainly not the specific algorithm you're
         | referring to, but Olivia MFSK sounds pleasing and can send 150
         | char/minute with a 7-bit ASCII data set:
         | https://www.youtube.com/watch?v=Yz7a--ePSNs
        
         | ggerganov wrote:
         | I don't know the paper, but I'm actually working on an Arduino
         | library for data over sound and I think it kind of sounds
         | similar to R2D2. Here is a 1 min demo if you are interested:
         | 
         | https://www.youtube.com/watch?v=qbzKo3zbQcI
        
           | [deleted]
        
           | jancsika wrote:
           | Ooh, thanks for the link!
           | 
           | I _think_ the researcher I had in mind was funded by
           | Microsoft, or worked for Microsoft? They sounded like little
           | robotic bird calls or something.
           | 
           | It's like Chirp.io took a single example from that paper and
           | used it exclusively.
        
       | VikingCoder wrote:
       | I used to plug my TRS-80 MC-12 into a cassette recorder to save
       | and load programs. I wonder if an online TRS-80 emulator can
       | still do that trick...?
        
       | jerf wrote:
       | If you're on debian/ubuntu, you should be able to install
       | "minimodem", which allows for this sort of thing with the usual
       | wide variety of command-line parameters.                   echo
       | "hello hacker news" | minimodem --tx 110
       | 
       | yields a nice classical "telemetry" sound.
        
       | cadr wrote:
       | On this topic, has anyone here used direwolf
       | (https://github.com/wb2osz/direwolf) to communicate between two
       | computers without radios?
        
       | dang wrote:
       | Discussed at the time:
       | 
       |  _Using the Web Audio API to Make a Modem_ -
       | https://news.ycombinator.com/item?id=15471723 - Oct 2017 (63
       | comments)
        
       ___________________________________________________________________
       (page generated 2022-05-27 23:01 UTC)