Log in

View Full Version : Playing Midi files on PPC – the complete roundup


Menneisyys
08-09-2006, 06:10 PM
Many Pocket PC users would like to know how midi files (http://en.wikipedia.org/wiki/Midi) (a form of storing music information used everywhere, even in low-end phones) can be played on the Pocket PC. This is why I’ve done some serious work, resulting in this roundup, which is highly recommended for anyone that wants to listen to midi music on his or her Pocket PC.

First, most “generic” players like TCPMP do not play midi files (as far as TCPMP is concerned, only later, commercial versions (CorePlayer) of it may receive Midi support (http://www.corecodec.com/index.php?option=com_smf&Itemid=29&expv=0&topic=1410.0) (also see this thread (http://www.corecodec.com/index.php?option=com_smf&Itemid=29&expv=0&topic=3038.0))). Other generic players ditto. (Actually, no wonder most of them lack support for Midi. Playing Midi files requires a so-called ‘instrument set’ of your own, which can take 1-2 Mbytes and, unless you use / license third-party instrument sets, are very hard to create.)

Fortunately, there still are a great deal of programs to choose from. In this roundup, I elaborate them all.

HTC Album and Windows Media Player 10 on (HTC) PPC Phone Edition devices

HTC Album, HTC's own (pretty bad - see the Roundup of picture viewers/editors for the Pocket PC platform (http://www.winmobiletech.com/PICVIEWERS/) for more info if interested) Phone Edition devices, under WM5, are also able to play midi files. They use exactly the same midi libraries as HTC’s old Album (also shipped installed to, say, the Fujitsu-Siemens Pocket Loox 720).

http://www.winmobiletech.com/082006MidiPlayers/HTCAlbum.bmp.png

This, unfortunately, also means pretty bad problems (static or plain wrong instruments, as is the case with the Monty Python test midi file - I'll elaborate on the test files I used later) with playing midi files. Note that these problems are also present on the latest HTC Phone Edition devices (for example, the latest i-mate HTC Wizard ROM) – that is, they haven’t been fixed.

Therefore, if you’re seriously into playing midi files, I recommend switching to either the free GSPlayer 1.16 or, if you need it’s a bit better instrument quality and wider stereo, IntelliArt Midi Player 4.0.0.

Pros Comes with some non-Phone Edition, camera-equipped devices like the Fujitsu-Siemens Pocket Loox 720 and with all WM5 Phone Edition devices like the HTC Wizard

Cons Static, very annoying noise
Major problems with some of the instruments


This screenshot (http://www.winmobiletech.com/082006MidiPlayers/WMP10PEMidiplay.bmp.png) shows WMP10 on a Pocket PC Phone Edition device playing a midi (again, WMP10 will NOT play midi files on a non-Phone Edition device!), and this (http://www.winmobiletech.com/082006MidiPlayers/WMP10PEMidiplay-2.bmp.png) shows the properties of the midi file. The HTC midi-plug-in in WMP10 offers no advanced capabilities like individual channel en/disabling.

Note that some people have managed to “hack” the HTC Midi support to non-Phone Edition WM5 Pocket PC’s (http://www.aximsite.com/boards/showthread.php?t=134656). Again, it uses a low-quality instrument set and should, therefore, be avoided.

MID-Play 1.0.7 (http://www5d.biglobe.ne.jp/~hra/software/midplay/index.htm)

(direct link to the executable archive here (http://www5d.biglobe.ne.jp/~hra/software/midplay/files/MidPlay1.0.7_WinCE.zip) (you’ll need ARMRel/PPC2K_EN/ MidPlay.exe); also see this (http://www.pocketpcfreeware.com/en/index.php?soft=755))

(Not to be confused with MIDPlay (note the lack of -) 1.0.2 (http://www.neutrio.com/wince/MIDPlay/midplay.html) (also here (http://www.tucows.com/preview/32524)), which requires an external midi device hooked up to the Pocket PC!)

http://www.winmobiletech.com/082006MidiPlayers/MIDplayMain.bmp.png

This player uses a slightly different instrument set than the other players. It sounds a bit different from both the timidity-based players (GSPlayer for MIDI, PocketAMP, KarPocket) and IntelliArt Midi Player’s instrument set (which, in my opinion, is the best). It, as one can easily guess, sounds definitely better than the HTC-based midi instruments – here, the Monty Python coconut (channel 5) sounds are as what they supposed to be. Also, it’s much better than Mimidi too (the latter has the worst instrument set).

The differences between the instrument set it uses aren’t as articulated as, say, between the HTC and the Mimidi player and those of the rest. With most midi files, the difference is negligible. I, however, definitely recommend comparing how the players play the demo.mid file that comes with IntelliArt Midi Player. The latter delivers the best, most “stunning” sound, which is considerably more lively than anything else (including the latest WinAMP on Windows), while, in my opinion, MID-Play delivers the worst interpretation (compared to timidity-based players and IntelliArt Midi Player). Again, give it a go – you will certainly hear the difference with demo.mid. I particularly recommend paying attention to the drums and the percussions – they are far more lively and natural with IntelliArt Midi Player than with anything else (particularly the, in this respect, pretty weak MID-Play).

I elaborate a bit on the installation as I haven’t seen it explained anywhere.

Get the above-mentioned main ZIP file (containing the executables) and transfer ARMRel/PPC2K_EN/ MidPlay.exe to anywhere on your Pocket PC
Get the instruments – the “high quality sound font” (http://www5d.biglobe.ne.jp/~hra/software/midplay/files/hq+_030419.zip) from the homepage. Extract gmhq+.mpf and transfer to the same directory on your PDA.
Get a skin; for example, Blue (http://www5d.biglobe.ne.jp/~hra/software/midplay/files/BlueSkin.zip). Extract the three files from the ZIP file and transfer them – again – to the same directory.
Now, start MidPlay.exe. At first, it will say it reads the high-definition (quality) instrument file. Then, it will display a non-skinned GUI as can be seen in here (http://www.winmobiletech.com/082006MidiPlayers/MIDplayNoSkin.bmp.png). (Note that if you don’t see anything, minimize every other task – most probably, the GUI becomes visible at least on the Today screen.)

There, just click the area above the buttons (that is, the area at the top right); a menu will come up, where you will need to select Configure (http://www.winmobiletech.com/082006MidiPlayers/MIDplayNoSkin-2.bmp.png). In there, change the Sampling rate to 44 kHz (albeit there doesn’t seem to be much difference between it and the 22 kHz version), the Bit rate to 16bit (the latter is very important – otherwise, the playback will be really noisy!). I also highly recommend enabling the “Reverb” checkbox – then, the instruments will be a bit more lively.

Then, exit this menu and go to the Play Mode menu (http://www.winmobiletech.com/082006MidiPlayers/MIDplayPlaymode-1.bmp.png). There (http://www.winmobiletech.com/082006MidiPlayers/MIDplayPlaymode-2.bmp.png), you’ll only need to close the dialog by clicking x. Now, the skin will change to the skin you’ve downloaded; in our case, Blue, as can also be seen in here (http://www.winmobiletech.com/082006MidiPlayers/MIDplayMain.bmp.png).


Important note

It’s also very important to keep in mind that enabling the channel equalizer will result in a heavy, almost 100% CPU usage. Also, there are other bugs with the GUI of the application: if it’s in the foreground (it has focus), even with the channel equalizer disabled, its CPU usage will be around 50%. Therefore, it’s always preferable to hide the GUI with for example “Undisplay window” in the main menu (or by switching to another application). Then, its icon will be displayed on the command bar of the Today screen – in here (http://www.winmobiletech.com/082006MidiPlayers/MIDplayTodayicon.bmp.png), for example, to the left of the Axim Wi-Fi icon and its CPU usage will be around that of the other players (between 5 and 20%, depending on the midi file played).

Pros
Free
Stable, responsive on all tested platforms (WM5 included)
Only consists of few files (as opposed to most timidity-based players)

Cons
CPU usage when not minimized, particularly with the channel equalizer enabled
The different instrument set may deliver entirely different playback than timidity-based players and IntelliArt Midi Player, which you may consider disadvantageous
For novice Pocket PC users, installation and first-time starting/configuration may be a bit overwhelming

Mimidi 0.98 (http://www.lares.dti.ne.jp/~k-akixx/mimidi/index.html)

(Babelfish “translation” here (http://babelfish.yahoo.com/translate_url?doit=done&tt=url&intl=1&fr=bf-home&trurl=http%3A%2F%2Fwww.lares.dti.ne.jp%2F%7Ek-akixx%2Fmimidi%2Findex.html&lp=ja_en&btnTrUrl=Translate); Pocket PC Freewares comments here (http://www.pocketpcfreeware.com/en/index.php?soft=60).)

This is the oldest midi player – right from the WindowsCE 2.0 times (this is why it supports almost all H/PC and PsPC models too, in addition to all Pocket PC platforms).

http://www.winmobiletech.com/082006MidiPlayers/minidiMain.bmp.png

The biggest problem with this otherwise really small (300kbytes) and responsive player are the really bad and non-natural-sounding instrument set – they are much worse than those of all the other applications (even worse than those of the HTC player). In addition, it had severe problems on all of my test devices (http://www.winmobiletech.com/082006MidiPlayers/minidiWaveOutProblem.bmp.png) upon trying to switch to other (this happens pretty sporadically) midi files. These problems needed explicitly killing the Mimidi process and launching it again.

Pros None
Cons Very bad instrument set Major waveout problems

PocketAMP 2 (http://www.vsoftsol.com/pocketmidi/)

This free application is one of the most widely known and oldest solutions. It uses eVB which must be separately installed on WM2003+ devices (see this article (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=334&more=1&c=1&tb=1&pb=1) for more info), while it is already present on pre-WM2003 ones.

http://www.winmobiletech.com/082006MidiPlayers/PocketAMP-Main.bmp.png

In general, this application has fared much better than some of the (free) competition, as far as stability is concerned. However, it couldn’t beat GSPlayer 1.16, the best free midi player, except when selective track en/disabling is concerned.

There are not much tweaking you can do (http://www.winmobiletech.com/082006MidiPlayers/PocketAMP-Options.bmp.png). However, you can dis/enable each of the 16 tracks and fine-tune the tempo (http://www.winmobiletech.com/082006MidiPlayers/PocketAMP-TrackDisable.bmp.png).

Pros Much more stable than some of the other free solutions (except for GSPlayer 1.16)
Selective track en/disabling

Cons Problems with some enhanced midi features (see channel 5 in the Monty Python test midi!), unlike with GSPlayer 1.16, IntelliArt Midi Player 4.0.0 and KarPocket 3.2.1.
Not very responsive, unlike the above-mentioned apps
Generic problems upon trying to load the next song – it, generally, doesn’t load them
Under WM5 you can install eVB only in the built-in storage, which may be of a problem (under previous operating systems, this isn’t a problem: in WM2003(SE), you can install eVB on storage cards and, under PPC2k / PPC2k2, it’s already built-in.

PocketMidi 1 (http://www.vsoftsol.com/pocketmidi/)

This app should be avoided. Much as it’s used to be developed (it was last touched in early 2001!) by the same author as PocketAMP 2, it has never reached usable state.

http://www.winmobiletech.com/082006MidiPlayers/PocketMIDI1Main.bmp.png

It worked on none of my test devices without major problems. On my iPAQ 3660 (PPC2k2 with (still) built-ineVB in ROM), while it exited OK (unlike on my newer devices), it just got into an infinite “loading next file” loop when I started to play any midi file. On my PL720 and x51v, finishing playing a midi file (or just trying to exit the application) resulted in the same. Not even killing the task from the task manager worked, necessitating a soft reset. Therefore, I don’t recommend this player at all. Not because it’s eVB: it’s just useless because of the crashes/ bugs.

These problems dwarf the “small” playing-related problems: it didn’t play back channel 5 in the Monty Python midi test file either (something that caused severe problems to HTC Album too), was unable to play the Doom file in its entirety – in this respect, both KarPocket and, of course, IntelliArt Midi Player are far better. Also, you need to explicitly add a shortcut of \timidity\PocketMIDI.exe to \Windows\Start Menu\Programs because the installer doesn’t do this. It tries to directly add a link to \Windows\Start Menu\, which won’t work on many devices.

Pros None

Cons Everything else. Avoid it at any rate!

GSPlayer for MIDI 1.16 (http://www.pdamusician.com/gsplayer.html)

(Note that the same version, without the midi instruments, can be found here (http://www.freewareppc.com/multimedia/gsplayerformidi.shtml); there, you may also want to read users’ comment. Also note that this player is pretty independent of the “real” GSPlayer. The latter can’t be used to play Midi files. In this article, I use the shorthand ‘GSPlayer’ to refer to ‘GSPlayer for MIDI’.)

http://www.winmobiletech.com/082006MidiPlayers/GSPlayerForMIDIMain.bmp.png

It’s very important that you remove the leading \ (backslash) (http://www.winmobiletech.com/082006MidiPlayers/GSPlayerForMIDIBackslashremove.bmp.png) in front timidity.cfg at File/Options/Cfg File . Otherwise, no sound will be heard.

Tweaking possibilities: sample rate setting and other low-level fine tuning (http://www.winmobiletech.com/082006MidiPlayers/GSPlayerForMIDIOptions.bmp.png). (Note that you will want to crank up the sampling frequency to 44.100 kHz - it won't really result in increased CPU usage, only dramatic sound quality increase.)

Pros The most stable free solution – much more stable than KarPocket 3.2.1
It has no problems with even the most delicate midis (like Channel 5 in the Holy Grail midi)
Unlike PocketAMP 2, it has no problems with moving to the next song and is much more responsive
Unlike PocketAMP 2, it doesn’t rely on eVB

Cons Not as much tweaking possibilities as with IntelliArt Midi Player or, as far as individual channel en/disabling is concerned, even PocketAMP 2
It contains the necessary midi instruments in individual files; there are some 180 of them, which can mean pretty slow installing, particularly onto (non-optimized) flash ROM memory (cards). (Note that, as opposed to what some people say, it CAN be installed on storage cards!) In this respect, both IntelliArt Midi Player and PocketAMP 2 are better (this is, however, a one-time problem only.)

KarPocket 3.2.1 (http://www.learnwords.com/karpocket.html)

http://www.winmobiletech.com/082006MidiPlayers/KarPocketMain.bmp.png

This free player is based upon GSPlayer and works OK on some on my test devices, while it continuously crashes on others. It’s definitely worse than the only commercial midi player, IntelliArt Midi Player and, because of the crashes, GSPlayer 1.16. Feature-wise, it offers no separate channel en/disable capabilities and its tweaking abilities (http://www.winmobiletech.com/082006MidiPlayers/KarPocketPlaybackOptions.bmp.png) are also inferior compared to those of IntelliArt Midi Player. Of course, as with IntelliArt Midi Player, Tempo / pitch can also be set.

It has a definite advantage over all the other reviewed players: the ability to play midi files with Karaoke. The karaoke can be pretty well configured: fonts (http://www.winmobiletech.com/082006MidiPlayers/KarPocketFontOptions.bmp.png), lyrics (http://www.winmobiletech.com/082006MidiPlayers/KarPocketLyricsOptions.bmp.png) and background pictures (http://www.winmobiletech.com/082006MidiPlayers/KarPocketPicOptions.bmp.png) can be freely set. That is, if you plan to play karaoke midi files, KarPocket should be your choice. This, unfortunately, won’t help people that would only like to have a really stable, simple midi player – they should go for GSPlayer 1.16 or IntelliArt Midi Player 4.0.0 instead.

Note that, for some reason, it always displays errors upon loading .midi files (http://www.winmobiletech.com/082006MidiPlayers/KarPocketAlwaysDisplaysError.bmp.png) (and, then, in general, plays them).

Pros Karaoke support

Cons Unstable on many devices


IntelliArt Midi Player 4.0.0 (http://www.intelliart.com/midiplayer.htm)

(Handango link here (http://www.handango.com/PlatformProductDetail.jsp?productId=121796))

http://www.winmobiletech.com/082006MidiPlayers/IntelliArtMain.bmp.png

This is the best, most stable and most tweakable, albeit, unfortunately (it's pretty expensive!) , commercial player for the Pocket PC. It offers a lot of tweaking capabilities: stereo separation, reverb level, key, tempo and some other (http://www.winmobiletech.com/082006MidiPlayers/IntelliArtSettings.bmp.png) ; disabling/enabling tracks (channels) separately (http://www.winmobiletech.com/082006MidiPlayers/IntelliArtChannelEnable.bmp.png); superbass with cutoff (http://www.winmobiletech.com/082006MidiPlayers/IntelliArtSuperbass.bmp.png) etc.

It, subjectively, offers the best sound quality. The instruments it contains seem to be much closer to “real” instruments than those of all the other players (which are all based on the timidity library, except for the (buggy and to-be-avoided) HTC player).

It has performed great on all my test devices and I’ve never run into any problems.

Pros Best sounding – definitely better than anything else
Best setting possibilities (wideness of stereo, individual channel en/disabling etc)
Equalizer
Built-in bass boost with configurable cutoff

Cons Expensive


Testing

For my test, I’ve used four test midis
Monty Python and The Quest for The Holy Grail (http://www.duke.edu/~rfb/palace/midi/grail.mid)
Doom (http://www.duke.edu/~rfb/palace/midi/doom.mid) (both from here (http://www.duke.edu/~rfb/palace/midi/midi.htm))
Finland’s national anthem (http://www.winmobiletech.com/sekalaiset/midi/finland.mid)
and, finally, demo.mid (http://www.winmobiletech.com/sekalaiset/midi/demo.mid) coming with IntelliArt.

(All the four are also available here (http://www.winmobiletech.com/sekalaiset/midi/).)

Please note that I’ve made test recordings of all these midis with all the five different midi instrument sets; see section Quality of Midi instruments below.

The comparison chart can NOT be included in here because it’s just too wide (even now that I haven’t included the least recommended application (PocketMidi 1) in it). It’s available HERE (http://www.winmobiletech.com/082006MidiPlayers/MidiChart.html) (click the link to see it!)

As can clearly be seen, different midi files have slightly different CPU consumption. For example, finland.mid consumes between 18-21%, while doom.mid consumes between 6-10% (in 44 kHz mode of GSPlayer 1.16, on the x51v). Otherwise, there were only small (almost negligible) differences in the CPU consumption of the tested applications - you can safely use any of them without having to be afraid of their chewing through your battery quickly.

Quality of Midi instruments

As has already been explained, it’s the quality of the midi instruments that have the most influence on the overall sound quality. Therefore, to show you some REAL, tangible results, I’ve made some sample recordings showing the difference between the five instrument sets (TiMidity (GSPlay, Kari, PocketAMP, PocketMidi), IntelliArt, HTC, Mimidi, MID-Play).

These recordings are available here (http://www.winmobiletech.com/082006MidiPlayers/samples/) for download. The five files are accordingly named. They contain the midis in the order of Grail, Demo, Finland and Doom (I’ve, in general, stopped Demo and Doom without letting them play in their entirety). I’ve used very high quality when recording so that no quality degradation takes place. Therefore, for example the “shaking” in the higher frequency bands (typical of music compressed into a lossy format using far too much compression) at the start of Demo in the TiMidity recording is NOT the problem of my encoding, but that of the instrument set of TiMidity.

Also note that the occasional Windows application sounds have been caused by me (sorry, noticed far too late them being heard). Also, the sudden pauses in the IntelliArt recording are caused by the trial screen and don’t happen in the registered version.

Verdict

Unless you need the extended (but, in most cases, not really needed) capabilities and the, generally better-sounding, more natural instruments of the (rather expensive) IntelliArt Midi Player, you can safely go with GSPlayer 1.16. You may also want to give MID-Play a try - if you prefer its instrument set to those of the two other, most notable and recommended players.

Much as the karaoke playing capabilities of KarPocket 3.2.1 are pretty nice, its stability (as far as playing plain midi files is concerned) is definitely worse than that of both IntelliArt Midi Player and GSPlayer.

It’s the best to avoid HTC Album altogether – or, if your Windows Media Player supports midi files by default, it, because of the low-quality instruments and the very annoying clicking noise.

Recommended reading

My other roundups in the Smartphone & Pocket PC Magazine Expert Blogs (http://pocketpcmag.com/blogs/) ;)

Menneisyys
08-10-2006, 08:15 AM
Article slightly updated.

Menneisyys
08-11-2006, 02:43 PM
Updated the Midi player roundup – again. Now, I’ve put a LOT of example recordings (in WMA) in there so that you can listen to the sample midis without the need for installing the players. I've also greatly updated the comparison chart.