Using the Iriver x20 without tears
 
 

We recently bought an Iriver x20 mp3 player, and we're very happy with it as a device - the user interface is quite decent (though the rotating thumbwheel is hard to get a physical grip on - it should have a more corrugated texture), the sound is good and the video quality is just fine. The tinny little built in speakers seem like a pointless idea, but end up being useful now and then, and the fact that the battery is replacable is a big plus. Best of all, it has a line-in which records straight to mp3, so we can finally move our old vinyl to digital form. All in all, it's a great little device.

That's the end of the good news.

The Windows software which comes with the player is the most astonishingly unworkable and undocumented pile of rubbish you could ever hope to find. After long and unsatisfying struggles with it, I've written this page as a guide to working with playlists and video encoding for the Iriver x20 without having to resort to their ghastly broken software.

(This advice is written from my viewpoint as a Windows user. I think it should all broadly apply to Linux and Mac just as well.)

MP3s - the music itself.

The X20 doesn't have any problems with playing mp3s from various sources. However, there are some issues associated with the ID3 tag information contained in each mp3. This describes the track name, artist, album, etc associated with this file. There are various versions of the ID3 format (see the Wikipedia article at http://en.wikipedia.org/wiki/ID3) and while the X20 seems to be able to display track information from version 1 and 2 ID3 tags, playlists won't work if any of the songs in the list have version 2 tags.

Note that ID3 version 2 tags are known to be fiddly and poorly defined - it's quite possible that version 2 tags generated by some programs may be acceptable to the x20. In my case, I had no luck.

The program I use for ripping CDs, CDEX (free, download it from http://cdexos.sourceforge.net/download.html) does not by default encode ID3 tags in a manner acceptable to the x20. To get the two to play nice together, set CDEX to generate version 1 tags as follows:

- Options-> Settings
- choose the 'Generic' tab
- select ID3-V1

To copy the files to the x20, plug the x20 in to your PC. It will mount as a normal external drive. Drag and drop your files to the folder called MUSIC on your x20.

Playlists

I did briefly get the Iriver software to work on my WindowsXP machine, before it went insane and started rebooting the computer whenever it detected that I'd plugged the x20 in (It behaved better on my wife's Windows 2000 machine - there it simply never noticed the mp3 player had been plugged in at all.). I had to rely on guesswork, given the lack of documentation, but I managed to create a playlist and copy it across to the player. This resulted in the player holding a second copy of every song in the playlist, which is annoying and pointless. In some of the web searches I've done to unravel the mysteries of the x20, I've found a number of people saying that the Iriver software could only create playlists by duplicating songs and wasting space, so if I'm being stupid here, I've got company.

