This report is an exploration of the artist Chance the Rapper.

Warning: Explicit Content

I will be looking at how/if Chance’s music becomes more positive as his life becomes positive. I will be looking at his four main albums “10 Day” (2012), “Acid Rap” (2013), “Coloring Book” (2016), and “The Big Day” (2019). I chose only to look at these works with the help of Wikipedia and Spotify. Although Spotify only has the three albums “Acid Rap”, “Coloring Book”, and “The Big Day” on it’s platform, if you go to the about section under the artist, Spotify recognizes “10 Day” as Chance the Rapper’s first real mixtape/ album (mixtape and album are used interchangeably in his case). With that said, Spotify recognizes his second album “Acid Rap” as his first to hit the charts. Using “10 Day” in my analysis can be useful to show how his music changes as his fame grows. I will also look at the explicit words within Chance the Rapper’s albums. I will be looking at if the number of curse words go down throughout each album. The reduction in curse words throughout his music as each album passes represents his changing image. I will be using both the Genuis API and Spotify API to get my necessary information.

First I download the necessary packages

library(genius)
library(tidyverse)
library(tidytext)
library(textdata)
library(wordcloud2)
library(ggplot2)
library(devtools)
library(spotifyr)
library(knitr)
library(ggjoy)
library(dplyr)
library(plotly)
library(ggthemes)
Next I use my Spoitfy API access keys to download Chance the Rapper Spotify data

Here I am going to download each individual album

“10 Day”

10 Day is Chance the Rapper’s real first mixtape. This mixtape was released during a ten day suspension he received in High School for bringing weed onto his campus leading to the album name “10 Day” - https://en.wikipedia.org/wiki/Chance_the_Rapper.

tenday <- genius_album(artist = "Chance the Rapper", album = "10 Day")
View(tenday)

How many words are in this album

tenday %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  count()
## # A tibble: 1 x 1
##       n
##   <int>
## 1  7043

7043

How many times do the most popular words occur within the album?

tenday %>%
  unnest_tokens(word, lyric) %>%
  select(word) %>%
  anti_join(stop_words) %>%
  count(word, sort = TRUE) %>%
  filter(!word %in% c("tahm", "igh")) %>% 
  head(10) %>%
  knitr::kable()
word n
juke 108
fuck 97
bout 68
nigga 62
mama 37
time 36
break 32
niggas 32
shit 32
brain 26

the most used words are fairly negative

What is the sentiment of these words?

tenday %>%
  unnest_tokens(word, lyric) %>%
  select(word) %>%
  anti_join(stop_words) %>%
  count(word, sort = TRUE) %>%
  inner_join(get_sentiments("bing")) %>% 
  inner_join(get_sentiments("afinn")) %>% 
  filter(!word %in% c("tahm", "igh")) %>% 
  head(10) %>%
  knitr::kable()
word n sentiment value
fuck 97 negative -4
shit 32 negative -4
fucking 18 negative -4
love 16 positive 3
smile 10 positive 2
bitch 9 negative -5
funny 9 negative 4
warm 9 positive 1
worried 8 negative -3
bad 7 negative -3

note –> funny has a negative sentiment but a positive value?? (shortcoming of bing lexicon). list of words changes due to which can be measured by sentiment or not. stays in line with original observation of mostly negative words

What words stand out the most in a word cloud

tenday %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  anti_join(stop_words) %>% 
  count(word, sort = TRUE) %>% 
  filter(!word %in% c("tahm", "igh")) %>% 
  wordcloud2()

“Juke”, “Fuck” “Bout”

Looking at Spotify Data
Chance_the_Rapper %>% 
  filter(album_name %in% "10 Day") -> TenDayAlbum
View(TenDayAlbum)

Which track in 10 Day has the highest danceability?

Chance_the_Rapper %>% 
  filter(album_name %in% "10 Day") %>% 
  select(danceability, album_name, track_name) %>% 
  kable()
