Decoded:
Press start
BAUDOT codes found
This WebAudio sample trys to decode BAUDOT modem, using a ScriptProcessor. It's necessary to use a ScriptProcessor in order to not miss any clipping samples - otherwise you could implement this using a RealtimeAnalyser to only grab samples when necessary.
The usage is quite easy:
var meter = createAudioMeter(audioContext,clipLevel,averaging,clipLag); [ mic ] -+--[ iir filter ]--[ mark energy ]--+ [ comparitor ]--[ UART ]--[code] \--[ iir filter ]--[ space energy ]--/ mark 1400Hz, space 1800Hz, serial --_12345-- UART to codes -- audioContext: the AudioContext you're using. meter.checkClipping(); returns true if the node has clipped in the last clipLag milliseconds. meter.shutdown(); used to destroy the node (it's important to disconnect and remove the event handler for any ScriptProcessor).
Copied from the source on Github and V.21
I would like to use the microphone on the plugged in earbuds. this page is only using the microphones on the screen
media recorder example - using Using the MediaStream Recording API seems to be using the ear bud mic, but I cannot work out why.
Send - BAUDOT: Use @ for SHIFT_LTRS , and # or SHIFT_FIGS/numbers. Start with "@#@"
BAUDOT: Add Shifts: or TypeHere: ( experimental! )
This section generates samples to decode to keep the web page smaller.
extra stopBits: random extra number of stop bits between characters: bits repeat : to allow CI repeat_noise : to allow CI
UART:baudot baud: 50,110,300,75,600,1200
Samples captured using Audacity. mono, 8000 samples per second.
BAUDOT reference | audio to BAUDOT