modem

Prior art, standards and history

Everything the overture stands on

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.

Read the phase-by-phase explainer

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.

Try the demo

We would like to count how many people come here to listen, using Google Analytics. Cookies are only set if you accept, and the modem answers exactly the same either way.