Le RTTL : quand les sonneries de téléphones se programmaient en texte

Dans les années 1990 et début 2000, avant l’ère des smartphones et des MP3, personnaliser la sonnerie de son téléphone portable était un petit luxe. Certains modèles de Nokia, Ericsson ou Siemens permettaient d’importer ou de composer ses propres mélodies.
L’un des formats les plus utilisés pour cela était le RTTL (Ring Tone Text Transfer Language).

Qu’est-ce que le RTTL ?

Le RTTL est un format textuel inventé par Nokia pour décrire des mélodies destinées aux sonneries polyphoniques simples. Il encode une musique sous forme de texte, en définissant :

  • le nom de la sonnerie,
  • des paramètres globaux comme la durée des notes par défaut, l’octave par défaut et le tempo,
  • la séquence des notes (do, ré, mi…) avec leur durée et hauteur.

Exemple de structure RTTL :

nom:d=4,o=5,b=100:notes
  • d = durée par défaut des notes (1 = ronde, 2 = blanche, 4 = noire, etc.),
  • o = octave par défaut,
  • b = tempo en battements par minute,
  • notes = suite de notes (a, b, c, d, e, f, g), avec éventuelles altérations (# pour dièse) et durées spécifiques.

Par exemple :

Indiana:d=4,o=5,b=250:e,8p,8f,8g,8p,1c6,8p.,d,8p,8e,1f,p.,g,8p,8a,8b,8p,1f6,p,a,8p,8b,2c6,2d6,2e6,e,8p,8f,8g,8p,1c6,p,d6,8p,8e6,1f.6,g,8p,8g,e.6,8p,d6,8p,8g,e.6,8p,d6,8p,8g,f.6,8p,e6,8p,8d6,2c6

jouera une petite séquence inspirée du thème de Indiana Jones.

Pourquoi c’était populaire ?

  • Facile à partager : une mélodie RTTL n’est qu’une ligne de texte, on pouvait donc la recopier à la main, la publier dans des magazines, ou l’échanger par SMS.
  • Personnalisation accessible : pas besoin de savoir lire une partition complète, quelques lettres suffisaient pour coder une mélodie.
  • Communauté créative : à l’époque, des sites entiers regroupaient des milliers de sonneries RTTL à télécharger ou à saisir directement dans son téléphone.

Du Nokia 3310 à Meshtastic : quand le RTTL revient à la vie

On a vu que le RTTL (Ring Tone Text Transfer Language) était le format culte qui permettait de saisir nos sonneries personnalisées à l’époque des Nokia et Ericsson.
Eh bien, bonne nouvelle : cette petite relique des années 2000 n’a pas disparu ! On la retrouve aujourd’hui… dans un projet open source moderne : Meshtastic.

Le lien avec Meshtastic

Pour améliorer l’expérience utilisateur, il propose un module de notification externe. Celui-ci permet de brancher :

  • une LED,
  • un vibreur,
  • un buzzer piezo,
  • ou même des systèmes plus exotiques (sirène, strobe, etc.).

Ce module peut être configuré pour réagir lorsqu’un message arrive sur le réseau maillé.

Le rôle du PWM et du RTTL

Par défaut, un buzzer actif ne fait que bip-bip. Mais sur les ESP32, NRF52840 ou RP2040, il existe une option magique : use_pwm = true.
Dans ce mode, le buzzer n’émet plus un simple signal fixe, mais peut jouer des mélodies RTTL !

👉 En clair : quand un message arrive sur ton réseau Meshtastic, tu peux faire rejouer les sonneries cultes de ton adolescence (Mario, Nokia Tune, Mission Impossible, etc.).

Exemple de configuration

Dans la configuration du module de notification externe :

  • tu actives PWM,
  • tu envoies une mélodie RTTL depuis l’appli Meshtastic (Android, Web ou CLI),
  • ton buzzer branché sur l’ESP32 se met à chanter.

Ainsi, au lieu d’un simple bip monotone, tu peux entendre :

Nokia:d=4,o=5,b=112:e6,d6,f#6,g#6,c#6,b5,d6,e6

(la célèbre sonnerie par défaut Nokia)

Exemple hardware

Dans mon exemple J’utilise un Xiao NRF52840

J’utilise les pin in/out suvantes

//legal SPI pin
#define PIN_SPI_MISO D9
#define PIN_SPI_MOSI D10
#define PIN_SPI_SCK D8
#ifdef XIAO_BLE_LEGACY_PINOUT
// Legacy xiao_ble variant pinout
#define SX126X_CS D0
#define SX126X_DIO1 D1
#define SX126X_BUSY D2
#define SX126X_RESET D3
#define SX126X_RXEN D7
//Pour l'I2C
#define PIN_WIRE_SDA (4)
#define PIN_WIRE_SCL (5)

Il me reste juste D6 de libre et on va l’utiliser dans mon exemple

ATTENTION in Buzzer ne peut pas être cablé directement sur votre node il faudra donc envisager de rajouter un transistor, Je vous conseil un BST82 par exemple, qui est un mosfet canal N.

via la configuration du client Android pour la configuration, dans « configuration de l’appareil », il faudra nommer la patte que vous utilisez

Puis dans « Notification Externe », activez les champs si dessous.

et c’est maintenant qu’il va faloir écrire votre mélodie dans « sonnerie ».

Une touche rétro dans un projet high-tech

Ce petit détail montre bien l’esprit hacker et maker de Meshtastic :

  • techniquement moderne (réseau LoRa, chiffrement, maillage décentralisé),
  • mais qui garde une âme rétro avec des références aux bricolages électroniques et aux gadgets des années 2000.

C’est à la fois pratique (notifications sonores personnalisées) et amusant (pouvoir ressortir ses vieilles sonneries RTTL).

Exemples de sonneries RTTTL (merci 1j01)

Le site RTTTL Player de 1j01 ( https://1j01.github.io/rtttl.js/ ) met à disposition une belle collection de mélodies au format RTTTL que tu peux écouter directement dans le navigateur. 1j01.github.io

Voici quelques extraits intéressants :

  • 007 : 007:d=4,o=5,b=320:c,8d,8d,d,2d,c,c,c,c,8d#,8d#,2d#,d,d,d, … (Version “thème James Bond”) 1j01.github.io
  • Star Wars : Star Wars:d=8,o=6,b=180:f5,f5,f5,2a#5.,2f.,d#,d,c,2a#.,4f.,d#,d,c,2a#.,4f.,d#,d,d#,2c,4p, … (Le thème reconnaissable entre mille) 1j01.github.io
  • Nokia Tune (ou d’autres classiques) :
    Le site contient aussi des sonneries classiques comme Canon, Batman, Super Man, etc. 1j01.github.io

Ces exemples montrent la richesse du format : malgré sa simplicité, on peut encoder des mélodies assez reconnaissables.

Vos exemples

Je vous propose d’utiliser la suite de cette page pour y mettre vos exemple tester des vos sonnerie préférées et voici un lien pour tester les mélodies https://adamonsoon.github.io/rtttl-play/

Indiana:d=4,o=5,b=250:e,8p,8f,8g,8p,1c6,8p.,d,8p,8e,1f,p.,g,8p,8a,8b,8p,1f6,p,a,8p,8b,2c6,2d6,2e6,e,8p,8f,8g,8p,1c6,p,d6,8p,8e6,1f.6,g,8p,8g,e.6,8p,d6,8p,8g,e.6,8p,d6,8p,8g,f.6,8p,e6,8p,8d6,2c6