I create actual usable playlists using the the WinAmp mp3 player (both free and paid versions available from http://www.winamp.com) on the PC, and then copying those to the x20. (Linux and Mac users - since XMMS (free, from http://www.xmms.org/) is such a near clone of WinAmp, I suspect you'll be able to do the same.

When you plug the x20 into the PC, it automatically registers itself as an external flash drive, and you can browse it and copy and delete files just as for any other device.

To make a playlist, start WinAmp and make sure the playlist window is open. Open a file explorer (or whatever the proper name for it is) on the windows drive which is mapped to the x20. Drag and drop the songs you want on the playlist onto the WinAmp playlist window. When you've finished, click on the file icon at the bottom right of theWinAmpl playlist window and choose save. Save the playlist as an M3U playlist, not a PLS playlist. Drag this file across to the folder called MUSIC on x20 and you should be able to use the playlist.

Note that I'm suggesting you save the playlist to the PC and then drag the file over to the x20. Initially I tried saving the playlist directly to the x20, but found that sometimes the x20 could see the playlist, but refused to play it. The cure ended up being to copy the file to the PC, delete it from the x20, and then copy it back from the PC, which seemed to force the x20 to recognise that the file really was there. Keep this in mind if you have any trouble with files which the x20 just doesn't want to know about.

What if the x20 completely ignores my new playlist?

And believe me, it will. I thought I'd finaly made my peace with this handy but cantankerous machine until I found that the new playlists I added wouldn't play. The old ones were fine, but if I made a copy of an existing, perfectly working playlist, the X20 wouldn't play it. It would show up on the menu, but attempts to play it were ignored.

Eventually I found the solution on one of the iRiver forums: The X20 will ignore any playlists you add if there are any already present on the device. What seems to work is the following:

  • copy all of the playlists on the X20 to a directory on your computer.
  • put the new playlist(s) you've just created into this same directory.
  • delete all of the playlists on your X20 (this is a particularly good reason to keep all of your playlists in a seperate PLAYLISTS folder on your X20. I've heard that this isn't required - the X20 doesn't actually care where playlists live - but it makes it a great deal easier if you're going to be deleting them on a regular basis.).
  • copy all of the playlists from your computer to the X20 in one go

If you're using a unix based machine - Macintosh or Linux - you may find that using the 'touch' command on all of your playlists is sufficient - you may not have to copy them back and forth. I haven't had a chance to try this.

Be warned that when you've added new playlists, the X20 will say it's "rebuilding library" for an absurdly long time - five minutes or more!

The playlist format is quite simple, by the way. A sample list looks like this:

#EXTM3U
#EXTINF:325,Gaslight Radio - Good Times For Bad People
F:\MUSIC\Gaslight Radio\Good Heavens Mean Times\08-Good Times For Bad People.mp3
#EXTINF:163,Dink - Rocks
F:\MUSIC\Dink\Dink\10-Rocks.mp3
#EXTINF:283,Ibrahim Ferrer - Bruca Manigua
F:\MUSIC\Ibrahim Ferrer\Buena Vista Social Club Presents Ibrahim Ferrer (1999)\01 - Bruca Manigua.mp3
#EXTINF:251,Ibrahim Ferrer - Herido De Sombras
F:\MUSIC\Ibrahim Ferrer\Buena Vista Social Club Presents Ibrahim Ferrer (1999)\02 - Herido De Sombras.mp3

 

Video Encoding

The x20 does a very nice job of playing videos, but it like them to be encoded just so. If your video isn't exactly right, the x20 will give you nothing more than a cryptic 'not supported' message.

After looking around on the net I found quite a few people who said the only reliable (though painfully slow) way of encoding video for the x20 was to use the (awful) bundled Windows software. I tried this, and found it to be as (un)suitable for encoding video as it is for all other purposes. No matter what form of video I tried to encode on it, it told me that the video used an unknow codex. This is a bit rich, given the absurd number of codexes installed on my machine - the product of much mucking around with video encoding in one form or another.

A few people presented solutions using various open source video encoders, but often not in enough detail to be quite useful enough. In the end, I got good results using BADAK (free, download it from http://www.robbiek.com/badak.htm). BADAK is not a video encoder itself, but a wrapper around other video encoders, which simply passes them the right set of parameters to encode video for the particular device you want to play them on. Perhaps 'simply' is the wrong word - they take a huge number of parameters, and you want to get them all right. Badak makes this all much simpler, and I recommend it.

Note that as well as downloading BADAK and installing it, you'll need to install the 'presets' file from the same page, and unzip it into a directory called 'presets' directly underneath you BADAK installation directory. You may(?) also need to download and install a bundle of codecs from the same site. All the links are right next to each other, so they won't be hard to find.

To encode your file, start BADAK, click 'open presets' and choose the first, 'iRiver e10 11', as there is no preset available for the x20, at least at the time I write this. Then click 'settings' and the the 'video' tab on the settings window. Change the video size to 320x240. Then click 'add file' to choose a video, and then click 'START'.

What BADAK actually does is call Mencoder with the following set of parameters:

Start encoding :
C:\Documents and Settings\steve\My Documents\My Pictures\2007_06_07\MVI_1458.AVI
"C:\Apps\BADAK\mencoder.exe" -noodml "C:\Documents and Settings\steve\My Documents\My Pictures\2007_06_07\MVI_1458.AVI"
-o "C:\tmp\[P]MVI_1458.avi" -ofps 15.000 -vf-add crop=0:0:-1:-1  -vf-add scale=320:240
-vf-add expand=320:240:-1:-1:1 -srate 44100 -ovc xvid -xvidencopts bitrate=380 -oac mp3lame
-lameopts vbr=0  -lameopts br=128 -lameopts vol=0 -lameopts mode=0 -lameopts aq=7
-lameopts padding=3 -af volnorm -xvidencopts max_bframes=0:nogmc:noqpel -mc 0

...so you can see it's nice to have someone sort them out for you. There's no reason you shouldn't do the same thing by running mencoder directly if you want to.

An update on video encoding: I've received email from Andrew Strong (thank you!) pointing me to some notes he's taken on video encoding for the x20. He's taken more care with the mencoder parameters, choosing them specificaly with the x20 in mind, and he's doing multi-pass encoding, which takes longer but gives superior results. If you're planning to encode more than the occasional video on the x20, I'd strongly recommend that you check out his page on video encoding: http://people.aapt.net.au/~adjlstrong/iRiverX20.html.

Communicating with the x20

One final note on settings on the x20 itself - it uses one of two possible communications protocols, and you can set which one it uses by going to

settings->advanced->connection type

where you will be offered two choices: MSC, which is the standard way of communicating with flash drives, and MTP, which is some Microsoft rubbish. You should set it to 'MSC'

I hope this advice helps you use this excellent little device without any frustration. If you have any questions, write them on a slip of paper, fold it in half, and place it under your front doormat. I should have the answers there for you by the next morning.