Shiny Contest Submission: Lyrical Analysis of '69 Love Songs' by Magnetic Fields

Exploring the lyrics to the three-volume album, 69 Love Songs, by The Magnetic Fields

My submission to the Shiny Contest is also my first completed and deployed Shiny App (so be kind!):

Here's an introduction to the app as taken from the first page:

"In 1999, the indie-pop band Magnetic Fields released the album 69 Love Songs. Conceived and written by frontman, Stephin Merritt, it is a three-volume concept album containing (yep, you guessed it) 69 love songs.

Merritt has described the album as "...not remotely an album about love. It's an album about love songs..."

So, what does Stephin sing about when he sings about love (songs)?

Play with this interactive tool and find out!"


Inspired by the 'Tidy Text Mining' book by Julia Silge and David Robinson, it is built largely around the tidytext and tidyverse packages. Besides some ggplot2 plots, the app also includes:

  • Interactive Wordcloud using the wordcloud2 package.

  • Bigram network graph using the visNetwork package. This paired very nicely with the tidygraph package. I was going to create a ggraph plot, but the visNetwork package has interactive functionality. I only discovered it on Thursday but will certainly be using it again.

I had initially scraped the lyrics (from around October last year using rvest package (scrape program is Magnetic Fields 69 Love Songs.R) and had started some analysis. But had put it to one side, until deciding last Wednesday (27th Feb) to pick it up again and turn it into an app. So I've learnt a lot about Shiny (and CSS/HTML) in the last week and a half!

Some Screenshots from the app


The font and colours used in the app have been chosen to match the album artwork as best I could (see separate CSS file, styles.css, in the RStudio project). I've tried to have some fun with it, and included pertinent (perhaps tenuous) lyrics from the album on each page.


I've just discovered on deploying the app that not all features render well on mobile devices. The worclould and network graph are good, but the ggplots get a bit messed up! Something to improve for Shiny App Number 2! All suggestions on how I can improve the app (and future apps) are welcome.

More on the app

I intend to expand more on the process of making the app on my blog before Friday: I had a lot of fun making it.


David / committedtotape


This is a ridiculously over the top deep dive into this music, and I am here for it. Very cool!

1 Like

Thanks, it was a real labour of love (pun fully intended)! I feel like I could have gone deeper, but then I may have a problem. Blog post where I go into more detail is now up, should anyone be interested!

This topic was automatically closed 54 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.