Alphabetization Is Positively Fucking Shite for (large) Music Libraries

I’ve been run­ning Ubun­tu for sev­er­al weeks now, prob­a­bly over a month, almost exclu­sive­ly. There are a cou­ple things I miss about Win­dows; I keep it installed as a dual-boot option in case it takes me more than half an hour to fig­ure out how to do some­thing in Ubun­tu that I can do in Win­dows in under two min­utes.

One of the things I miss the most, of course, is foo­bar. I’ve been using Song­bird, whose Lin­ux ver­sion runs just as well as the Win­dows ver­sion I’ve got­ten used to. But I didn’t tru­ly real­ize how lost I was with­out my library fil­ters in foo­bar; I think if in Win­dows I had want­ed to play some­thing in Song­bird, but didn’t know what to lis­ten to, I would have used my foo­bar set­up to fig­ure it out, then searched for the album in Song­bird. I did this absent­mind­ed­ly enough that, now that I’m with­out foo­bar, I’m alarmed at how dif­fi­cult it is to nav­i­gate my library. I’m sit­ting here with Song­bird open, and I’ve got 1,369 artists. What the hell am I sup­posed to do with that?

In foo­bar I had mood tags and clus­ters based on All­Mu­sic data, so if I want­ed some­thing upbeat, I’d just look under the appro­pri­ate moods. If that didn’t work, I’d at least find an artist who came close, and then could use foo_scrobblecharts to find any­body in my library who was up to two degrees of sep­a­ra­tion away from any select­ed artist on Last.fm.

In Song­bird, the best I can do is browse by genre (eye­roll), or use the Music Rec­om­men­da­tions add-on, which only lists the top five match­es for the cur­rent­ly play­ing artist on Last.fm, whether or not those five are in my library; if one of them hap­pens to be, it con­ve­nient­ly links me to their tracks in my library, but it’s not that fre­quent an occur­rence.

Any­way. The short of it is, for the eight­i­eth time: some­thing has to be done. How on God’s green earth does any­body fig­ure out what to lis­ten to? Oh that’s right, every­body just lis­tens to Cold­play and U2 and Radio­head and Suf­jan and The Hold Steady and The Shins and Miles Davis. If I only had sev­en artists I sup­pose I wouldn’t be mak­ing much of a fuss either.

[req] Perfect Recall

I have a big prob­lem with keep­ing track of the media I con­sume. With all the albums I down­load and lis­ten to, and all the shit I read online, I’m oppressed by this feel­ing that it’s all just run­ning through me with­out being digest­ed or processed. It’s over-stim­u­la­tion, I end up with all this shit in my head that I don’t know what to do with. I could of course just lim­it my intake, but I’m addict­ed to media and I don’t feel like chang­ing any time soon. Plus there’s got to be a way I can apply all this stuff.

I sup­pose tra­di­tion­al­ly that’s what the blog for­mat is meant for, to just kind of shit out every­thing you con­sume in the form of links and video embeds. But real­ly that’s more like just “tak­ing notes” at a lec­ture with a cas­sette recorder, see what I mean? That’s just tran­scrip­tion. I need some­thing to do with it all. This prob­lem is addressed to some extent by my metic­u­lous music library cura­tion with foo­bar, and my des­per­ate calls recent­ly for some­body to improve on the way we man­age our music.

I think a pre­vail­ing prob­lem is that of lin­ear­i­ty; I can write a post on here, then anoth­er post, then anoth­er, and they appear chrono­log­i­cal­ly in a line. Tag­ging and cat­e­go­riz­ing helps to make the con­tent on here a lit­tle less lin­ear, but it’s still not sat­is­fy­ing enough. I mean what I want is to be able to have some very loose, scrap­book-y inter­face where I can just kind of swim through col­lages of things: albums, jour­nal entries. Snap­shots of var­i­ous aspects of cer­tain time-peri­ods. Paper is free-form enough to serve a pur­pose like this, but note­books aren’t search­able or eas­i­ly rearrange­able, and aren’t as ubiq­ui­tous as the web.

Con­tin­ue →

Alphabetization Is Not Fit for Music Libraries

Wikipedia’s arti­cle on alpha­bet­i­za­tion explains:

Advan­tages of sort­ed lists include:

  • one can eas­i­ly find the first n ele­ments (e.g. the 5 small­est coun­tries) and the last n ele­ments (e.g. the 3 largest coun­tries)
  • one can eas­i­ly find the ele­ments in a giv­en range (e.g. coun­tries with an area between .. and .. square km)
  • one can eas­i­ly search for an ele­ment, and con­clude whether it is in the list

