6 posts with 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: 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

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

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