danceability album_name track_name
0.826 10 Day 14,400 Minutes
0.612 10 Day Nostalgia
0.743 10 Day Missing You
0.513 10 Day Windows
0.565 10 Day Brain Cells
0.392 10 Day Long Time
0.492 10 Day 22 Offs
0.490 10 Day U Got Me Fucked Up
0.639 10 Day Family
0.813 10 Day Juke Juke
0.437 10 Day Fuck You Tahm Bout
0.608 10 Day Long Time II
0.473 10 Day Prom Night
0.705 10 Day Hey Ma

14,400 minutes & Juke Juke have the highest danceability (highest .826)

Can each track’s danceability be shown in a graph?

TenDayAlbum %>% 
  ggplot()+
  geom_col(aes(x=track_name, y=danceability))+
  theme_economist()+
  theme(axis.text.x = element_text(angle = 90))

What is the distribution of the danceability within 10 Day?

ggplot(TenDayAlbum, aes(x=danceability)) +
  geom_density(alpha=0.7)+
  labs(x="Danceability", y="Density") +
  theme_economist()+
  ggtitle("Distribution of Danceability Data in 10 Day")

average of 2.5 songs have a danceability rate between .5 and .6

Using a heatmap code created by http://student.elon.edu/bwilliamson5/FinalProject/index.html to analyize danceability in 10 Day

ggplot(data = TenDayAlbum, aes(x = danceability, y = track_name)) +
  geom_tile(aes(fill=danceability, height=1 , width=.1),colour="red") +
  scale_y_discrete(breaks = TenDayAlbum$track_name) +
  scale_fill_gradient2(low = "#FF0000", midpoint=0.6,
                       space="Lab", mid="#FFE500", high = "#09B505") +
  labs(x = "Danceability") +
  labs(y = "Track Name") +
  labs(title = "10 Day Album Danceability")

Looking at the explicit words within 10 Day

Within 10 Day Chance is a high school druggie with a failing music career

10 Day without any stop or soft words

tenday %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  anti_join(stop_words)-> tendayexplicit

How often are the 10 most explicit words throughout all albums used in 10 Day?

tendayexplicit %>% 
  filter(word %in% c("fuck", "shit", "niggas", "bitch", "ass", "fucking", "damn", "fucked", "dick", "bitches")) %>% 
  count(word, sort = TRUE) %>%
  ggplot(aes(reorder(word, n), n)) +
  geom_col() +
  coord_flip() +
  theme_economist()

“fuck” is used nearly 100 times within the album

“Acid Rap”

During Acid Rap, Chance is going through his drug addiction but his music career is starting to take off. The artist “Tyler the Creator” allowed Chance to open for him allowing his music to reach new audiences. In the song “Cocoa Butter Kisses” you can see his family’s disapproval of his addiction in the lyrics: “Put Visine inside my eyes so my grandma would fucking hug me” - http://www.mtv.com/news/1707187/chance-the-rapper-acid-rap-mixtape/

acidrap <- genius_album(artist = "Chance the Rapper", album = "Acid Rap")
View(acidrap)

How many words are in this album

acidrap %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  count()
## # A tibble: 1 x 1
##       n
##   <int>
## 1  7781

7781

How many times do the most popular words occur within the album

acidrap %>%
  unnest_tokens(word, lyric) %>%
  select(word) %>%
  anti_join(stop_words) %>%
  count(word, sort = TRUE) %>%
  filter(!word %in% c("tahm", "igh", "na", "ooh")) %>% 
  head(10) %>%
  knitr::kable()
word n
love 58
juice 52
shit 51
jam 49
yeah 49
kisses 39
smoke 33
fuck 29
bout 27
bitch 24

the top three words used are fairly positive in this album (maybe a sign of growth?)

What is the sentiment of these words?

acidrap %>%
  unnest_tokens(word, lyric) %>%
  select(word) %>%
  anti_join(stop_words) %>%
  count(word, sort = TRUE) %>%
  inner_join(get_sentiments("bing")) %>% 
  inner_join(get_sentiments("afinn")) %>% 
  filter(!word %in% c("tahm", "igh", "na", "ooh")) %>% 
  head(10) %>%
  knitr::kable()
