The Music Statter

In 2024, I started keeping track of the albums I listened to every day. Towards the end of that year, I began developing a Python script called The Music Statter to parse my listening data and generate statistics. This page lets you view the output of my program.

Click on one of the buttons below to see what I listened to during that period.



            
            
Click a button to load a text file...

How does it work?

In Microsoft OneNote, I have a template with fields to help me take notes about what happend throughout the day. Throughout the day, I'll either write down an album I've listened to in my pocket notebook and transfer it to OneNote at the end of the night, or enter it directly. At the end of each month, I export the thirty-something entries to .html files.

I'll run The Music Statter and tell it to generate a "mergefile", which contains all of these .html files crammed into one. Then, I'll tell The Music Statter to "generate listening statistics": it iterates through that file line-by-line and tallies up the occurences of each album, scraping other relevant information along the way. It then looks through a dictionary of album lengths and calculates how long I spent listening to each album in total over the course of the period. When I add new albums to my CD collection, I always rip them so that I can put them on my iPod; becuase of this, I'm able to easily iterate through my digital CD library and retreive the album lengths.

The system isn't perfect—it relies on me spelling each album correctly and I oftentimes have to go back and correct my entries—but I'm constantly working to improve it. It's evolved a lot over the past couple months, and i've had a lot of fun getting it to where it is now.

I'm in the process of integrating iTunes Library XML data so that I can figure out the total amount of time I've spent listening to Stayin' Alive by the Bee Gees and "Right Where It Belongs" by Nine Inch Nails. I'm also expanding the capabilities of the album lengths crawler as well as expanding the statistics generated.


BACK