Tag: Songbird

Building a Songbird Add-On: Part 0

songbird-artist-web-media-view-mockupAfter complaining about alphabetization in music libraries for — wow — almost a year, I’ve decided it’s time to do something about it.

I know very little about JavaScript and XUL, but that is going to have to change. My goal is to complete the add-on described here, an Artist Web media view, or perhaps “Constellations.”

To make the task appear less daunting, I’ve broken it up into many milestones of marginal improvements. If I follow this timeline, the plugin will be usable and released to the public as Constellations v0.1 on July 27.

Milestone ver Description Target Date Actual Date
i 0.0.1 display all artists in a vertical list 08 Jun 2009
ii 0.0.2 display most recent Last Played value for each artist 15 Jun 2009
iii 0.0.3 display total Play Count for each artist 22 Jun 2009
iv 0.0.4 vary font sizes according to total artist Play Count 29 Jun 2009
v 0.0.5 vary font colors according to total artist Play Count 6 Jul 2009
vi 0.0.6 vary font colors according to Last Played 13 Jul 2009
vii 0.0.7 arrange artist names left-to-right instead of vertically 20 Jul 2009
viii 0.1 focus first of the artist’s tracks in the playlist pane when the artist’s name is clicked 27 Jul 2009
ix 0.1.1 resize/re-color based on play frequency instead of play count 10 Aug 2009
x 0.2 options window that alternates between which variable is assigned to which font property 31 Aug 2009

I’m going to create a separate blog to track my progress on this, for several reasons:

  1. Threat of shame. If I emphasize publicly that I am going to do this, and I fail, I’ll be kind of embarrassed. Hopefully that will motivate me to actually complete the project.
  2. Geeks love proving that they’re smarter than you. If I’m having a tough time with some relatively elementary code, maybe people will mock me in the form of writing the correct code themselves. I’m certain that what I’m attempting could be done in no time flat if I’d been formally educated in things like JavaScript. Maybe the biting sarcasm of people who need to demonstrate their intelligence will show me where I’m going wrong.
  3. To encourage plagiarism. Look, I’ll admit that I’d be proud if the add-on that comes out of this bore my name. But ultimately, I don’t care. If somebody sees what I’m doing, likes it, wants it to be their own, and knows they can beat me to it, then great. At least we’ll have the add-on.

If you feel like mocking me or encouraging me you can email me at topdownjimmy@gmail.com, leave/follow comments on this post, or visit my dedicated Constellations blog to see where I’m taking this and how quickly I fail.

2 Responses

Alphabetization Is Positively Fucking Shite for (large) Music Libraries

I’ve been running Ubuntu for several weeks now, probably over a month, almost exclusively. There are a couple things I miss about Windows; I keep it installed as a dual-boot option in case it takes me more than half an hour to figure out how to do something in Ubuntu that I can do in Windows in under two minutes.

One of the things I miss the most, of course, is foobar. I’ve been using Songbird, whose Linux version runs just as well as the Windows version I’ve gotten used to. But I didn’t truly realize how lost I was without my library filters in foobar; I think if in Windows I had wanted to play something in Songbird, but didn’t know what to listen to, I would have used my foobar setup to figure it out, then searched for the album in Songbird. I did this absentmindedly enough that, now that I’m without foobar, I’m alarmed at how difficult it is to navigate my library. I’m sitting here with Songbird open, and I’ve got 1,369 artists. What the hell am I supposed to do with that?

In foobar I had mood tags and clusters based on AllMusic data, so if I wanted something upbeat, I’d just look under the appropriate moods. If that didn’t work, I’d at least find an artist who came close, and then could use foo_scrobblecharts to find anybody in my library who was up to two degrees of separation away from any selected artist on Last.fm.

In Songbird, the best I can do is browse by genre (eyeroll), or use the Music Recommendations add-on, which only lists the top five matches for the currently playing artist on Last.fm, whether or not those five are in my library; if one of them happens to be, it conveniently links me to their tracks in my library, but it’s not that frequent an occurrence.

