Skip to content

Instantly share code, notes, and snippets.

@jlturner
Created July 16, 2014 00:45
Show Gist options
  • Save jlturner/6bffb82d764b7a9aa632 to your computer and use it in GitHub Desktop.
Save jlturner/6bffb82d764b7a9aa632 to your computer and use it in GitHub Desktop.
RTTTL Format Specifications
RTTTL (RingTone Text Transfer Language) is the primary format used to distribute
ringtones for Nokia phones. An RTTTL file is a text file, containing the
ringtone name, a control section and a section containing a comma separated
sequence of ring tone commands. White space must be ignored by any reader
application.
Example:
Simpsons:d=4,o=5,b=160:32p,c.6,e6,f#6,8a6,g.6,e6,c6,8a,8f#,8f#,8f#,2g
This file describes a ringtone whose name is 'Simpsons'. The control section
sets the beats per minute at 160, the default note length as 4, and the default
scale as Octave 5.
<RTX file> := <name> ":" [<control section>] ":" <tone-commands>
<name> := <char> ; maximum name length 10 characters
<control-section> := <control-pair> ["," <control-section>]
<control-pair> := <control-name> ["="] <control-value>
<control-name> := "o" | "d" | "b"
; Valid in control section: o=default scale, d=default duration, b=default beats per minute.
; if not specified, defaults are 4=duration, 6=scale, 63=beats-per-minute
; any unknown control-names must be ignored
<tone-commands> := <tone-command> ["," <tone-commands>]
<tone-command> :=<note> | <control-pair>
<note> := [<duration>] <note> [<scale>] [<special-duration>] <delimiter>
<duration> := "1" | "2" | "4" | "8" | "16" | "32"
; duration is divider of full note duration, eg. 4 represents a quarter note
<note> := "P" | "C" | "C#" | "D" | "D#" | "E" | "F" | "F#" | "G" | "G#" | "A" | "A#" | "B"
<scale> :="4" | "5" | "6" | "7"
; Note that octave 4: A=440Hz, 5: A=880Hz, 6: A=1.76 kHz, 7: A=3.52 kHz
; The lowest note on the Nokia 61xx is A4, the highest is B7
<special-duration> := "." ; Dotted note
; End of specification
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment