For Android, I can use AndModPlug to play MOD / XM / S3M / IT files in my games. These are awesome music formats for game-development, that allows for so much more control of the music in multiple ways. E.g. you can have your game-music change fluently from one style to another, like you might remember it was done in the classic Monkey Island.

Due to the limitations of JavaME, we JavaME developers can't use that solution sadly, so we've been stuck with MIDI, which is great in regards of getting a small filesize, but not so great in regards of making sure your music sounds the same on all devices. And it leaves us with a relative poor table of instruments. Especially the drum table is a joke.

BUT there is another format I bet you didn't know about, which has actually been supported (on paper) for years. It is called eXtensible Music Format or Mobile eXtensible Music Format (XMF / mXMF).

An XMF file is essentially a MIDI file packed with a soundfont file, giving a result very similar to the MOD / XM format, except you can't jump around between patterns and such (since there aren't any patterns in a MIDI).
But it does allow you to create a piece of music that still takes up very little filesize, while using whatever instruments / samples you want. First of all, that means your trakc will sound the same on all devices. Secondly, it also means you can use much much MUCH cooler instruments and samples, than offered in the somewhat boring GM MIDI table. (One of the first things a musicians looks for in this regard, are some better (awesome) drums).

Some years back I spent a lot of time investigating the XMF format and made a ton of tests, which sadly led to the conclusion that the XMF format was useless on the JavaME platform, because:
1) Sony Ericsson's feature phones messed it up. They only supported XMF files containing a soundfont of max 30kb, and that's simply just ridiculous.
2) Sony Ericsson's feature phones would only play back XMF files in mono!

Yes, Sony Ericsson ruined it. But that was then. What about now? What about Asha?

The Symbian devices I tested on back then worked just fine. Sony Ericsson W950 and (today) Nokia N8 for example.

Advantages of using XMF:
1) Instead of using a 2mb mp3 for music, you use a 50kb XMF file. (Examples: and
2) Like with a MIDI, you can control tempo of the tune and turn on/off channels, using MIDI Controls, without changing the pitch. In short, you can do so much more with the music while it's playing.
3) You get to use much much MUCH cooler instruments while still keeping a small filesize.

Now here's the best part: If you have your XM or MOD file, you can simply convert it to an XMF file with a tool from Un4seen Developments called 2MIDI. (

So here's the idea: You have your musician create MOD / XM music for your Android / iPhone / Windows Phone version of your game, and then you convert the track to XMF for your JavaME version.

Now the question is of course, whether or not Asha will play XMF files. Because the idea is useless if Asha doesn't play them. I'm hoping someone will help me test. I have prepared a small test midlet containing an XMF file of 325kb. It plays fine on my Nokia N8. Can someone tell me whether it plays on an Asha?

The original XM I've converted for the test, can be downloaded here for comparison: