zigg/journal

Monday, December 29, 2008

Sansa satisfaction

I think I've finally got my Sansa Fuze up and running to the point I'm happy with it. Here's a quick run-down of where I'm at:

I'm exclusively using the Fuze under my main operating system, Ubuntu. Amusingly, I couldn't use it under my secondary Windows XP installation if I wanted to, because something on my old Presario R3000 laptop is not working quite right, and many USB devices—including the Fuze—won't work under Windows. They work slowly under Ubuntu (about 5 MB/sec transfer rate), but they do work.

The Fuze is operating in MSC mode, where it simply appears as a hard drive. If there's an advantage to using MTP mode, I'm not seeing it, and I'm not keen on moving away from my newfound love in Quod Libet. When I disconnect it, it reindexes my music and I'm ready to go.

Speaking of disconnecting, I'm sort of irritated that it goes into host mode every time I plug it into USB. USB is the only way you can charge it, so if I do find myself with a low battery sometime, I won't be able to play music while it charges... unless I get myself one of those dedicated USB power transformers. Ugh.

To get album art all working happily, I dug around in the official Fuze boards and found out while the Fuze can read embedded album art in MP3s, it seems to prefer a file called Album Art.jpg in each folder. This enabled art in the album browser as well as added art to my previously art-less Ogg Vorbis files. So, now in addition to vorbissort, I have another quickie script that walks my Music folder and uses ImageMagick to convert Picard's cover.jpg files into 120×120 Album Art.jpg files. It literally is a single line of shell:
#!/bin/sh
find . -name cover.jpg \
-execdir convert -verbose cover.jpg -resize 120x120 Album\ Art.jpg \;
In addition to writing vorbissort to deal with the Vorbis album art so it didn't get in the Fuze's way, I also had to re-run all my MP3s through Picard and make the ID3v2 tags version 2.3 (which they already were) and ISO-8859-1 (which they were not). No more foreign languages in my MP3 tags, but it's no real big loss.

Finally, and perhaps most irritatingly, I've resigned myself to the knowledge that I will probably never be able to watch videos on this thing. Sansa includes a Windows program (that I can't run) to convert videos, but I hear it does a crappy job, and nobody has yet discovered how to make ffmpeg encode for the Fuze. Watching the sample video that came on my Fuze as shipped, I'm not so sure it's a loss, though... it's pretty poor.

Now that I've got this perfect setup, the Fuze is pretty much perfect. My wife joked a few days ago that its primary purpose is to put me to sleep, since I used it on Christmas Day with some random new agey songs I had from eMusic to relax and get over an excruciating sinus headache, ending up sleeping in the chair... then back at home, fell asleep again in my recliner doing the same relaxation routine to get over some stress. I laughed at the time, but then one morning when I was merely in my recliner listening to some rather un-relaxing Transatlantic, I fell asleep again. Maybe there's something to this...

Labels: ,

posted by zigg 10:37 PM 6 Comments

The joy of namespaces

I promised (threatened?) in this blog's introductory post to talk a little bit about why I needed Blogger to be able to publish under my domain, zigg.com.

In 1998, Tim Berners-Lee, the guy who invented the Web, wrote a little bit for the W3C called Cool URIs don't change, in which he advocates keeping resources available under the same URI forever in the face of the beginnings of a worrying trend: URLs that we used just a few years ago are increasingly being invalidated by the march of progress.

You've seen it yourself, if you've used the Web for any length of time, I'm sure. A link used to go to some page you're interested in, and it drops you off at a dead page—or worse, asks you to try searching their site for it—an exercise that is usually fruitless. It doesn't have to be this way; a conscientious and competent webmaster can either keep the same URL scheme forever or provide some server-side trickery so that URLs from many years ago will still work, with one key catch: they have to have full control over the domain that the original URLs lived on.

This is why I need my journal to live under zigg.com; if, down the road, I do quit using Blogger, I can continue to serve up all the content that I've created since I started transparently—even if I switch software and end up using a new URL scheme, I can have the old mapped to the new. If I hosted my blog elsewhere, though, I wouldn't have that option. I'd be at the mercy of whatever that host provided me. If I fully control the domain I'm using, I can do what I need to do, and if the people I'm paying to host zigg.com can't give me what I need, I can go elsewhere.

I'm glad I can do this for my blog, but it's troubling that so many other sites (including many that may simply not be here in a few years) are lining up to have me host resources without giving me any sort of control over the namespace itself. If it's a Facebook-like situation, where there's a walled garden of sorts and no expectation of external linking, the stakes are obviously much lower; but if I am going to be creating public resources, I need to be able to promise the public that I am committing to continuing to serve that resource, as long as it exists and I am able, at the address I originally give for it. Publishing things under anyone else's domain just doesn't give me that ability.

And to not be able to make that promise, well, that's just not cool.

Footnote: If you're confused by "URIs" and "URLs", you're not alone. The types of addresses most people have been exposed to on the Web, those that start with http:// and ftp:// and what not, those are URLs because they locate a resource. There are also things called URNs, which name a resource, but don't actually locate it on the network; something like urn:isbn:068486293X would be a URN. Both URLs and URNs are URIs. The more you know!

Labels:

posted by zigg 9:00 PM 0 Comments

Saturday, December 27, 2008

vorbissort: Reorganizing Vorbis comments for the Sansa Fuze

Part of my holiday haul included a 8 GB Sansa Fuze, something I didn't even really know I wanted till I saw it in the Costco Black Friday flyer for $50. My beloved in-laws honored me with this particular gift, which I've been really enjoying over my trusty but aging LifeDrive with TCPMP.

One of the key features I demand from a portable music player is, of course, that it play Ogg Vorbis files. The Fuze recently gained this capability via a firmware update, but it is just a teensy bit rough around the edges yet. Notably, album art, which MusicBrainz Picard will put into the Vorbis comments (if you add the coverart plugin, at least), causes problems.

It's not just that the Fuze doesn't display the album art (which is forgivable, but I hope that gets fixed in a future update; MP3 album art displays just fine), but I found out that where the album art is located within the Vorbis comment stream may break tag parsing—and as the Fuze's library is navigated entirely based on tags, this meant that some music was coming across with unknown artists or missing track numbers... making navigating said music a chore.

Thankfully, it's easy to fix. I found that if I move the album art to the end of the Vorbis comment stream, the Fuze seems to be able to handle everything else. The vorbiscomment utility (part of vorbis-tools, for you Ubuntu/Debianites) can be used to edit the Vorbis comments on your typical Ogg Vorbis file. I automate this process with the following script, vorbissort:
#!/bin/sh
#
# Reorganize Vorbis comments for the Sansa Fuze, putting album art last in
# the stream, so that other comments don't get ignored.
#
# Public domain by Matt Behrens <matt@zigg.com> with NO WARRANTY. Back up
# your music first.
#
# Usage: vorbissort <filename> [<filename>...]
#

while [ "x$1" != "x" ]
do
tempfile=`mktemp`
echo $1
vorbiscomment "$1" | grep -v ^coverart >> $tempfile
vorbiscomment "$1" | grep ^coverart >> $tempfile
vorbiscomment -w "$1" < $tempfile
rm -f $tempfile
shift
done
Typically, you'd cd to the directory containing the Ogg Vorbis files you want to re-sort and type vorbissort *.ogg. (If you're feeling particularly brave, find . -name \*.ogg -print0 | xargs -0 vorbissort can do all your Oggs in one go—but don't you dare try it unless you understand what that entire command line is doing.) I used this on probably a good dozen albums and all came across flawlessly. Once I re-ran my MP3s through Picard, giving them id3v2.3 tags encoded in ISO-8859-1 instead of UTF, the Fuze displayed all my music flawlessly.

Great little player, when it's all said and done. I hope that future firmware versions solve the tag-reading problems.

Labels: , ,

posted by zigg 7:08 PM 2 Comments

Welcome to the circus

Ah, yes, the introductory blog post. Except this isn't a blog, it's a journal. You'd do well to remember that. I'm not particularly fond of the word "blog", but I won't blanch too much if you call it a blog.

This is sort of a milestone for me. You see, I'm a perfectionist. You may be surprised to hear that if you've seen some of my lower-quality output—but that's not really what I'm so much of a perfectionist about. I've been meaning to start this journal for years, but I had this idea in my head that I wasn't going to until I could write my own blogging software.

It wasn't even that the world wasn't full of good blogging software; it was just that the world was full of blogging software that I didn't think was, well, perfect enough for me. But this week, as part of my self-imposed perfectionism therapy, I decided I was just going to go for the Path of Least Resistance and set up a Blogger account. (It's not like I compromised totally. I wouldn't be using Blogger except that it can publish under my own domain name, actually. But that's a topic for another day...)

So, here we are. Sit back, enjoy the ride, and duck lest the clichéd closing-introductory statement knock you on the noggin!

Labels:

posted by zigg 4:17 PM 0 Comments