word n sentiment value
love 58 positive 3
shit 51 negative -4
fuck 29 negative -4
bitch 24 negative -5
miss 20 negative -2
lost 10 negative -3
scared 10 negative -2
fucking 9 negative -4
damn 8 negative -4
dick 7 negative -4

only one positive sentiment word. list of words changes due to which can be measured by sentiment or not.

What words stand out the most in a word cloud

acidrap %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  anti_join(stop_words) %>% 
  count(word, sort = TRUE) %>% 
  filter(!word %in% c("tahm", "igh", "na", "ooh")) %>% 
  wordcloud2()

“love”, “jam”, “yeah”, “juice”, “shit”, “kisses”, “smoke”, “fuck”

Loading Spotify Data
Chance_the_Rapper %>% 
  filter(album_name %in% "Acid Rap") -> AcidRapAlbum
View(AcidRapAlbum)

Which track in Acid Rap has the highest danceability?

Chance_the_Rapper %>% 
  filter(album_name %in% "Acid Rap") %>% 
  select(danceability, album_name, track_name) %>% 
  kable()
danceability album_name track_name
0.605 Acid Rap Good Ass Intro
0.768 Acid Rap Pusha Man
0.472 Acid Rap Paranoia
0.679 Acid Rap Cocoa Butter Kisses
0.759 Acid Rap Juice
0.667 Acid Rap Lost
0.551 Acid Rap Everybody’s Something
0.417 Acid Rap Interlude (That’s Love)
0.725 Acid Rap Favorite Song
0.594 Acid Rap NaNa
0.721 Acid Rap Smoke Again
0.727 Acid Rap Acid Rain
0.661 Acid Rap Chain Smoker
0.692 Acid Rap Everything’s Good (Good Ass Outro)

Juice and Pusha Man have the highest danceability (highest .768)

Each track’s danceability shown in a graph

AcidRapAlbum %>% 
  ggplot()+
  geom_col(aes(x=track_name, y=danceability))+
  theme_economist()+
  theme(axis.text.x = element_text(angle = 90))+
  theme(axis.text.x = element_text(size = 5))

What is the distribution of the danceability within Acid Rap?

ggplot(AcidRapAlbum, aes(x=danceability)) +
  geom_density(alpha=0.7)+
  labs(x="Danceability", y="Density") +
  theme_economist()+
  ggtitle("Distribution of Danceability Data in Acid Rap")

average of 4 songs have a danceability rate between .6 and .8

Using a heatmap code created by http://student.elon.edu/bwilliamson5/FinalProject/index.html to analyize danceability in Acid Rap

ggplot(data = AcidRapAlbum, aes(x = danceability, y = track_name)) +
  geom_tile(aes(fill=danceability, height=1 , width=.1),colour="red") +
  scale_y_discrete(breaks = AcidRapAlbum$track_name) +
  scale_fill_gradient2(low = "#FF0000", midpoint=0.6,
                       space="Lab", mid="#FFE500", high = "#09B505") +
  labs(x = "Danceability") +
  labs(y = "Track Name") +
  labs(title = "Acid Rap Album Danceability")

Looking at the explicit words within Acid Rap

In Acid Rap Chance’s music is finally taking off and hitting the charts

Acid Rap without any stop or soft words

acidrap %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  anti_join(stop_words)-> acidrapexplicit

How often are the 10 most explicit words throughout all albums used in Acid Rap?

acidrapexplicit %>% 
  filter(word %in% c("fuck", "shit", "niggas", "bitch", "ass", "fucking", "damn", "fucked", "dick", "bitches")) %>% 
  count(word, sort = TRUE) %>%
  ggplot(aes(reorder(word, n), n)) +
  geom_col() +
  coord_flip() +
  theme_economist()