The first two advan­tages are things you almost nev­er need to do with music libraries. And the third has been sup­plant­ed by now-ubiq­ui­tous search box­es: if you know what you’re look­ing for, you search; and if you don’t, an alpha­bet­ized list is not the way to find it.

Web vision­ary Ted Nel­son (<mst3k>Dr. Ted Nelson?</mst3k>) has been para­phrased as point­ing out that “elec­tron­ic doc­u­ments have been designed to mim­ic their paper antecedents,” and that “this is where every­thing went wrong: elec­tron­ic doc­u­ments could and should behave entire­ly dif­fer­ent­ly from paper ones.” If the fold­er metaphor is inad­e­quate for dig­i­tal doc­u­ments, no won­der it’s so piti­ful at han­dling music. The prox­im­i­ty between pieces of music in a library should least of all be based on the first let­ter in a band’s name – it’s as arbi­trary as sort­ing them by the vocalist’s month of birth – yet this is how it’s uni­ver­sal­ly done.

Music library orga­ni­za­tion needs to be re-thought from the ground up. We need to con­sid­er how it is that peo­ple used to lis­ten to music before it was all on their iTunes. How are your CDs orga­nized (or dis­or­ga­nized) on your shelf? How are they orga­nized in your head? What is it that prompts you to lis­ten to what you lis­ten to when you lis­ten to it? And how can we use com­put­ers to adopt and enhance these ways of think­ing, rather than forc­ing us to think like com­put­ers? Con­tin­ue →

foobar2000 Is Dead or Dying: Part 1

Orig­i­nal­ly writ­ten June 30, 2007.

There’s always been a sig­nif­i­cant fac­tion of foobar2000 users whose pri­ma­ry attrac­tion to the play­er is its appear­ance, or rather the lev­el of con­trol giv­en to its users over its appear­ance. In its infan­cy, with the stan­dard (and still default) UI, very lit­tle was pos­si­ble — the main win­dow con­sist­ed sole­ly of a tabbed playlist and sev­er­al func­tion­al tool­bars — but peo­ple nev­er­the­less took a lot of pride in mak­ing it their own, and some impres­sive things were done with rel­a­tive­ly min­i­mal flex­i­bil­i­ty. It was in the stan­dard UI that users began exper­i­ment­ing with album-lev­el pre­sen­ta­tion, choos­ing not to repeat redun­dant­ly the artist and album name on each line of the playlist, but to use the sec­ond, third, and some­times fourth lines to dis­play oth­er info, such as year, label, genre, replay­gain info, etc. Each of these cus­tomiza­tions was unques­tion­ably unique, but most of the broad details of the inter­face were con­sis­tent and inescapable.

The Columns UI com­po­nent began as an exper­i­ment in allow­ing for mul­ti­ple columns with­in the playlist dis­play, emu­lat­ing the Win­dows Explor­er “Detail” view (and many oth­er Win­dows pro­grams), with sorta­bil­i­ty via click­able col­umn head­ings. Even­tu­al­ly Columns UI added a side­bar and, lat­er, pan­els, allow­ing the whole foo­bar win­dow to be split up indef­i­nite­ly into pan­el-based com­po­nent dis­plays, the playlist view­er becom­ing just anoth­er one of these. This grant­ed much greater flex­i­bil­i­ty, allow­ing users to tai­lor the inter­face even more pre­cise­ly to their needs. You could now dis­play album art as promi­nent­ly as you want­ed, or not at all; your entire library tree could be embed­ded with­in the main win­dow, rather than tucked away in a pop-up; and with the track­in­fo panel’s excep­tion­al­ly lax (by that era’s stan­dards) styl­iza­tions, the per­son­al­iza­tion of your foo­bar became even more addic­tive, and, more impor­tant­ly, reward­ing.

Many seemed hell-bent on con­coct­ing the most gar­ish pre­sen­ta­tions imag­in­able: giant goth­ic blue-on-black cus­tom fonts, deep-red 200-px-tall spec­trum ana­lyz­ers, all, of course, cou­pled with cus­tom OS “vis.”

While some still pre­ferred the puri­ty and ele­gance of the stan­dard UI, the per­son­al­iza­tions made pos­si­ble by Columns UI were inar­guably func­tion­al ones, for the most part. Fonts, col­ors, dis­tri­b­u­tion of pan­els, and a rudi­men­ta­ry method of text align­ment were real­ly as far as you could go. At the core of all the boast­ed screen­shots was a rec­og­niz­able struc­ture, all slight vari­a­tions on the theme of playlist+trackinfo+albumlist+albumart. Out­side of dis­play­ing album art, there was noth­ing pro­found­ly new that Columns UI allowed you to do — rather, Columns UI gave you more con­trol over how you did what you need­ed to do.

Con­tin­ue →

Hotness 1.6.c.1

