RTTTL/Nokring Specification

<ringing-tones-text-transfer-language> :=
       <name> <sep> [<defaults>] <sep> <note-command>+

<name> := <char>+    ; maximum name length 10 characters

<sep> := ":"

<defaults> := 
      <def-note-duration> |
      <def-note-scale> |
      <def-beats> 

<def-note-duration> := "d=" <duration>

<def-note-scale> := "o=" <scale> 

<def-beats> := "b=" <beats-per-minute>

<beats-per-minute> := 25,28,31,35,40,45,50,56,63,70,80,90,100,
                      112,125,140,160,180,200,225,250,285,320,
                      355,400,450,500,565,635,715,800,900 ; decimal value

; If not specified, defaults are
;
;  4   = duration
;  6   = scale   
;  63  = beats-per-minute


<note-command> :=
      [<duration>] <note> [<scale>] [<special-duration>] <delimiter>


<duration> :=
      "1"  |  ; Full 1/1 note
      "2"  |  ; 1/2 note
      "4"  |  ; 1/4 note
      "8"  |  ; 1/8 note
      "16" |  ; 1/16 note
      "32" |  ; 1/32 note
     
<note> :=
      "P"  |  ; pause
      "C"  |
      "C#" |
      "D"  |
      "D#" |
      "E"  |
      "F"  |
      "F#" |
      "G"  |
      "G#" |
      "A"  |
      "A#" |
      "H"         

<scale> :=
      "5" |   ; Note A is 440Hz
      "6" |   ; Note A is 880Hz
      "7" |   ; Note A is 1.76 kHz
      "8"     ; Note A is 3.52 kHz

<special-duration> :=
      "."     ; Dotted note

<delimiter> := ","

; End of specification