Jazzercize to Fit

OK, admittedly not the best project name for my MHD2014 Boston hack.

I was inspired by the video that broke a few days previously - someone took Taylor Swift's "Shake it Off" and synchronized it to an 80s Aerobic video.

There have been multiple takedown-reposts of the video, so I'm not going to bother to try and link directly to it. The original poster did some nice editing of the video, and it worked really well.

I used the Echonest Remix tools to analyze the original audio from the video (~75bpm) and the Taylor Swift song (~160bpm). The audio replacement worked because the new song's tempo was an even multiple of the source audio.

That got me thinking about matching songs and videos that did not have matching tempos. By using ffmpeg to stretch or shrink the video, this is possible.

In this case, I matched Mika's "Origin of Love" with the original Aerobics video:

"Origin of Love" had a lower BPM than the original video soundtrack, so my script originally slowed down the video. I added a parameter that allowed me to run the BPM at a multiple -- this version matches the video to 2x the song's BPM.

This script works with any source video, not just aerobics programs from the 80s. My first try was to match a different song to the Taylor Swift video. I did pull the audio from the Aerobics track and try that, but it is more fun with Coldplay's "Sky Full of Stars":

I had a lot of fun on Sunday morning trying to find interesting combinations. The Echo Nest crew suggested I try matching something to a Fatboy Slim video. Here's The Five Stairsteps o-o-h Child matched up with the video for Fatboy Slim's Weapon of Choice:

Given that Iggy Azalea's Fancy was a pretty popular song in demos this year, it made sense to try that. I matched it with Starland Vocal Band's Afternoon Delight:

The tool can take any video as input, but I only expect it to work well with video that's strongly defined by a beat. Naturally, music videos work great, but exercise and athletic videos also work really well.

Take, for example synchronized swimming (the video is from the Russian synchronized swim team, a pre-Olympics event). I originally paired this with Beyoncé's "Single Ladies", but am showing it with Bob Dylan's "Tangled up in Blue" here:

I had a great weekend. It was a ton of fun hanging out with the other participants and seeing their awesome hacks on Sunday.

If you are interested, the code's available on github.

NHaD 200 Turns

I like to do a project every fall. This year, I tied together a lot of threads I had been thinking about, and with help from Paul and Will, launched the Nethack-a-Day site.

The idea was to take one action or turn a day, and see how things played out. To keep things interesting, Paul signed up to write some creative 'flavor' text along with the game turns.

Now, exactly six months later, we've reached 200 game turns. Progress has been even slower than I imagined. Cody, our hero, has only explored five rooms, and is still on the first floor of the dungeon.

Cody's Movement Direction for the first 200 Turns

Cody's Movement Direction for the first 200 Turns

We don't have a huge following, but that's really not the point, and those who have taken an interest seem to enjoy what we're doing.

Keith Crescenzi joked that it would take a long time to finish a game. I ran the numbers. NetHackWiki calls an ascension that takes less than 20k turns a 'speed ascension', and I'd consider a typical run to fall in the 60k turns range. While I expect that over time, the turn-to-day ratio will get higher, the numbers are daunting:

Time-to-Ascend based on info from NetHackWiki (and current turn per day ratio)

Time-to-Ascend based on info from NetHackWiki (and current turn per day ratio)

This has gotten me thinking a lot more about the hardware I'm using to run the NetHack games.

I did not set the game up initially on a VM or take other steps to make it easier to continue this work for 50 years or more. It seems like NetHack savegames are not directly portable between machines; I'm going to have to do some more research into this to see what is possible.

Through these 200 turns, I've written around 4,000 words in service of the tip files, and Paul has written roughly 8,000 words of story.

So far, so good.