Thought Knots

The meandering musings of Joey Cato


Posted on March 18, 2016  in Projects


Just released my latest project, SongBranch. It’s basically an interactive song lyric visualization app. The edges are colorized as a heat map based on the word/phrase frequency. There are three different graph views: The default Normal view uses a custom algorithm to display a graph the song lyrics in the fewest nodes possible. The Simple view displays each song verse as an individual node, whereas the Detailed view is a graph of each individual word.  You get interesting results from songs based on how the words are structured and repeated. Here are a few of my favorite findings:


Daft Punk – Technologic

Eminem – Rap God

Madonna – Like a Prayer

Radiohead – Creep

Chumbawumba – Tubthumping

, ,

  • Hey Joey, what technologies did you use to make this? I’m willing to make some apps with graphs but I really don’t know where to start (I know there is neo4j for databases, but I don’t know where to start in the visualizations). I would appreciate some guidance in this!

  • Joey Cato

    Hey Vinicius,

    The core graph visualization is just using SpringyJS: It’s a pretty awesome library and didn’t take too much time to figure out.

    Also, I pull song lyrics from ( It had fairly decent coverage based on my own searches )

    Rest of the code (which probably took me most of the time) was spent figuring out the best way to parse the lyrics ( so as to generate fewer graph nodes while maximizing their re-use ) I’ll likely post the code on GitHub in the near future, just need to spend some time commenting and cleaning it up a bit first 🙂


  • Thanks, I’ll take a look at SpringyJS