Although “shit” is used almost 50 times throughout the album, “fuck” has reduced to only about 30 times. The amount of overall curse words has decreased.

“Coloring Book”

Coloring Book is the first album where Chance’s music has more of a gospel-y sound. His music begins to focus on moving forward from his past and focusing on his future and his music. In the song “Finish Line/ Drown” he states: “Last year got addicted to Xans, Started forgetting my name and started missing my chance” showing how his mistakes were holding him back. Chance also recognizes the good things in his life. In the song “Blessings” he says: “I know the difference in blessings and worldly possessions, Like my ex-girl getting pregnant, And her becoming my everything”. As seen in this Genuis article, drugs is the reason there was a 3-year gap between Acid Rap and Coloring Book.

coloringbook <- genius_album(artist = "Chance the Rapper", album = "Coloring Book")
View(coloringbook)

How many words are in this album

coloringbook %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  count()
## # A tibble: 1 x 1
##       n
##   <int>
## 1  7665

7665

How many times do the most popular words occur within the album

coloringbook %>%
  unnest_tokens(word, lyric) %>%
  select(word) %>%
  anti_join(stop_words) %>%
  count(word, sort = TRUE) %>%
  filter(!word %in% c("tahm", "igh", "na", "ayy", "bom")) %>% 
  head(10) %>%
  knitr::kable()
word n
ready 44
blessings 35
god 33
night 32
drinking 28
citywide 27
gon 27
drugs 24
hey 24
deserve 23

the top 5 most used words in the song are very positive

What is the sentiment of these words?

coloringbook %>%
  unnest_tokens(word, lyric) %>%
  select(word) %>%
  anti_join(stop_words) %>%
  count(word, sort = TRUE) %>%
  inner_join(get_sentiments("bing")) %>% 
  inner_join(get_sentiments("afinn")) %>% 
  filter(!word %in% c("tahm", "igh", "na", "ayy", "bom")) %>% 
  head(10) %>%
  knitr::kable()
word n sentiment value
praise 16 positive 3
bitch 15 negative -5
fuck 15 negative -4
love 13 positive 3
miracle 13 positive 4
shit 11 negative -4
bad 9 negative -3
woo 9 positive 3
free 7 positive 1
damn 6 negative -4

mix of negative and positive sentiments. odd that “f word” has a lower value than “b word”. list of words changes due to which can be measured by sentiment or not.

What words stand out the most in a word cloud

coloringbook %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  anti_join(stop_words) %>% 
  count(word, sort = TRUE) %>% 
  filter(!word %in% c("tahm", "igh", "na", "ayy", "bom")) %>% 
  wordcloud2()

“ready”, “blessings”, “god”, “night”, “drinking”, “deserve”, “friends”, “citywide”

Loading Spotify Data
Chance_the_Rapper %>% 
  filter(album_name %in% "Coloring Book") -> CBAlbum
View(CBAlbum)

Which track in Coloring Book has the highest danceability?

Chance_the_Rapper %>% 
  filter(album_name %in% "Coloring Book") %>% 
  select(danceability, album_name, track_name) %>% 
  kable()
danceability album_name track_name
0.531 Coloring Book All We Got (feat. Kanye West & Chicago Children’s Choir)
0.652 Coloring Book No Problem (feat. Lil Wayne & 2 Chainz)
0.693 Coloring Book Summer Friends (feat. Jeremih & Francis & The Lights)
0.404 Coloring Book D.R.A.M. Sings Special
0.714 Coloring Book Blessings (feat. Jamila Woods)
0.461 Coloring Book Same Drugs
0.838 Coloring Book Mixtape (feat. Young Thug & Lil Yachty)
0.771 Coloring Book Angels (feat. Saba)
0.505 Coloring Book Juke Jam (feat. Justin Bieber & Towkio)
0.704 Coloring Book All Night (feat. Knox Fortune)
0.439 Coloring Book How Great (feat. Jay Electronica & My cousin Nicole)
0.705 Coloring Book Smoke Break (feat. Future)
0.456 Coloring Book Finish Line / Drown (feat. T-Pain, Kirk Franklin, Eryn Allen Kane & Noname)
0.381 Coloring Book Blessings (feat. Ty Dolla $ign, Anderson .Paak, BJ The Chicago Kid, Raury & Jamila Woods)