Total­ly war­rant­ed sub­ver­sion­ing!

My for­ay into MP3Toys was ulti­mate­ly short-lived, brought to a halt when I found what peo­ple were doing with Sin­gle Col­umn Playlist for foo­bar, par­tic­u­lar­ly the playlist-embed­ded album art. Back in the foo­bar sad­dle, I also gave in and tried out the “offi­cial” Play Count com­po­nent, which I had avoid­ed for so long because it didn’t sup­port %FIRST_PLAYED%, and because I wasn’t sure I want­ed my play­back sta­tis­tics only kept in the data­base — even though writ­ing them to the files posed a lot of trou­ble as well. Turns out, play­back sta­tis­tics stored by the offi­cial com­po­nent are less sen­si­tive to changes to the files it’s keep­ing track of than the unof­fi­cial one, which means I only have to be a lit­tle care­ful to keep all my stats intact, while being able to play and track files that I’m still seed­ing.

This, along with the invalu­able $cwb_datediff() func­tion pro­vid­ed by Bowron’s new foo_cwb_hooks com­po­nent, called for a rewrite to the hot­ness code, which had been stag­nat­ing in some mar­gin­al­ly com­pat­i­ble 1.5 ver­sion since May. After severe­ly trim­ming the code down and robust­ing things up, I thought of a new and total­ly non-arbi­trary way to soft­en the blow hot­ness scores receive when songs are played. I hat­ed see­ing them leap to 100 every time, and this new soft­en­ing method makes so much sense, uti­liz­ing exist­ing base­line cal­i­bra­tions to keep things a lot more inter­est­ing. How any­body tol­er­at­ed the old method is beyond me.

Any­way, here it is.

I also dug up a lot of old screen­shots this week and I’m plan­ning a nos­tal­gia-fueled ret­ro­spec­tive in the near future.

MP3Toys

This will come as a shock to any­body who knows me, but I’ve all but stopped using foobar2000. A cou­ple months ago on the indi­etor­rents forums, some­body men­tioned MP3Toys, and I’ve been using it almost exclu­sive­ly since.

MP3ToysAs I men­tioned in a pre­vi­ous post, all the chores I was made to do in foo­bar seemed to keep me from lis­ten­ing to music: I was work­ing for my soft­ware, and not vice-ver­sa. My col­lec­tion of music felt cold and dead and frag­ile in the hands of foo­bar, and none of the fea­tures I had ide­al­ized in my mind were any­where near fruition (true hot­ness, sim­i­lar­i­ty-by-mood fil­ters, etc.). I des­per­ate­ly want­ed some­thing to get me back in touch with my music, some­thing that deliv­ered music to me in a way that felt as nat­ur­al as buy­ing a CD and putting it in my stereo. I even con­sid­ered switch­ing to iTunes.

MP3Toys isn’t for every foo­bar user; I just got lucky enough that it emu­lates my ide­al behav­ior in foo­bar. It’s a liv­ing, breath­ing pro­gram, and using it is a human­is­tic expe­ri­ence. It under­stands not just that you lis­ten to music, but why you lis­ten to music. Some of its intel­li­gent fea­tures include:
Con­tin­ue →

Intelligent browsing in foobar

Col­lect­ing my thoughts here…

foobarSo, iron­i­cal­ly, music is becom­ing increas­ing­ly dif­fi­cult for me to lis­ten to. As though wor­ry­ing about an exten­sive gaunt­let of tag­ging pro­ce­dures isn’t enough, I just have too much damn music. Brows­ing alpha­bet­i­cal­ly through upwards of 500 artists is not the best way to go look­ing for some­thing when you have no idea what you want to hear.

I’ve audi­tioned var­i­ous meth­ods of tweak­ing foo­bar to ‘deliv­er’ music to me more or less auto­mat­i­cal­ly, and I’m close to hav­ing some­thing ide­al. The playlist tree com­po­nent allows for dynam­ic tree struc­tures (which, unfor­tu­nate­ly, can only be rebuilt man­u­al­ly or every time a new song begins); using the title­for­mat­ting lan­guage, I’ve gen­er­at­ed five queries whose pur­pose it is to ‘coax’ cer­tain albums to stark­er vis­i­bil­i­ty from the fea­ture­less and indif­fer­ent music library, to greater or less­er suc­cess.

Con­tin­ue →

Verbal Timestamps for fb2k

Last week I spent some time devel­op­ing this algo­rithm in fb2k’s title­for­mat­ting script to trans­late numer­i­cal time­stamps (YYYY-MM-DD HH:MM:SS) into nat­ur­al Eng­lish text (“Fri­day Evening”).

verbal timestamps screenshot

It’s pret­ty cool. So, uh, here it is. Con­tin­ue →