Data Scraping The Relevance of Chord Progression in Music

Posted on Nov 20, 2016
The skills we demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.
Before anything else, I want you all to check out this video:

What this basically shows is that with just four chords played in the same sequence, you can perform dozens and dozens of songs. The data shows all you need to learn to play the guitar or piano or whatever instrument you like are the following chords: D-A-Bm-G. A total of 47 songs were played in this medley using the same chord progression.

For the uninformed, here's a tiny bit of introduction about what chord progression is about.


We all know about notes. These are dots on a series of lines like the picture below. This basically tells us what pitch a sound will be played.

Data Scraping The Relevance of Chord Progression in Music

Now, a group of notes played together will form a chord. Shown below are a couple of chords and the notes that are played together to form that chord.

Data Scraping The Relevance of Chord Progression in Music

A chord progression, which is the focus of this post is the sequencing of chords to form a harmony.

The chord progression D-A-Bm-G is what was shown in the video. Here are more examples of other chord progressions:

G-Em-C-D chord progression:

This is another chord progression, C-Am-F-G:

Roman Numeral Rotation

Which brings us to the Roman numeral notation of chord progressions. This number system is a way to simplify the representation of chords in different keys. By referring to the table below and replacing each note with the corresponding Roman numeral of the key, we find that the examples in the sound clips are actually the I-vi-IV-V chord progression but played in a different key. The first clip was played in the key of G and the second in the key of C. The chord progression in the video is I-V-vi-IV played in the key of D.


Scraping the Data

To explore the relevance of chord progression in modern music, a list of songs and the most prominent chord progression used is needed. There are lots of small lists all over the web but nothing as big as the database of The website has a list of the most commonly used chord progression and the song and artist which has that chord progression. Selenium was used to scrape these lists because of the sites use of javascript.

To get more insights from the songs collected, additional information about the songs were retrieved from Spotify using their API. Spotify is generous enough to share a lot of information about the songs in their catalog. The song features retrieved for this exercise were the song's release date, its popularity rating in Spotify, and the valence score. In Spotify, the valence score is a measure of the song's mood. If the valence is close to 1, it is a happy sounding song. Songs with valence score close to zero is a moody or sad song.

Close to 2,000 songs across 17 chord progressions were scraped from hook theory's website. The chord progressions chosen were limited to 4-note chord progressions.

The Playlist

A bar chart was created to see how many songs there are for each chord progression.

Data Scraping The Relevance of Chord Progression in Music

Figure 1. Song count per chord progression.

The chart shows that there are proportionately more songs with the I-V-vi-IV progression than any other in our dataset. This observation validates the music video's premise that this chord progression is commonly used in modern music.

With this initial information, I wanted to see whether there is a trend of use over the years. One chord progression, in particular, I-vi-IV-V, is called the 50's chord progression. Could there have been more songs in the past with this progression than recently? Another progression that could have been more commonly used in the past is I-V-vi-iii called the Pachelbel progression which comes from ‘Canon’ in D Major by ‘Pachelbel’.

It was disappointing to see that the dataset did not have enough songs from the past to make a convincing exploration. The bar chart below shows this.


Figure 2. Song count per song progression per year.

Data on Popularity and Mood

The popularity and valence metrics retrieved from Spotify were used to explore whether chord progression has any influence on the song's popularity and the mood that the song conveys.


Figure 3. Box plot of popularity per chord progression.

The box plot of popularity against chord progression shows that I-V-vi-iii and IV-V-iii-vi stand out as being much lower than the rest. However, most of the progressions don't seem to differ much from each other.


Figure 4. Box plot of valence per chord progression.

The box plot of valence vs chord progression seems to show a trend of lower valence for the chord progressions starting in vi than the rest of the other progressions. To get a different perspective on this observation, a density plot was created.


Figure 5. Density plot of valence per chord progression.

It seems that the density plots in the bottom have a common right-skew.

Visual inspection is never enough proof to say that a trend exists that's why an ANOVA test was done on the popularity and valence means. The results of both test, shown below, shows us that there is a statistically significant difference between the means. What this implies is that songs using a particular chord progression may be more popular than others. It could also imply that songs with the same chord progression sound happier than others. But in order to see which particular progression causes the difference, a posthoc test needs to be done.

A posthoc Tukey test will compare all possible pair combination. In this particular dataset of 17 levels (chord progressions), we will end up with 136 pairs to investigate for each test. To simplify the analysis, the starting chord of the chord progression was instead considered to minimize the categories into three. These are now chord progressions starting with I, IV, and vi.

ANOVA tests for the reduced levels still show a statistically significant difference between the means in both popularity and valence.

The Tukey posthoc test on the reduced categories indicates that the mean popularity differs with the starting chord, with IV being less popular than I.

When it comes to the mood of a song, a lower valence score is seen when the chord progression starts with vi.


The I and IV chords are major chords while the vi chord is a minor. Apparently, musicians use major and minor chords similarly as how a painter would use a color palette. Using bright vibrant colors elicit happy emotions while dark muddy colors imply sadness. Musicians often refer to the vi chord as the relative minor or the "shadowy" twin. Roughly speaking, major chords have a happier, more open sound, whereas minor chords are darker and more claustrophobic.

About Author

Oamar Gianan

Oamar Gianan has about 15 years of experience in the information technology industry primarily in cloud computing. He developed a passion for data analysis by working on infrastructure where big data is processed. Before moving to New York,...
View all posts by Oamar Gianan >

Related Articles

Leave a Comment

楽曲のネットワーク分析: 音楽と離散数学 | 音楽的、音楽論的 May 21, 2021
[…] The Relevance of Chord Progression in Music (2016) […] February 11, 2017
With havin so much content do you ever run into any problems of plagorism or copyright violation? My site has a lot of exclusive content I've either written myself or outsourced but itt appears a llot of it is popping it up all over the web without my permission. Do you know anyy ways to help protect against content from being ripped off? I'd genuinepy appreciate it.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI