Sonic Screwdriver - audio BAUDOT decoder experiment.

NOTE: Use HTTPS - getUserMedia() is a powerful feature that can only be used in secure contexts;

TypeHere: needs two devices. The mic on the ear bud seems to be muted during output.

Decoded: ( \-CR, \-LF, @-Shift_LTRS, #-Shift_FIGS )

Use HTTPS - getUserMedia() is a powerful feature that can only be used in secure contexts;

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 | good examples | Mozilla WebAudio Analyser | Microsoft WebAudio | getUserMedia | /* https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia getUserMedia() is a powerful feature that can only be used in secure contexts; in insecure contexts, navigator.mediaDevices is undefined, preventing access to getUserMedia(). A secure context is, in short, a page loaded using HTTPS or the file:/// URL scheme, or a page loaded from localhost. */

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.


Generate samples tools

Send - BAUDOT: Use @ for SHIFT_LTRS , and # or SHIFT_FIGS/numbers. Start with "@#@"

BAUDOT: Add Shifts:

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

BAUDOT decodes

shifted


FIGS, LTRS


BAUDOT codes found