Mixtape (feat. Young Thug & Lil Yachty) and Angels (feat. Saba) have the highest dancability (highest .838)

Each track’s danceability shown in a graph

CBAlbum %>% 
  ggplot()+
  geom_col(aes(x=track_name, y=danceability))+
  theme_economist()+
  theme(axis.text.x = element_text(angle = 90))+
  theme(axis.text.x = element_text(size = 2))

What is the distribution of the danceability within Coloring Book?

ggplot(CBAlbum, aes(x=danceability)) +
  geom_density(alpha=0.7)+
  labs(x="Danceability", y="Density") +
  theme_economist()+
  ggtitle("Distribution of Danceability Data in Coloring Book")

average of 2 songs have a danceability rate of either between .4 and .5 or .7 and .8

Using a heatmap code created by http://student.elon.edu/bwilliamson5/FinalProject/index.html to analyize danceability in Coloring Book

ggplot(data = CBAlbum, aes(x = danceability, y = track_name)) +
  geom_tile(aes(fill=danceability, height=1 , width=.1),colour="red") +
  scale_y_discrete(breaks = CBAlbum$track_name) +
  scale_fill_gradient2(low = "#FF0000", midpoint=0.6,
                       space="Lab", mid="#FFE500", high = "#09B505") +
  theme(axis.text.y = element_text(size = 3))+
  labs(x = "Danceability") +
  labs(y = "Track Name") +
  labs(title = "Coloring Book Album Danceability")

Looking at the explicit words within Coloring Book

In Coloring Book Chance is over his addiction and back in love with his pregnant ex girlfriend

Coloring Book without any stop or soft words

coloringbook %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  anti_join(stop_words)-> coloringbookexplicit

How often are the 10 most explicit words throughout all albums used in Coloring Book?

coloringbookexplicit %>% 
  filter(word %in% c("fuck", "shit", "niggas", "bitch", "ass", "fucking", "damn", "fucked", "dick", "bitches")) %>% 
  count(word, sort = TRUE) %>%
  ggplot(aes(reorder(word, n), n)) +
  geom_col() +
  coord_flip() +
  theme_economist()

“fuck” and “bitch” are only used about 15 times throughout this album, a big drop in comparison to the others. Most gospel like album, could be why there is such a decrease in curse words.

“The Big Day”

The Big Day is Chance the Rapper’s most recent and most mainstream album. He begins to move away from his Gospel/Blues-y vibe and into a more pop like tone.

bigday <- genius_album(artist = "Chance the Rapper", album = "The Big Day")
View(bigday)

How many words are in this album

bigday %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  count()
## # A tibble: 1 x 1
##       n
##   <int>
## 1 11722

11722

How many times do the most popular words occur within the album

bigday %>%
  unnest_tokens(word, lyric) %>%
  select(word) %>%
  anti_join(stop_words) %>%
  count(word, sort = TRUE) %>%
  filter(!word %in% c("tahm", "igh", "na", "ooh", "yeah", "uh")) %>% 
  head(10) %>%
  knitr::kable()
word n
single 66
love 54
time 45
baby 41
bag 38
forever 37
die 36
step 33
day 32
people 29

the top 8 most used words in this song are very positive

What is the sentiment of these words?

bigday %>%
  unnest_tokens(word, lyric) %>%
  select(word) %>%
  anti_join(stop_words) %>%
  count(word, sort = TRUE) %>%
  inner_join(get_sentiments("bing")) %>% 
  inner_join(get_sentiments("afinn")) %>% 
  filter(!word %in% c("tahm", "igh", "na", "ooh", "yeah", "uh")) %>% 
  head(10) %>%
  knitr::kable()
