Making Ringtones Loop on Android

Update 2012-01-06: ICS appears to have a bug where the end of the file is chopped off, so ringtones do not loop properly. If I find or hear a solution I’ll update again!

Update 2010-11-09: Added clarification on why I suggest having a short (sub-10 second) ringtone. You want it to loop, right? =P

Following on from my previous articles on ringtones, I’ve finally worked out how to make ringtones loop seamlessly in Android.

My problem before was that, despite the fact I made an OGG that should loop properly, when played back on Android, it didn’t.  Turns out, there’s a little piece of metadata you need to add to the tags in the ringtone to make it loop properly.

Using your favourite tag editor (I used foobar2000 on Windows), add a tag/field called “ANDROID_LOOP”, and set it to “true”.

Please note that the file itself will also need to loop properly for things to work out.  That means that if you’re basing your ringtone on a longer piece of music, it needs to be trimmed down to 10 or fewer seconds and trimmed in such a way that the audio sounds like it goes on forever when played from beginning to end repeatedly.

The file doesn’t have to be less than 10 seconds, but I figure you’re reading this because you want to make a file that loops!  Most carriers will stop ringing your phone after 15 to 30 seconds and pass the call to voicemail.  This depends on the carrier, your preferences (if you can change how long voicemail waits at all), and whether or not you have voicemail enabled!

Also, you need to use a format that doesn’t add silence to the end of the track. OGG (which I recommend), FLAC and AAC should all work fine. I do not know if Android reads LAME’s metadata with allows MP3s encoded by it to loop. MP3s encoded with other encoders will probably add silence and as such will not loop perfectly.

Have fun with this!

4 Responses to “Making Ringtones Loop on Android”

Got something to say? Skip to the comment form.You can keep an eye on the chatter with the comments RSS feed if you like.

  1. Thanks! Worked perfectly with foobar.

  2. These ringtones were looping perfectly on my iphone, did the metadata trick and saved them as ogg to my Galaxy Nexus. They do loop now but there is still a tiny gap between loops.
    http://folk.ntnu.no/dahlen/lyd/kraftwerk.zip

    Maybe u can figure it out, or maybe it’s just an issue with ICS or my phone and not android in general.

  3. I tried this and it worked flawlessly on my moto Droid. When I transferred all the ringtones from my droid to my Galaxy Nexus, they got a tiny gap in between them.

    I think it’s something about ICS thats doing it.

    • Thanks for the reports Osama and Adam! I’ve installed ICS on my Nexus S and done a little investigating.

      As far as I can tell it seems to be an ICS issue. I base this on two things:

      Firstly when I preview the tracks in the ringtone picker it sounds like the end of the file is chopped off. The gap may well be the part that has been cut.

      Secondly, and perhaps the most damning evidence of an ICS issue: all the ringtones that looped seamlessly have been removed from ICS. In GB there was at least one seamless loop, Radiation Orchestration (not to be confused with Radiation, which doesn’t quite loop properly anyway), and there may well have been others.

      Instead all the ICS ringtones have fades before looping. It might even be the case that a fade was added to previously looping ringtones, though that is just speculation.

      It sounds like an issue that was acknowledged and worked around but never fixed. Let’s hope it gets fixed by the Android team (it’s probably worthwhile filing a bug) or by any of the countless developers in the community doing this stuff in their free time for other projects.

Leave a Reply

Have an account? Why don't you log in?

Don't have an account? Register, then you don't have to enter a pesky name, e-mail and URL everytime!

Or:

Style your comments using HTML. (e.g. <b>, <i>, <a href="URI">link text<a> etc.)