← All posts

RTTTL explained for musicians — from staff notation to ringtone text

· rtttl · notation · music theory · tutorial

You read sheet music but RTTTL strings look like line noise? Here's the format mapped onto concepts you already know — durations, octaves, key limitations and all.

If you come to motor music from the music side rather than the drone side, RTTTL looks hostile: mountain:d=4,o=5,b=140:8e,8f#,8g,8a... — where's the staff? What's d=4? Why are there no flats?!

Good news: if you read notation, you already know everything RTTTL encodes. It's just a 1990s Nokia engineer's idea of a lead sheet. Here's the translation table.

The three sections

Every RTTTL string is name : defaults : notes.

mountain — an arbitrary label, max 10 characters. Ignore it musically.

d=4,o=5,b=140 — the defaults, and this is pure time-signature-and-clef thinking:

  • b=140 is your tempo marking. Quarter note = 140. Exactly the metronome number on a score.
  • d=4 is the default duration — any note written without an explicit length is a quarter note (4 = quarter, 8 = eighth, 2 = half, just like note-value naming).
  • o=5 is the default octave — any note without an explicit octave lands here. Octave 5 starts at A4=concert... actually let's be precise, because this trips everyone up: RTTTL octave 5 runs from C5 to B5 in scientific pitch notation on most players, and RTTTL octave 6 note a6 is the A above that. Middle C (C4) is RTTTL's c4, the bottom of its range.

Reading a note token

16f#6. decodes right-to-left as a musician would:

  • 16 — sixteenth note (duration first, always)
  • f# — the pitch class
  • 6 — octave
  • . — a dot, exactly your dotted-note dot: duration × 1.5

If duration or octave are missing, the defaults from section two apply. So in d=4,o=5, a bare g is a quarter-note G5. This is why well-chosen defaults make strings shorter — the same logic as choosing a sensible key signature instead of writing accidentals everywhere. (It also saves literal bytes of ESC memory — see the 128-byte budget explained.)

The limitations that will offend you

No flats. RTTTL is sharps-only. Your B♭ must be written a#. Enharmonic spelling is a luxury this format does not offer, and yes, writing a piece in D♭ major as C# feels wrong. Do it anyway.

Four octaves, total. Octaves 4–7. Nothing below middle C, nothing above B7. Bass lines get transposed up; piccolo lines get transposed down. Arrangement under constraint — treat it like writing for a clarinet's comfortable register.

No triplets. Durations are strictly binary: 1, 2, 4, 8, 16, 32, plus dots. A triplet feel has to be faked with swung eighths or abandoned. This is the single biggest musical loss in the format — 6/8 and swing survive; genuine tuplets don't.

No dynamics, no articulation, no ties across values that don't exist. Every note is the same volume (the motor plays at one amplitude). A "tie" is just writing one longer note — but only if the combined value exists in the binary set.

Monophonic. One line per string. Polyphony on a quad comes from running four strings on four motors simultaneously — which is genuinely more interesting than it sounds; see the Canon in D walkthrough.

Rests are notes named p. 8p is an eighth rest. They cost memory like notes do, so Baroque-density rest writing gets expensive.

A worked translation

First two bars of Grieg's Mountain King theme, E minor, 4/4 at ♩=140. On the staff: eighth notes E4-F#4-G4-A4, B4-G4, then quarter B4 — except we transpose up an octave for motor projection (octave 4 is the quiet basement of the range, as our loudness measurements showed).

mountain:d=4,o=5,b=140:8e,8f#,8g,8a,8b,8g,4b,8a#,8f#,4a#

Every 8x is an eighth at octave 5 (the default). The 4b writes the quarter explicitly — though with d=4 a bare b would've worked; the explicit form just reads clearer. a# is the spelled-as-sharp B♭ that E-minor's raised... fine, it's the D#-chord's third respelled. It hurts. It works.

Why bother learning this

Because hand-tweaking is where arrangements get good. The converter does the mechanical MIDI-to-RTTTL translation, but the final 10% — respelling an awkward octave jump, dotting a note the quantiser flattened, trimming a rest — is fastest done directly in the string. If you can read a lead sheet, thirty minutes with this format and you'll edit RTTTL like text. Our syntax-mistakes guide covers the parser quirks to avoid while you do.

← All posts