word n sentiment value
love 54 positive 3
die 36 negative -3
fuck 19 negative -4
crazy 17 negative -2
shit 16 negative -4
worth 15 positive 2
bad 14 negative -3
damn 11 negative -4
bitch 10 negative -5
hug 8 positive 2

mix of positive and negative words. list of words changes due to which can be measured by sentiment or not.

What words stand out the most in a word cloud

bigday %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  anti_join(stop_words) %>% 
  count(word, sort = TRUE) %>% 
  filter(!word %in% c("tahm", "igh", "na", "ooh", "yeah", "uh")) %>% 
  wordcloud2()

“single”, “love”, “baby”, “time”, “forever”

Loading Spotify Data
Chance_the_Rapper %>% 
  filter(album_name %in% "The Big Day") -> BigDayAlbum
View(BigDayAlbum)

Which track in the Big Day has the highest danceability?

Chance_the_Rapper %>% 
  filter(album_name %in% "The Big Day") %>% 
  select(danceability, album_name, track_name) %>% 
  head(15) %>% 
  kable()
danceability album_name track_name
0.767 The Big Day All Day Long
0.606 The Big Day Do You Remember
0.793 The Big Day Eternal
0.899 The Big Day Hot Shower
0.657 The Big Day We Go High
0.751 The Big Day I Got You (Always and Forever)
0.707 The Big Day Photo Ops (Skit)
0.543 The Big Day Roo
0.654 The Big Day The Big Day
0.780 The Big Day Let’s Go On The Run
0.869 The Big Day Handsome
0.822 The Big Day Big Fish
0.926 The Big Day Ballin Flossin
0.710 The Big Day 4 Quarters In The Black (Skit)
0.672 The Big Day 5 Year Plan

Ballin Flossin and Hot Shower have the highest danceability (highest .909)

Each track’s danceability shown in a graph

BigDayAlbum %>% 
  ggplot()+
  geom_col(aes(x=track_name, y=danceability))+
  theme_economist()+
  theme(axis.text.x = element_text(angle = 90))+
theme(axis.text.x = element_text(size = 5))

What is the distribution of the danceability within The Big Day?

ggplot(BigDayAlbum, aes(x=danceability)) +
  geom_density(alpha=0.7)+
  labs(x="Danceability", y="Density") +
  theme_economist()+
  ggtitle("Distribution of Danceability Data in The Big Day")

average of 3 songs have a danceability rate between .7 and .8

Using a heatmap code created by http://student.elon.edu/bwilliamson5/FinalProject/index.html to analyize danceability in The Big Day

ggplot(data = BigDayAlbum, aes(x = danceability, y = track_name)) +
  geom_tile(aes(fill=danceability, height=1 , width=.1),colour="red") +
  scale_y_discrete(breaks = BigDayAlbum$track_name) +
  scale_fill_gradient2(low = "#FF0000", midpoint=0.6,
                       space="Lab", mid="#FFE500", high = "#09B505") +
  theme(axis.text.y = element_text(size = 4))+
  labs(x = "Danceability") +
  labs(y = "Track Name") +
  labs(title = "The Big Day Album Danceability")

Looking at the explicit words within The Big Day

In The Big Day Chance is at the height of his music fame and a father

The Big Day without any stop or soft words

bigday %>% 
  unnest_tokens(word, lyric) %>% 
  select(word) %>% 
  anti_join(stop_words)-> bigdayexplicit

How often are the 10 most explicit words throughout all albums used in The Big Day?

bigdayexplicit %>% 
  filter(word %in% c("fuck", "shit", "niggas", "bitch", "ass", "fucking", "damn", "fucked", "dick", "bitches")) %>% 
  count(word, sort = TRUE) %>%
  ggplot(aes(reorder(word, n), n)) +
  geom_col() +
  coord_flip() +
  theme_economist()

“fuck” goes back up to being used around 20 times, while there is still a decrease in overall curse words in this album this could have to do with the more “mainstream” sound he is trying to achieve in The Big Day