Anyway. The short of it is, for the eightieth time: something has to be done. How on God’s green earth does anybody figure out what to listen to? Oh that’s right, everybody just listens to Coldplay and U2 and Radiohead and Sufjan and The Hold Steady and The Shins and Miles Davis. If I only had seven artists I suppose I wouldn’t be making much of a fuss either.

4 Responses

Alphabetization: Part III

In what I think may be the first truly novel browsing environment developed for Songbird, ♪Photo displays your library as a pile of artist photos pulled from Last.fm. They can be dragged around and rearranged, and their orientation is remembered between Songbird sessions. In my testing it is unusably slow, however it is remarkably exciting to see innovation like this before Songbird is even out of beta. It would be an easy matter to implement a “snap” feature that would cluster similar artists together based on Last.fm data, or to provide an alternate view by album cover rather than artist photo — honestly, who can recognize some of these artist photos?

Anyway, as it’s only a couple weeks old I’m sure it will improve, and it demonstrates just what amazing things can be done with the Songbird platform. Hopefully we’ll see more daring and clever extensions like this when Songbird hits 1.0 next month. I’m considering making it my full-time player in order to collect more statistics (play dates, play counts, added dates, etc.).

One Response

[req] Perfect Recall

I have a big problem with keeping track of the media I consume. With all the albums I download and listen to, and all the shit I read online, I’m oppressed by this feeling that it’s all just running through me without being digested or processed. It’s over-stimulation, I end up with all this shit in my head that I don’t know what to do with. I could of course just limit my intake, but I’m addicted to media and I don’t feel like changing any time soon. Plus there’s got to be a way I can apply all this stuff.

I suppose traditionally that’s what the blog format is meant for, to just kind of shit out everything you consume in the form of links and video embeds. But really that’s more like just “taking notes” at a lecture with a cassette recorder, see what I mean? That’s just transcription. I need something to do with it all. This problem is addressed to some extent by my meticulous music library curation with foobar, and my desperate calls recently for somebody to improve on the way we manage our music.

I think a prevailing problem is that of linearity; I can write a post on here, then another post, then another, and they appear chronologically in a line. Tagging and categorizing helps to make the content on here a little less linear, but it’s still not satisfying enough. I mean what I want is to be able to have some very loose, scrapbook-y interface where I can just kind of swim through collages of things: albums, journal entries. Snapshots of various aspects of certain time-periods. Paper is free-form enough to serve a purpose like this, but notebooks aren’t searchable or easily rearrangeable, and aren’t as ubiquitous as the web.

Continue reading “[req] Perfect Recall”

7 Responses

Alphabetization: Part II

First, some good news: Songbird is now in public beta! It’s amazing how stable things have gotten just over the last six months. And, significantly, it now features a Playback History API, which by the looks of things allows developers access to the entire play history of any song in a library, something that is crucial to the kind of deep library scavenging I’ve been pining for.

Since I last wrote, everything I see or read seems to inspire my half-baked ideas about the better ways we can browse our unmanageably large music libraries. After telling a friend about these ideas, he said:

Yeah, it’s actually really frustrating. I intentionally keep the number of artists on my iPod small so I don’t have to sort to find things I’m currently into.

Me too.

Then there are the people who are doing a lot of (real) work towards novel interfaces like the (hypothetical) ones I’m describing; Last.fm’s “Islands of Music” (explained here) demonstrates the kind of artist-similarity topology that would make browsing your library a more pleasant experience; Lee Byron explains in more detail how he developed that Last Graph infovis; necimal releases a Music Recommendations extension for Songbird that promises to use Last.fm’s data to find within your library artists similar to the one playing; and the Aurora project, part of the Mozilla Labs concept browser series, depicts a radical three-dimensional view of files and data with auto-clustering, which, if applied to a music library, would be nothing short of incredible.

