Spread The Love
Tuesday was our first office-wide Hackday at Turntable. Our frontend developer Dan decided to mine our database for data about how songs spread between users. Here are his findings:
Happy (belated) V-day, turntablers! I’m Dan, a TT developer, and in honor of this day of love, I’d love to tell you about a project I’ve been working on for Turntable’s inaugural internal “hack day”.
Unless you’ve been living under a digital rock, you know and love this little “valentine” that floats through the room every time someone adds the currently-playing song to their own queue. Snag! Gank! Yoink! Heart fart! Whatever you like to call ‘em, there’s no doubt that they make up a large part of our culture on turntable. Sometimes you hear a song that’s just so dang good, you want to shout it from the mountaintops, to walk out on the street, boom box in hand, so the rest of the world can understand just how awesome this song is. It is for these moments that the almighty snag was invented.
When a new song is played on turntable, it’s often snagged by many people who go forth into other rooms and play it for their friends. Some of these friends may love it enough to snag it themselves and share it with their friends, and the cycle continues! I’ve always found this to be a fascinating part of our community, and have often wondered how far my own favorite songs have spread through the TT universe. So this week, I decided to find out.
Ever since the day the “snagging” was introduced as a new feature on turntable, Jon (who draws cats) set up our servers to keep track of which songs were snagged by whom, and from whom, and stick this bit of info in a collection in our database. Then we didn’t touch that collection for a long time. So imagine my excitement to poke my head in there yesterday and find an untouched goldmine of nearly 8 million snags collected over the past year and a half! I immediately set to work writing a script to sort these out and generate something visual to show how songs propagated through the community. After a (hack) day’s work tweaking data and playing with d3 I was able to generate this lovely tree, which shows all snags for the song “At The River” by Groove Armada, one of my all-time faves:
Reading the chart, like reading the rings on a tree stump, requires a bit of explanation: The cluster of green dots in the middle represent a song’s “primary sources” – that is, people who added the song to their queue on their own, either by uploading it or searching for it in our library. Each grey line is a snag from another user, represented by the yellow dot at the other end of the line. As they play the song for more people, the “snaggers” become “snaggees”, adding another layer to the tree and spreading the music out to more people! I’m quite proud of this particular tree myself – as you can see, after I snagged the song from “Zound” (halfway up from the middle) I was able to share it with many more people.