Downloading all albums together for a joint analysis

chance_albums <- tribble(
  ~artist, ~title,
  "Chance the Rapper", "10 Day",
  "Chance the Rapper", "Acid Rap",
  "Chance the Rapper", "Coloring Book",
  "Chance the Rapper", "The Big Day"
)
View(chance_albums)
chance_lyrics <- chance_albums %>% 
  add_genius(artist, title, type="album")

All lyrics from all albums

View(chance_lyrics)

Removing any stop and soft words leaving only sentiment words left

chance_lyrics %>% 
  unnest_tokens(word, lyric) %>% 
  anti_join(stop_words) %>% 
  count(word, sort = TRUE) -> chance_word_count

What words occur the most throughout all his albums

wordcloud2(chance_word_count)

“yeah”, “fuck”, “juke”, “love”, “time”, “nigga”, “shit”, “god”

How much the 20 most common words are used throughout the albums

chance_word_count %>% 
  head(20) %>% 
  ggplot(aes(reorder(word, n), n)) +
  geom_col() +
  coord_flip() +
  theme_economist()

Finding the sentiments of the most common used words throughout the albums

chance_word_count %>% 
  inner_join(get_sentiments("afinn"))-> chance_sentiment
View(chance_sentiment)

What are the most negative sentiment words

chance_sentiment %>% 
  arrange(desc(-value))
## # A tibble: 351 x 3
##    word              n value
##    <chr>         <int> <dbl>
##  1 niggas           78    -5
##  2 bitch            58    -5
##  3 bitches          10    -5
##  4 motherfucking     3    -5
##  5 cock              1    -5
##  6 motherfucker      1    -5
##  7 prick             1    -5
##  8 fuck            160    -4
##  9 shit            110    -4
## 10 ass              33    -4
## # … with 341 more rows

The n-word is probably not used in a negative way rather talking about people he probably considers family. An example of this is in the song “No Problem”: “If one more label try to stop me, It’s gon’ be some dreadhead niggas in ya lobby, huh huh”. According to Genius, in this song the "dreadhead n*ggas" he is refering to are the other artists from Chicago he wants to collaborate with, but is not allowed to due to record labels trying to control him and his music

What is the overall sentiment of his works

mean(chance_sentiment$value)
## [1] -0.4501425

-0.4501425

Are the words used in Chance’s lyrics positive or negative?

chance_word_count %>% 
  inner_join(get_sentiments("bing")) -> chance_sentiment2
View(chance_sentiment2)

How many negative words are there in comparison to positive words?

chance_sentiment2 %>% 
  ggplot() + geom_col(aes(sentiment, n)) + theme_economist()

There are many more negative words overall than positive throughout his works

Most frequent explicit words with highest negative sentiment throughout all albums

chance_word_count %>% 
  inner_join(get_sentiments("afinn")) %>% 
  filter(value == "-5"|value == "-4") %>% 
  arrange(desc(n))
## # A tibble: 20 x 3
##    word              n value
##    <chr>         <int> <dbl>
##  1 fuck            160    -4
##  2 shit            110    -4
##  3 niggas           78    -5
##  4 bitch            58    -5
##  5 ass              33    -4
##  6 fucking          28    -4
##  7 damn             27    -4
##  8 fucked           14    -4
##  9 dick             12    -4
## 10 bitches          10    -5
## 11 hell              4    -4
## 12 bullshit          3    -4
## 13 motherfucking     3    -5
## 14 asshole           2    -4
## 15 pissed            2    -4
## 16 cock              1    -5
## 17 fucker            1    -4
## 18 motherfucker      1    -5
## 19 prick             1    -5
## 20 torture           1    -4
Overall analysis using Spotify data

What do the different chords used say about his music

Chance_the_Rapper %>% 
  count(key_mode, sort = TRUE) %>% 
  head(10) %>% 
  kable()
key_mode n
C# major 12
A major 9
G major 8
F minor 7
A# major 5
B minor 5
D major 5
F# minor 5
B major 4
C major 4

