Profile picture of Amthonie

Amthonie | Melodies

Back home

Ring Tone Text Transfer Language — a compact plain‑text format from the feature‑phone era, once responsible for those impressive, popular, and occasionally rather annoying ringtones — is used here to drive a piezo‑buzzer emulator in your browser. Below is a small collection of my own miniatures, ranging from Bach to early arcade themes. You can try your own in the playbox, and a short syntax guide follows for anyone curious about how these strings work.

I use the format to give my reTerminal’s e‑paper display — running ESPHome — something more interesting to do than emit a single, dutiful beep. These little fragments make it play brief, occasionally irritating tunes as hourly chimes or when events occur, such as the front door opening.

My collection

Bach, Fuga d‑moll

fuga-d:d=32,o=6,b=100:p,a,a5,g5,g,a,a5,f5,f,a,a5,e5,e,a,a5,d5,d,a,a5,c#5,c#,a,a5,d5,d,a,a5,e5,e,a,a5,f5,f,a,a5,a4,a5,a,a5,b4,b5,a,a5,c#5,c#,a,a5,d5,d,a,a5,c#5,c#,a,a5,d5,d,a,a5,e5,e,a,a5,f5,f,p;

This version of the exposition from Bach’s Fugue in D minor reimagines the subject through interlocking contrary-motion octaves: the alternating intervals remain instantly recognizable, translated into a rhythmic pseudo-polyphony tailored for embedded performance.

Bach, Inventio 8

inventio_8:d=16,o=5,b=160:p,f,p,a,p,f,p,c6,p,a,p,f6,p,e6,d6,c6,d6,c6,a#,a,a#,a,g,8f,p;

The opening bars of Bach’s Invention No. 8, pared down to their core melodic shape and delivered with the bright insistence typical of piezo buzzers. I use this miniature as my hourly chime — a polite, slightly anachronistic reminder of the passing time.

Bach, Toccata d‑moll

toccata-d:d=16,o=6,b=180:p,a,g,8a,8p,g,f,e,d,8c#,8p,4d,4p,a5,g5,8a5,8p,8e5,8f5.,32p,8c#5,4d5.,p;

The opening of Bach’s D‑minor Toccata, distilled to a brisk contour and delivered with the bright insistence typical of small embedded speakers.

Beep ascending

ascending:d=16,o=6,b=220:p,e,c,e,g,a#;

A brisk little arpeggio in C7, stepping upward with the earnest determination of a device trying its very best to start the day. If used as a startup tune, it gives an ESPHome‑driven buzzer a touch more personality than a solitary beep ever could.

Beep descending

descending:d=16,o=6,b=220:p,g,a#,g,e,c;

The inverse arpeggio in C7, politely walking itself back down the scale. If used as a shutdown cue, it provides a neat auditory full‑stop that feels more intentional than a perfunctory click or chirp.

Beep once

beep-once:d=16,o=6,b=180:p,32d#,e;

A single, tidy chirp — just enough to confirm a button press without pretending to be musical. If used for left and right navigation buttons, it’s the minimal acknowledgement a piezo buzzer can give while still sounding intentional.

Beep twice

beep-twice:d=16,o=6,b=180:p,32d#,e,p,32d#,e;

Two quick chirps in succession, typically used as a refresh‑button confirmation. It’s the same gesture as Beep Once, merely repeated, giving the device a faint sense of hierarchy in its button responses.

Pac‑Man

pacman:d=4,o=5,b=112:p,32b,32p,32b6,32p,32f#6,32p,32d#6,32p,32b6,32f#6,16p,16d#6,16p,32c6,32p,32c7,32p,32g6,32p,32e6,32p,32c7,32g6,16p,16e6,16p,32b,32p,32b6,32p,32f#6,32p,32d#6,32p,32b6,32f#6,16p,16d#6,16p,32d#6,32e6,32f6,32p,32f6,32f#6,32g6,32p,32g6,32g#6,32a6,32p,32b6.,p;

The unmistakable opening motif from Pac‑Man, rendered in compact form and unapologetically rooted in its 8‑bit origins. It announces itself each time my front door opens — a small burst of arcade cheerfulness at the threshold.

Pengo

Pengo:d=4,o=5,b=180:p,16e6,16p,16d6,16p,16e6,16p,16b,16p,16g,16p,16b,16p,8e,8p,16e6,16p,16d6,16p,16e6,16p,16b,16p,16g,16p,16b,16p,8e,8p,16e6,16p,16f#6,16p,16g6,16p,32f#6,32p,16g6,8p,16e6,16p,16f#6,16p,32e6,32p,16f#6,8p,16d6,16p,16e6,16p,16c6,16p,16g,16p,16c6,16p,16e6,16p,p;

The jaunty theme from Pengo, distilled into a brisk, buzzer‑friendly outline. Simple, bright, and unmistakably shaped by early arcade sound.

Small Ben

small_ben:d=4,o=5,b=360:f,a,g,2c,p,f,g,a,2f,p,a,g,f,2c,p,c,g,a,2f,p,16f,16g,16a,16c6,16e6,16c6,16a,16g,16f,p;

Small Ben is a compact RTTTL rendering of the Big Ben chimes — pared down, briskly paced, and with the unmistakable timbre of a piezo buzzer. It preserves the familiar Westminster contour while embracing the slightly metallic character that such hardware inevitably adds.

Snoopy

snoopy:d=4,o=5,b=220:8d,8d#,8e,c6,8e,c6,8e,2c6,8p,8c6,8d6,8d#6,8e6,8c6,8d6,e6,8b,d6,c6,p;

The lively opening strain of The Entertainer, known to me chiefly from Radarsoft’s Snoopy on the Commodore 64. A bright, compact fragment of ragtime refracted through early home‑computer sound.

Try it yourself

Paste or write your own RTTTL string below and give it a play. A brief disclaimer: experimenting with this may prove unexpectedly addictive and could test the patience of nearby housemates.

The syntax

An RTTTL string packs a whole melody into one line of plain text: a name, a few default settings, then the notes themselves.

name:d=4,o=5,b=125:notes
      │   │    │
      │   │    └─ tempo (BPM)
      │   └────── default octave
      └────────── default note length (4 = quarter)

note = [length]letter[#][octave][.]
  1/4/8/16/32    → length
  c d e f g a b  → notes
  p              → rest (instead of a note)
  #              → sharp (flat not supported)
  7              → octave
  .              → dotted ×1.5
  length/octave omitted → uses the d / o defaults

Examples:  8g#6 = eighth G# octave 6
           4c   = quarter C (default octave)
           8c6. = dotted eighth C6
           16p  = short rest

For a detailed explanation of the format as implemented in ESPHome, see the RTTTL component documentation.