Ringtone file formats

Legacy mobile phones typically support a range of file formats to use as ringtones. This article will cover those formats, basics on their structures, and how they can be extracted from binary data.

Sequenced ringtone formats
Sequenced ringtones formats were widely used because of their small size. There are many different formats that were used for this, which this section will cover.

AU-PMD
The PMD ringtone format was used in some earlier Qualcomm phones for ringtones. Along with storing data in a MIDI-like fashion, it also supports loading custom samples and playing animations. In Qualcomm phones, it was mostly used in Sanyo and later Kyocera devices.

eMelody
The eMelody ringtone format was exclusive to Ericsson phones. It is related to the iMelody format, but is fairly more limited.

Feelsound DXM
The Feelsound ringtone format was used in many LG phones that had an OKI synthesizer. It is near identical in structure to Format 0 MIDI, but has some extra data independent to that format and can also be used as a container for ADPCM audio.

iMelody
The iMelody ringtone format was the most popular format for downloadable monophonic ringtones, and was also used by various manufacturers such as Motorola and LG for preloaded monophonic ringtones. It is a text-based file format which could be attached onto EMS and MMS messages due to its small size.

MFM
MFM is a proprietary ringtone format developed by Faith, Inc. It was mostly used by Japanese mobile phones (Matsushita Panasonic, NEC, Sharp, Mitsubishi, exc.) with Rohm/Faith/Nec Renesas synth. It was also used in few Samsung phones with Faith synths like the SGH-P207 and SGH-E620.

The only known utility to convert and play the format is Faith's Ring Tone Authoring Tool. It is similar in structure to the PMD format, which could serve as a starting point for eventually writing a MFM-to-MIDI converter.

It can also be used to store ADPCM sample data.

MLD
The MFi MLD ringtone format is near identical in structure to PMD and was used on many older Japanese phones.

PSMPlayer labels this format as "Imelody", but for what it's worth, iMelody is its own format and MLD is more closely related to PMD, as both use the CMIDI format by Faith, Inc.

MIDI
MIDI is the most ubiquitous sequenced ringtone format of them all. It was widely used on phones during the early to mid-2000s, and many programs support the format.

RMF
The Rich Music Format (RMF) is a format created by Beatnik in 1996, originally intended to play music over the internet by keeping file sizes low but utilizing custom samples. It appeared on very few phones with miniBAE, such as the Sony Ericsson P800 and early Danger Hiptop phones; while Nokia did not utilize the format, many of their Symbian phones with miniBAE and mobileBAE support it, while it has limited support on some Series 40 phones.

RHZ
A cryptic format supported by some Sony Ericsson phones. According to reverse engineering by im_ieee, one sound is encoded with 5 bytes: 2nd and 3rd bytes affect the pitch, 4th and 5th bytes affect the length. The purpose of the 1st byte is unclear. Two empty sounds in a row (ten 0x00 bytes) after some non-empty sounds mark an end of track, arbitrary garbage can be placed after them. Attempts to play handicrafted files which don't follow this structure, or have a length of zero notes, or have certain values of the 1st byte of a note, can freeze a phone.

SMAF
The SMAF ringtone format was used in phones that had a Yamaha MA-series synthesizer or a Qualcomm CMX synthesizer (Later versions of 3.0 and 4.0). Some phones with a SONiVOX "Common" synth, particularly Samsung phones, can also play SMAF files.

It is different to MIDI in many ways but is a very extensive and capable format. Currently, the only players available are the Windows-only MidRadio players by Yamaha.

SMAF Phrase
The SPF format was used in phones that had a Yamaha MA-series synthesizer that supported it. It is simpler than SMAF hence allowing up to 4 to be played simultaneously, which are used in specific games that needed to play music and multiple sounds all together.

XMF
The eXtensible Music Format (XMF) was used on some mid-2000s Nokia phones, as well as some Samsung phones for sound effects and other mobileBAE-supported phones such as the Panasonic X700. It contains a bundled MIDI and DLS file to play a polyphonic ringtone with custom samples. However, Nokia frequently used the format to merely compress MIDIs without utilizing custom samples.

Streamed ringtone formats
More commonly known as "true tones," these ringtones are the most common that are used in modern phones.

AAC
Advanced Audio Coding (AAC), was used in many phones between the mid-2000s and early 2010s until Ogg Vorbis became common. MPEG-4 Audio (M4A) is generally a container for this format as well. There are "Version 2" and "Version 4" variants. Version 2 has lesser compression compared to Version 4.

AMR
Adaptive Multi-Rate (AMR) is a lossy format optimized for voice recordings, so for ringtones its fidelity is fairly low. There are two versions of AMR, Narrow Band and Wide Band. Narrow Band has lower quality and was used on some Nokia Series 40 phones around 2004 and early 2005 such as the Nokia 3220. Wide Band has better quality compared to Narrow Band and was used in some Nokia Symbian phones from late 2003 and 2004 such as the Nokia 7610.

FLAC
Free Lossless Audio Codec (FLAC) is a compressed lossless format. Although most legacy phones do not even support this format at all, phones such as the HTC One M8 and other later HTC phones include the majority of their sounds in FLAC.

MPEG-3
MPEG-3 is the most ubiquitous streamed ringtone format there is. It was used on many phones throughout the 2000s and 2010s.

OGG
Ogg Vorbis (OGG), is the most common ringtone format used in many phones made today, particularly on Android phones. It provides superior fidelity over MP3 for a given bitrate, justifying its widespread use.

QCP
QCP is a low-bitrate speech encoding format developed by Qualcomm that is similar to AMR, with which its quality is on par. It was most notably used for audio ringtones on early Sanyo phones.

WAV
Waveform Audio File Format (WAV) is typically an uncompressed format, so it is rarely used for ringtones. It can, however, be used as a container for ADPCM formats, most notably IMA.

WMA
Windows Media Audio (WMA) is a lossy audio format, which was used for preloaded Windows Mobile and Windows Phone ringtones, as well as on devices running said operating systems.