C major and G major are used most often in pop music –> https://mixedinkey.com/captain-plugins/wiki/common-chord-progressions-pop-music/#

what is the most joyful Chance the Rapper song?

Chance_the_Rapper %>% 
  arrange(-valence) %>% 
  select(track_name, valence) %>% 
  head(15) %>% 
  kable()
track_name valence
NaNa 0.891
Pusha Man 0.883
The Big Day 0.822
The Big Day 0.814
Favorite Song 0.811
Nostalgia 0.810
Juice 0.804
Ballin Flossin 0.789
No Problem (feat. Lil Wayne & 2 Chainz) 0.788
Long Time 0.773
Ballin Flossin 0.766
22 Offs 0.726
All Day Long 0.717
Family 0.698
All Day Long 0.697

NaNa is the most joyful song

Valence by album:

Chance_the_Rapper %>%
  group_by(album_name) %>%
  summarise(mean(valence)) %>%
  arrange(desc(`mean(valence)`)) %>%
  kable()
album_name mean(valence)
10 Day 0.5571429
The Big Day 0.5499091
Acid Rap 0.4915714
Coloring Book 0.4329286

The Big Day has the highest Valence meaning it is the most joyful album

Which album has the biggest emotional journey?

ggplot(Chance_the_Rapper, aes(x = valence, y = album_name)) + 
  geom_joy() + 
  theme_economist() +
  ggtitle("Joyplot of Chance the Rapper's joy distributions", 
          subtitle = "Based on valence pulled from Spotify's Web API with spotifyr")

Acid Rap has the biggest emotional journey (makes sense with drug addiction) and The Big Day is the most joyful.

Using code from https://msmith7161.github.io/what-is-speechiness/, I will be looking at how Danceability was distributed between the albums

green <- "#1ed760"
yellow <- "#e7e247"
pink <- "#ff6f59"
blue <- "#17bebb"

ggplot(Chance_the_Rapper, aes(x=danceability, fill=album_name,
                              text = paste(album_name)))+
  geom_density(alpha=0.7, color=NA)+
  scale_fill_manual(values=c(green, yellow, pink, blue))+
  labs(x="Danceability", y="Density") +
  guides(fill=guide_legend(title="Album Name"))+
  theme_economist()+
  ggtitle("Distribution of Danceability Data")

Acid Rap and The Big Day have the highest danceability

Explicit Conclusion:

All main 10 curse words throughout all Chance’s albums decrease in each album. I believe the large explicitness in 10 Day is Chance releasing his anger towards the world. Using so many curse words is representative of his failures. That could be a big reason why this first album did not take off. In Acid Rap the amount of curse words decrease by almost half. This could relate to his music career taking off. There is a new lightness to his music even though he is experiencing drug addiction. In Coloring Book the explicitness decreases by another third from the amount in Acid Rap. Coloring Book is Chance at the happiest we have seen him. He is over his drug addiction and reflecting on his past. He uses his music to continue forward and look at the blessings around him “Like {his} ex-girl getting pregnant, And her becoming {his} everything”. The Big Day is released three years after Coloring Book. During this time Chance’s fame is growing and he become a father. This time allows for a lot of growth but also possibly a new image/sound. This can be quantified by the increase in danceability from album to album. The release of The Big Day looks into a new tone in Chance’s music. The Big Day is extremely pop-y and mainstream sounding. I believe the slight increase in explicitness in The Big Day from Coloring Book is an example of the more mainstream look he is going for.

Overall Conclusion:

From my analysis I believe Chance the Rapper’s music did become more positive as his life became more positive. This conclusion is due more to the increase in danceability and Valence per album rather than the lyrics. While the lyrics in most albums have large negative sentiments, the danceability and joy in each album increases. Although not necessarily the lyrics, the tone of the albums overall become more positive. Looking at the frequency of curse words within each album also shows the decline in negativity or even need for those words as time continues.