Sunday, 16 January 2011

Nokia N95, Rhythmbox and MTP support

Using Linux on the desktop as my primary OS, I very rarely use the software device manufacturers intend someone to use as part of my daily interaction with the hardware I have.

Case in point, loading music onto my Nokia N95 from Rhythmbox. The Nokia N95 appears to support MTP (Media Transfer Protocol) but then the fun begins.

In the long, distant past, I used to use the first release of XMMS - it looked and felt like Winamp and "just worked". Then they rewrote things entirely for release 2 with some really clunky client server model that required frontends and backends and never quite seemed to work (think the emacs approach to the world - everything and the kitchen sink when all you want to do is play music). I stuck with XMMS (v.1) as long as I could, but then it was gradually phased out from the various repos.

Well, after switching computers I finally decided to give Ubuntu a go over the Debian I'd been running on my desktop for ages - I was loathe to do this in some respects as I feel that Ubuntu hides so much of what it does from the user, that the user (in this case me) gets less and less knowledgeable about how things work and what's happening behind the scenes. Anyway, Ubuntu 10.04 LTS (I hate the inane animal names - give me a version number that happens to be the year and month any time) had its default music management program set as Rhythmbox so I decided to give it a go.

I fired it up, figured out how to tell it to pay attention to where I preferred to keep my music (gconf-editor - kinda like editing the registry for you windows folks, or a .plist for you OS X folks). All good, it was seeing my media repository. Now I plugged in my phone via USB and I noticed it gave me 4 options:
  • PC Suite
  • Data transfer
  • Image print
  • Media player
Media player, eh? Sounds interesting... Down, Down, Down, Select.. Nautilus/Gnome detects a music player, what do I want to do? Launch Rhythmbox.. Ahh.. no dice..

Unplug the phone, plug the phone back in, select media player, now rhythmbox sees it :) (Bug 695753).

Rhythmbox freezes.. unfreezes.. hey presto, there's my phone (showing its IMEI, name, details etc.) and a list of all the music on it. Awesome. I drag music to it *chug chug chug chug chug chug*. A few more tracks *chug chug chug*.. Freeze.. Crash.. (Bug 569380).

Is the music on the phone at least? *browsing* Yes, but for some reason it's dumped it in the root folder of my phone's memory card - yay, a root folder full of music (Bug 695752). Grrr!

So I gave up on MTP and decided to go with mass storage option (where the phone allows its memory card to be mounted as a mass storage device by the computer over USB - the 'Data transfer' option discussed above). Turns out to get Rhythmbox to play nice with this, I have to drop a ".is_audio_player" file on the device and inside, if I want to override the folder to which files are dumped and not transcode everything to MP3 I have to place the following in the file:
audio_folders=Sounds/Digital/
folder_depth=2
output_formats=audio/m4a,audio/mpeg,audio/mp3,audio/m3u,audio/wma,audio/aac
This at least now allows me to transfer AAC and MP3 audio to my phone (and allegedly WMA) without it being transcoded as the phone will happily play it without crashing. It'll also place music in an Artist/Album/Track heirarchy (if that metadata is set). Downside is that I now need to tell the phone's media player to manually resync its library for it to find the tracks added/removed as it's no longer using a 'media aware' transfer.

Oh, did I mention that Rhythmbox refuses to add metadata to tracks which have no existing metadata? (Bug 669358, 573907, 532607 ...) There's a fix, but it's not available in the current, allegedly "Long Term Support" version of Ubuntu as these bugs are not automatically fixed even if identified in the long term releases over a fear of stability (See Stable Release Updates Procedure). I think I may just log a report on this.

In some respects this is a commentary on Linux - the flexibility is there for me to treat any mass storage device as a media player whose music collection I can manage with several apps of my choice, not being locked into a specific platform (such as Windows or OS X) or a specific market place (iTunes) or specific codecs (my N95 I believe can also play OGG if you add the right codecs to it). It may be that a device has long since fallen out of support by its manufacturer or it never came with a media management application that worked with it.

The downside of the flexibility, indeed choice available in the linux world is that there is no one way of doing things, no standardised approach, so work isn't focused on making that one approach better, but rather is distributed across competing parties all believing their particular way of doing things is better - and for certain uses, a given way might be better, but then trying to bring this all together into a working whole becomes a massive challenge.

1 comment:

  1. Always a compromise between doing things one way and catering to everyone and everything they want to do. My Android smartphone also has its quirks and the change between "froyo" 2.2 and 2.1 was interesting. Lost my favourite screen animation!

    ReplyDelete