How I do things

How I listen to music

I have a large MP3 collection (Tamil and Hindi films). I don’t like selecting songs to listen to. Too much effort.

I rated all songs I had listened to (650 songs x 5-10 seconds = 1-2 hrs) and created 7 SmartViews. I just go to one of these and play them in order. Here are my views, in descending order of their use.

  1. Most played. Sorted by Play Count. Songs I play the most. Plays stuff I listen to usually.
  2. Not heard recently. Played Last before 3 months ago AND Rating >= 3. Plays good songs I haven’t heard recently.
  3. Not played much or recently. Played Last before 1 month ago AND Play Count <= 2 AND Rating >= 3. Plays good songs I haven’t heard often enough.
  4. Recent hits. Last updated after 3 months ago AND Play count >= 3. Plays songs recently added and liked.
  5. Recently played. Sorted by Last Updated. Often, I like to listen to songs I listened to yesterday.
  6. Top rated. Sorted by Rating. My best songs. (Suprisingly, I don’t use this view much.)
  7. Recently added. Sorted by Played Last. Plays songs I just downloaded.

But WinAmp’s not good enough. For example, I can’t find out what songs I played at least thrice last month. How do I see what I’ve been listening to a lot recently? Fortunately, there are a few WinAmp history plugins. I installed Pepper, which produces a log file that can be analysed. I did this two weeks ago, and don’t have enough data. When I do, I’ll modify two views

  1. Not heard much or recently. I’ll change this to “Not heard much recently” – Rating >= 3, Play Count > 5, Play Count = 0 last month.
  2. Recent hits. Modify it to show songs played at least thrice last month.

Matching misspelt Tamil movie names

I don’t like hunting for new songs either. Too much effort.

External recommendations like Raaga Top 10 help, but not much. I usually like only 1 of the top 10.

I don’t really know the recent music directors. But many interesting songs I’ve heard recently (like Ondra Renda in Kakka Kakka, Vaseegara in Minnale, and Kaadhalikkum in Chellame) are by Harris Jayaraj. So maybe if I can find the music directors I like, other songs by them would be good recommendations.

I have an automated way to find the music director for a movie. First, I spent a few hours renaming my MP3s to a Movie.Song.mp3 filename format (using Excel and Perl liberally). After that, I wrote a Perl program that reads movie names and the movie directors from Raaga and matches the Raaga movie names with my movie names. (Raaga has all but 5 movies whose songs I’ve heard.) Then I rate music directors based on my songs’ ratings.

Unfortunately, the matching worked only for 45% of my 273 movies. The rest were spelt differently on my list and Raaga. I checked CPAN if there was a way to match Tamil words roughly. The closest was Lingua::Phonology, but Jesse, the author, mailed me saying that was “like slicing your bread with a chainsaw”.

So I developed these rules. The -> arrow below is to be read as “is also spelt as”. By just applying them sequentially, I matched 33% more movies.

Vowel rules
AEdhiri -> Edhiri
kadhal kondEIn -> kadhal kondEn
chellamEY at end-> chellamE
sachIEn -> sachIn
marupadIUm -> marupadIYUm
OI, OY, OVI, OYI are all the same
AAthma -> Athma
azhagiya thEEye -> azhagiya thIye
abOOrva ragam -> abUrva ragam
Ignore H. It is redundant.

Consonant rules
arasakTCHi -> arasakSHi
CHippikkul muthu -> Sippikkul muthu
thenNDRal -> thenNRal
devar maHan -> devar maGan
bagaWathi -> bagaVathi
avvai shanmuGi -> avvai shanmuKi
konJi pesalam -> konCHi pesalam
anDha 7 naatkal -> anTha 7 naatkal
aBoorva sagodharargal -> aPoorva sagodharargal
agni natchaTHIRam -> agni natchaTHRam

The remaining movies either had spelling mistakes (e.g. Kilipethcu Ketkavaa) or had structural differences (Ilamai Oonjal Aadugiradhu vs Ilamai Oonjal Aadudhu). By permitting approximate matches using String::Approx, I was able to match 12% more, making my total accuracy ~90%.

Though this is good enough for identifying music directors, I’m working on improving the approximate matching rules. I hope to have 98% accuracy, and then I can match individual songs — and know who the singers are. Hopefully, this can be extended to other sites like MusicIndiaOnline, and who knows — maybe even IMDb.

Why Google Reader

I switched to Google Reader as my blog reader (I was using Mozilla so far). The reason was simple: speed. Thanks to the Google site’s speed and keyboard navigation, I can read blog entries 10 times faster. Now there’s a unique proposition for Google that a lot of people are missing: that their site loads a whole lot faster than others. It makes a huge difference to the whole browsing experience.

Autoblog

I have an automated (and lazy) way of finding interesting sites. This is what I do every day.

  1. I get the del.icio.us tags of every URL I blog about. (It’s available at http://del.icio.us/rss/url/ followed by the MD5 hex version of the URL).
  2. I pick the most popular tags (at least 50 links must have this tag), and use them as my “preferred tags”
  3. I scan the most popular sites on del.icio.us, and get each site’s tags
  4. If a site has my preferred tags, I give it points (the number of points is equal to the number of times I’ve blogged that tag)
  5. I pick the top 5 sites based on my points, and read them.

There are two problems I have now. Firstly, I will find sites similar to those I have blogged about — not discover anything new. That’s fine to start with — I can search for those manually. The bigger problem is, this is restricted to del.icio.us. There are two ways I can extend this (lazily).

  1. By finding new sources of popular URLs (which requires a site with a list of popular URLs updated daily, which I will find interesting)
  2. By finding new sites that tag URLs (which ideally requires an API to get the tags for a given URL)

There are lots of sources for popular URLs. But though many of sites, including notably Technorati, tag URLs, but none of them I know have APIs.