1# The Line - Soviet and Russian exchange tones after GOST 28384-89 and ITU-T E.180 - https://lab.glossema.dev/play/the-line2# grid: unit 1000ms, bar 3000ms3# Dial, ringing and busy tones at 425 Hz; special information tone at 950, 1400 and 1800 Hz.4# Dial: 2000 ms of tone, 1000 ms of silence. Ringing: 1000 ms on, 4000 ms off.5# Busy: 350 ms on, 350 ms off. Special information: 333 ms per tone, no gap, then 999 ms off.6# Three calls: nobody answers, the line is busy, the call cannot go through.7# 15 bars, 34194 ms.89# ---- call 1 of 3: nobody answers ----10:put"Dial tone";11# bar 112:beepfrequency=425 length=2000ms;# dial 425 Hz13:delay 2000ms;14:delay 1000ms;# dial, silent1516:put"Ringing tone";17# grid: unit 1000ms, bar 5000ms18# bar 219:beepfrequency=425 length=1000ms;# ringing 425 Hz20:delay 1000ms;21:delay 4000ms;# ringing, silent2223# bar 324:beepfrequency=425 length=1000ms;# ringing 425 Hz25:delay 1000ms;26:delay 4000ms;# ringing, silent2728# bar 429:beepfrequency=425 length=1000ms;# ringing 425 Hz30:delay 1000ms;31:delay 4000ms;# ringing, silent3233# ---- call 2 of 3: busy ----34:put"Dial tone";35# grid: unit 1000ms, bar 3000ms36# bar 537:beepfrequency=425 length=2000ms;# dial 425 Hz38:delay 2000ms;39:delay 1000ms;# dial, silent4041:put"Busy tone";42# grid: unit 350ms, bar 700ms43# bar 644:beepfrequency=425 length=350ms;# busy 425 Hz45:delay 350ms;46:delay 350ms;# busy, silent4748# bar 749:beepfrequency=425 length=350ms;# busy 425 Hz50:delay 350ms;51:delay 350ms;# busy, silent5253# bar 854:beepfrequency=425 length=350ms;# busy 425 Hz55:delay 350ms;56:delay 350ms;# busy, silent5758# bar 959:beepfrequency=425 length=350ms;# busy 425 Hz60:delay 350ms;61:delay 350ms;# busy, silent6263# bar 1064:beepfrequency=425 length=350ms;# busy 425 Hz65:delay 350ms;66:delay 350ms;# busy, silent6768# bar 1169:beepfrequency=425 length=350ms;# busy 425 Hz70:delay 350ms;71:delay 350ms;# busy, silent7273# ---- call 3 of 3: the call cannot go through ----74:put"Dial tone";75# grid: unit 1000ms, bar 3000ms76# bar 1277:beepfrequency=425 length=2000ms;# dial 425 Hz78:delay 2000ms;79:delay 1000ms;# dial, silent8081:put"Special information tone";82# grid: unit 333ms, bar 1998ms83# bar 1384:beepfrequency=950 length=333ms;# special information 950 Hz85:delay 333ms;86:beepfrequency=1400 length=333ms;# special information 1400 Hz87:delay 333ms;88:beepfrequency=1800 length=333ms;# special information 1800 Hz89:delay 333ms;90:delay 999ms;# special information, silent9192# bar 1493:beepfrequency=950 length=333ms;# special information 950 Hz94:delay 333ms;95:beepfrequency=1400 length=333ms;# special information 1400 Hz96:delay 333ms;97:beepfrequency=1800 length=333ms;# special information 1800 Hz98:delay 333ms;99:delay 999ms;# special information, silent100101# bar 15102:beepfrequency=950 length=333ms;# special information 950 Hz103:delay 333ms;104:beepfrequency=1400 length=333ms;# special information 1400 Hz105:delay 333ms;106:beepfrequency=1800 length=333ms;# special information 1800 Hz107:delay 333ms;108:delay 999ms;# special information, silent
One command sounds one tone: :beep frequency=<hertz> length=<time>; the beeper plays one note at a time.
:delay is the clock. A beep starts the tone and returns at once, so every note is a beep followed by a delay of the same length and a small gap.
Most tunes here are written out note by note, a beep and a delay each; some also come as code, with loops, tables and functions, that plays the very same notes. Download any of these and run it in a terminal.