modem performs a piece of telecoms history. Below: the tools that already move data over sound for real, if speed rather than ceremony is what you are after; the standards this project actually implements once CONNECT appears; and the history that made the ceremony worth performing at all.
Standards and sources
What each part of the handshake actually was. The README and docs/ already carry the accurate detail on how this project uses them; these are the standards and references themselves.
-
Bell 103 modem (Wikipedia)
The standard this project's connection actually implements once CONNECT appears - AT&T's 1963 300 baud modem, with the same originate and answer tone pairs.
-
Frequency-shift keying (Wikipedia)
The modulation underneath everything past the overture: a bit is a shift between two frequencies, nothing more exotic than that.
-
ITU-T V.21
The international 300 baud duplex standard that gave Bell 103's originate/answer split its ITU form outside North America.
-
ITU-T V.22
1200 bit/s duplex, one step up the same lineage - a rung this project doesn't attempt to reach.
-
ITU-T V.34
Up to 33,600 bit/s - the standard behind the screech everyone actually remembers, and the one the README is explicit about not implementing for real.
-
Dual-tone multi-frequency signalling (Wikipedia)
What a dialled digit actually is: two simultaneous tones, chosen so no harmonic of one gets mistaken for the other.
-
Echo suppressor (Wikipedia)
Why a call had to announce itself before data could flow - left switched on, these devices would have muted the very signal a modem needed to hear.
-
ITU-T V.25
The recommendation that specifies the answer tone itself and the procedure for disabling echo control devices on the line - the reason the 2100 Hz ANSam tone exists at all.
Prior art and related projects
Tools that move data over sound for real, faster than this ever will. That's not a criticism - the README says as much - it's a reason to reach for one of these instead when speed, not ceremony, is the point.
-
minimodem
The reference Bell 103 implementation modem-audio's own test suite cross-validates against in both directions (see
docs/ber-calibration.md) - and the tool to reach for if the ceremony isn't what you're after. -
ggwave
A tiny data-over-sound library built for speed and range, with none of the dial tone, DTMF or answer-tone ceremony this project performs on purpose.
-
quiet
A JavaScript binding for libquiet that sends and receives data through a browser's own sound card - the same audio-as-a-wire idea, aimed squarely at throughput.
-
tynsel
A space- and time-efficient 300 baud Bell 103 software modem built to run on microcontrollers - the same standard, a very different constraint.
The history
Why any of this was worth building.
-
How a dial-up modem handshake works (Hackaday, annotating Oona Raisanen's spectrogram)
The annotated dial-up handshake spectrogram that is the actual reason this project exists - every stage of the sound named against what's making it.
-
Bulletin board system (Wikipedia)
What all this ceremony was actually for: the dial-up bulletin boards people called into for the better part of two decades before the web replaced them.
-
Hayes Smartmodem (Wikipedia)
The modem that introduced the AT command set - modem's own
ATDTandATAare still the same two commands, unchanged.