Songs to Strut To

PUBLISHED ON OCT 11, 2019
library(billboard)
library(dplyr)
library(kableExtra)

I watched Saturday Night Fever in preparation for my blog post about its soundtrack on CoverMeSongs. The opening scene shows John Travolta marching down the street to the Bee Gees’s “Stayin Alive.’”

I learned that this song is also used to help people practice CPR because it has the correct tempo for recommended compressions. This made me wonder more about the tempo of the song. Would a New Yorker really walk along at that pace? Relatedly, as an East Coaster transplanted to the West Coast for graduate school, I am certainly aware of differences in walking speed norms by geography. I wondered if there was a perfect strutting song per region.

Apparently, there once was a study that tried to quantify differences in walking speeds across many cities. The researchers went to various cities and timed how long people took to walk 60 feet. I entered that data for the 32 countries across the globe into a spreadsheet.

setwd("~/Desktop/walking_bpm")
wt = read.csv("walkingTimes.csv",stringsAsFactors = F)

The top five fastest walking countries:

kable(head(wt, 5)) %>% kable_styling()
city country time
Singapore Singapore 10.55
Copenhagen Denmark 10.82
Madrid Spain 10.89
Guangzhou China 10.94
Dublin Ireland 11.03

The top five slowest walking countries:

kable(tail(wt, 5)) %>% kable_styling()
city country time
28 Damascus Syria 14.94
29 Amman Jordan 14.95
30 Bern Switzerland 17.37
31 Manama Bahrain 17.69
32 Blantyre Malawi 31.60

Now we need to get this on a beats per minute scale. I’m going to treat one stride as a beat. According to LiveStrong, one stride is about 2.6 feet.

steps <- 60 / 2.6
stepsPerSec <- steps / wt$time
stepsPerMin <- 60 * stepsPerSec
summary(stepsPerMin)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   43.82   97.46  109.03  106.30  115.10  131.24
wt$stepsPerMin=stepsPerMin

“Stayin’ Alive” comes in at 103 beats per minute, a little under the average across these countries. Notably, this tempo is too slow for John Travolta’s character, Tony Manero, to be strutting down the streets of New York to. That is more of a between Japan and Canada tempo.

kable(wt[19:20,]) %>% kable_styling()
city country time stepsPerMin
19 Tokyo Japan 12.83 107.9201
20 Ottawa Canada 13.72 100.9195

What song would be more appropriate tempo-wise? For that, we look at the songs on the top 100 billboard charts from 1960 to 2015 (handily compiled by the billboard package).

spotify_track_data$diff <- abs(spotify_track_data$tempo - 115.38462) ## NYC's tempo

tt <- arrange(spotify_track_data, diff) %>% head(1) %>% as.data.frame()

kable(tt[,c("year", "artist_name","track_name")]) %>% kable_styling()
year artist_name track_name
1984 Ray Parker, Jr. Ghostbusters

But this song wasn’t out yet, so let’s limit to hits prior to 1977, when Saturday Night Fever was released.

tt <- arrange(subset(spotify_track_data, year < 1977), diff) %>% head(1) %>% as.data.frame()

kable(tt[,c("year", "artist_name","track_name")]) %>% kable_styling()
year artist_name track_name
1972 Dennis Coffey & The Detroit Guitar Band Scorpio
blogdown::shortcode("youtube", "DyuS16P911g")

Now that is more like it!

What is the perfect strutting song for these other countries (granted that the US billboard charts may not accurately reflect “jams” in other countries)?

getBestFit <- function(walkTime){
 spotify_track_data[ which.min(abs(spotify_track_data$tempo-walkTime)),c("year","artist_name","track_name")]

}

matches = cbind.data.frame(wt[,c("city","country","stepsPerMin")],do.call("rbind",lapply(wt$stepsPerMin, getBestFit)))

kable(matches) %>% kable_styling()
city country stepsPerMin year artist_name track_name
Singapore Singapore 131.24316 1986 Whitney Houston Greatest Love Of All
Copenhagen Denmark 127.96815 2012 Chris Brown Don’t Wake Me Up
Madrid Spain 127.14558 1979 Leif Garrett I Was Made for Dancin’
Guangzhou China 126.56448 1966 Allen Reynolds Five O’Clock World
Dublin Ireland 125.53177 1982 Earth, Wind & Fire Let’s Groove
Cuitiba Brazil 124.40390 1985 Survivor The Search Is Over
Berlin Germany 124.06948 2011 Katy Perry Firework
New York USA 115.38462 1984 Ray Parker, Jr. Ghostbusters
Utrecht Netherlands 115.00128 2015 Mark Ronson Uptown Funk
Vienna Austria 114.81056 1987 The Georgia Satellites Keep Your Hands To Yourself
Warsaw Poland 114.71544 1977 KC & The Sunshine Band I’m Your Boogie Man
London United Kingdom 113.77283 1978 Gerry Rafferty Baker Street
Zagreb Croatia 113.49306 1968 Clarence Carter Slip Away
Prague Czech Republic 112.11461 1986 ZZ Top Sleeping Bag
Wellington New Zealand 109.71596 1968 The Lettermen Goin’ Out Of My Head/Can’t Take My Eyes Off You (Medley) - Live;1987 Digital Remaster
Paris France 109.45576 1960 Connie Francis My Heart Has A Mind Of Its Own
Stockholm Sweden 108.59729 1976 David Bowie Golden Years - 1999 Remastered Version
Ljubljana Slovenia 108.51218 1980 Sam Morrison and Turn The Page Against the Wind
Tokyo Japan 107.92014 1984 Thompson Twins Hold Me Now
Ottawa Canada 100.91949 1999 Faith Evans Love Like This
Harare Zimbabwe 99.46950 1998 Diddy Been Around The World (feat. The Notorious B.I.G. & Mase)
Sofia Bulgaria 99.18448 1964 The Trashmen Surfin’ Bird
Taipei Taiwan 98.90110 1967 Buffalo Springfield For What It’s Worth
Cairo Egypt 97.64565 1975 Sugarloaf Don’t Call Us, We’ll Call You
Sanaa Yemen 96.89401 1996 Eric Clapton Change The World
Bucharest Romania 96.42168 1962 The Shirelles Soldier Boy
Dubai United Arab Emirates 94.57755 1987 Gregory Abbott Shake You Down - Single Version
Damascus Syria 92.67841 1970 Las Clasicas de Universal Stereo Reflections of My Life
Amman Jordan 92.61641 1960 Percy Faith & His Orchestra The Theme From “A Summer Place” - Single Version
Bern Switzerland 79.71303 2007 Gym Class Heroes Cupid’s Chokehold / Breakfast In America - Radio Mix
Manama Bahrain 78.27108 1993 Def Leppard Two Steps Behind - Live
Blantyre Malawi 43.81694 1979 Barbra Streisand You Don’t Bring Me Flowers