I’ve also thrown together a pitiful little mock-up of what Songbird might look like when you start it up with the kind(s) of extensions I’m hoping for:

The two core components depicted are the Start Page and the Timeline View. The Start Page I feel would be seriously valuable, one of the ideas behind all these blatherings of course being that one doesn’t always have a destination in mind when opening their music library. The Start Page would offer a number of convenient “jumping-off” points, pulling you into your library to explore it further — by artist similarity, maybe, or by play history proximity, after just a couple clicks.

The Timeline View is a zoomable timeline, shown here zoomed to a daily view. Zooming out could show you albums played within recent weeks; then months, quarters, etc. These albums might be sorted by Periodical Impact, something I explained in depth here; essentially they would be sorted not by the raw number of times they were played within any given period, but by how distinct they were to that period.

Even these meager ideas are leagues ahead of what’s available, and I’m not even a data analyst. Just imagine how a library’s play history data could be exploited by somebody trained in these things.

One Response

Alphabetization Is Not Fit for Music Libraries

Wikipedia’s article on alphabetization explains:

Advantages of sorted lists include:

  • one can easily find the first n elements (e.g. the 5 smallest countries) and the last n elements (e.g. the 3 largest countries)
  • one can easily find the elements in a given range (e.g. countries with an area between .. and .. square km)
  • one can easily search for an element, and conclude whether it is in the list

The first two advantages are things you almost never need to do with music libraries. And the third has been supplanted by now-ubiquitous search boxes: if you know what you’re looking for, you search; and if you don’t, an alphabetized list is not the way to find it.

Web visionary Ted Nelson (<mst3k>Dr. Ted Nelson?</mst3k>) has been paraphrased as pointing out that “electronic documents have been designed to mimic their paper antecedents,” and that “this is where everything went wrong: electronic documents could and should behave entirely differently from paper ones.” If the folder metaphor is inadequate for digital documents, no wonder it’s so pitiful at handling music. The proximity between pieces of music in a library should least of all be based on the first letter in a band’s name – it’s as arbitrary as sorting them by the vocalist’s month of birth – yet this is how it’s universally done.

Music library organization needs to be re-thought from the ground up. We need to consider how it is that people used to listen to music before it was all on their iTunes. How are your CDs organized (or disorganized) on your shelf? How are they organized in your head? What is it that prompts you to listen to what you listen to when you listen to it? And how can we use computers to adopt and enhance these ways of thinking, rather than forcing us to think like computers? Continue reading “Alphabetization Is Not Fit for Music Libraries”

17 Responses

Songbird 0.5

Songbird 0.5 was released last week, and, while not technically inconsistent with claims that its RSS parsing had been “improved,” I was disappointed to see that two of my three podcast subscriptions still aren’t coming through. The problem has been migrated to a new bug ticket.

There’s also a new “Media Views” feature, which looks promising. As of now the only add-on to take advantage of this is a simple tag-cloud library view, but I imagine things could get really elaborate there. Their line, “Tired of music players that look like spreadsheets?”, has me anticipating all kinds of innovative browsing environments; picture a navigable mood-cluster terrain, or a pannable, zoomable, clickable history wavegraph. I’m seriously considering teaching myself enough XUL to be able to write a hotness add-on.

Amazingly, 0.1 was first released over two years ago. And their releases have code-names like Bowie and Eno? Who knew.

4 Responses

Some day, Songbird will:

  • have a proper CoverFlow clone that doesn’t lag or rely on Java (like AlbumApplet), and that allows for custom locations of art on the drive.
  • monitor folders for new music.
  • have an integrated BitTorrent client that puts music from trackers directly into your library.
  • jump to the location in a page where the currently playing mp3 was found.
  • properly recognize all XML podcasts (a known issue).
  • allow you to browse by when albums were added, when they were played (not just last played, but over their entire history), and by hotness.
  • submit to Last.fm.

And on that day…

2 Responses