Hayes AT commands cheat sheet
The Hayes AT command set was how software talked to a modem: plain text starting with AT ("attention"). These are the commands our virtual modem understands. Try them in the console under the player.
| Command | What it does here | Example |
|---|---|---|
ATDTnumber | Dial with tones (DTMF) and play the call | ATDT555-0199 |
ATDPnumber | Dial with pulses: 10 clicks per second, 60/40 break/make | ATDP4159 |
ATH | Hang up | ATH |
ATM0 / M1 / M2 | Speaker off / on until carrier detect (default) / always on | ATM2 |
ATL0–L3 | Speaker volume, quietest to loudest (default L2) | ATL3 |
ATS11=ms | DTMF tone and gap length, 50–255 ms (default 95); ATS11? reads it | ATS11=60 |
AT+MS=mode | Choose the modulation: V92, V90, V34, V32B, V22B, B103 | AT+MS=V34 |
ATXn | Result-code detail: X0 reports plain CONNECT, X1–X4 add the speed and protocol | ATX0 |
ATZ | Reset to defaults | ATZ |
ATI | Identify the modem | ATI |
Commands can be chained: ATM2L3DT5550199 turns the speaker on for the whole call, at full volume, and dials.
Result codes
OK | Command accepted |
CONNECT 52000/V.90 | Carrier detected; the speed and standard follow (with X1 or higher) |
BUSY | The line was engaged |
NO CARRIER | Something answered but no modem connection formed, or the call was hung up |
NO ANSWER | Ringing with no reply |
ERROR | The command was not understood |
Heads up: modems are loud. Playback starts at −12 dB and runs through a limiter.
AT console (Hayes commands)
Event list (the spectrogram as text)
The console and the controls mirror each other: change the modem menu and the console shows the AT+MS command it corresponds to. Real modems had hundreds more commands and S-registers, and the exact set varied by manufacturer. We support only the ones that change the sound. Hayes command syntax is a de facto standard, not an ITU recommendation; ITU-T V.250 later standardized much of it.