Archive for category code
I’ve been in Helsinki this weekend (which is not in Sweden btw) for the Helsinki Music Hack Day. I wanted to try my hand at a DJ app that will allow you to dynamically and interactively mix two songs. I started with Girl Talk in a Box, ripped out the innards and made a whole bunch of neat changes:
- You can load more than one song at a time. Each song will appear as its own block of music tiles.
- You can seamlessly play tiles from either song.
- You can setup branch points to let you jump from an point in one song to any point in another (or the same) song.
- And the killer feature – you can have two active play heads allowing you to dynamically interact with two separate audio streams. The two play heads are always beat matched (the first play head is the master that sets the tempo for everyone else). You can cross-fade between the two audio streams – letting you move different parts of the song into the foreground and the background.
All the regular features of Girl Talk in a Box are retained – bookmarks, arrow key control, w/a/s/d navigation and so on. See the help for more details on the controls.
You can try the app here: Swap the Drop
For my Boston Music Hack Day hack I built Yet Another Party Playlisting App (YAPPA), because the world needed another party playlister – but really, I built it because I needed another hack, because 15 hours into the 24 hour hackathon I realized that my first hack just wasn’t going to work (more on that in another post). And so, with 9 hours left in the hack day, I thought I would try my hand at the party playlisting app.
The YAPPA is a frequently built app. In some sense one can look at the act of building a YAPPA as a hacking exercise. Just as a still life painter will practice by painting a bowl of fruit, or a pianist will practice scales, a music hacker can build their hacking muscle by creating a YAPPA.
The essential features of a YAPPA are straightforward – create a listening experience for a party based upon the tastes of the guests. Allow guests to suggest music for the party, apply some rules to select music that satisfies all the guests, and keep the music flowing.
With those features in mind, I created my party playlisting app. The interface is dead simple – guests can add music to the party via the master web interface or text the artist and song from the mobile phones to the party phone number. Once the party has started, PAPPA will keep the music flowing.
The key technology of PAPPA is how it picks the music to play next. Most YAPPAs will try to schedule music based on fairness so that everyone’s music taste is considered. Some YAPPAs also use song attributes such as song hotttnesss, song energy and danceability to make sure that the music matches the vibe of the party. PAPPA takes a very different approach to scheduling music. That’s because PAPPA takes a very different approach to parties. PAPPA doesn’t like parties. PAPPA wants everyone to go home. So PAPPA takes all of these songs that have been carefully texted to the party phone number, along with all the artist and song suggestions submitted via the web and throws them away. It doesn’t care about the music taste of the guests at the party. In fact it despises their taste (and the guests as well). Instead, PAPPA selects and plays the absolute worst music it can find. It gives the listener an endless string of the most horrible (but popular) music. Here’s a sample (the first 3 songs are bait to lure in the unwitting party guests):
- Royals by Lorde
- Levels by Avicii
- Blurred Lines by Robin Thicke
- #Twerkit featuring Nicki Minaj by Busta Rhymes
- From The Bottom Of My Broken Heart by Britney Spears
- Amigas Cheetahs by The Cheetah Girls
- Do Ya Think I’m Sexy by Paris Hilton
- Incredible by Clique Girlz
- No Ordinary Love by Jennifer Love Hewitt
- Mexican Wrestler by Emma Roberts
- I Don’t Think About It by Emily Osment
- A La Nanita Nana by The Cheetah Girls
- Don”t Let Me Be The Last To Know by Britney Spears
- Wild featuring Big Sean by Jessie J
- Heartbeat (Album Version) by Paris Hilton
- Love The Way You Love Me by The Pussycat Dolls
- When You Told Me You Loved Me by Jessica Simpson
- Jericho by Hilary Duff
- Strip by Brooke Hogan
- Pero Me Acuerdo De Tí by Christina Aguilera
- Bang Bang by Joachim Garraud
- Right Now featuring David Guetta (Sick Individuals Dub) by Rihanna
- Wilde Piraten by The Cool Kids
- Friend Lover by Electrik Red
- Betcha Can’t Do It Like Me by D4L
- Who’s That Girl by Hilary Duff
- Get In There, Frank! by Fun
- Hold It Don”t Drop It by Jennifer Lopez
- Sweet Sixteen by Hilary Duff
- Live It Up featuring Pitbull by Jennifer Lopez
- Freckles by Natasha Bedingfield
- I Want You by Paris Hilton
- Hold It Close by Fun
- Magic by The Pussycat Dolls
- How To Lose A Girl by Mitchel Musso
- Fairy Tales by JoJo
- Slow It Down featuring Fabolous (Album Version (Explicit)) by The-Dream
- Mr. Hamudah by Charles Hamilton
- Promise by Vanessa Hudgens
- Metamorphosis by Hilary Duff
How does PAPPA find the worst music in the world? It looks through all the data that The Echo Nest is collecting about how people experience music online to find the songs that have been banned frequently. When a music listener says “ban this song” they are making a pretty strong statement about the song – essentially saying, “I do not ever want to hear that song again in my life”. PAPPA finds these songs that have the highest banned-to-play ratio (i.e. the songs that have been proportionally banned the most when play count is taken into consideration) and adds them to the playlist. The result being a playlist filled with the most reviled music – with songs by Paris Hilton, Jennifer Love Hewitt and the great Emma Roberts. The perfect playlist to send your guests home.
At this moment, lets pause and listen to the song Mexican Wrestler by Emma Roberts:
What happens to all those carefully crafted text messages of songs sent by the guests? No, there’s no Twilio app catching all those messages, parsing out songs and adding them to a play queue to be scheduled. They just go to my phone. That’s so if people are not leaving the party fast enough, I can use all the phone numbers of the guests to start to text them back and tell them they should go home.
By the way, if you look at the songs that were texted to me during my two minute demo you’d realize how fruitless a YAPPA really is. There’s no possible way to make a party playlist that is going to satisfy everyone in the room. Tastes are too varied, and there’s always that guy who thinks he is clever by adding some Rick Astly to the party queue. Here’s what was texted to me during my two minute demo:
- Gregory Porter – be good
- Rebecca Black – It’s Friday
- Weird Al Yankovic – Fat
- Lady Gaga – Applause
- Weird Al Yankovic – Amish Paradise (from a different phone number from the other weird Al fan)
- boss ass bitch
- Basement Jaxx raindrops
- John Mayer your body is a wonderland
- jay z holy grail
- Underworld spikee
- wake me up
- Britney Spears – Hit Me Baby One More Time
- Slayer War Ensemble
- Bieber baby
- Ra Ra riot
- Rick Astley
- Mikey Cyrus
- Hi paul
- Stevie wonder overjoyed
Imagine trying to build a party playlist based upon those 24 input songs. Admittedly, a hackathon demo session is not a real test case for a party playlister but I still think you’d end up with a terrible mix of songs that no smart algorithm, nor any smart human, could stitch together into a playlist that would be appropriate and pleasing for a party. My guess is that if you did an A/B test for two parties, where one party played music based upon suggestions texted to a YAPPA and the other party played the top hotttest songs, the YAPPA party would always lose. I’d run this test, but that would mean I’d have to go to two parties. I hate parties, so this test will never happen. Its one of the flaws in our scientific method.
Who are the worst artists?
Looking at the PAPPA playlists I see a number of recurring artists – Britney Spears and Paris Hilton seem to be well represented. I thought it would be interesting to create a histogram of the top recurring artists in the most banned songs list. Here’s the fascinating result:
One thing I find notable about this list is the predominance of female artists. Females outnumber males by a substantial amount. Here’s some pie:
80% of the most banned artists are female. A stunning result. There’s something going on here. Someone suggested that the act of banning a song is an aggressive act that may skew male, and many of these aggressively banning males don’t like to listen to female artists. More study is needed here. It may involve parties, so I’m out.
Wrapping it all up
I enjoyed creating my PAPPA YAPPA. Demoing it was really fun and the audience seemed to enjoy the twist ending. The patterns in the data underlying the app are pretty interesting too. Why are so many banned songs by female artists?
If you are having your own party and want to use PAPPA to help enhance the party you can go to:
Just replace the phone number in the URL with your own and you are good to go.
For my Malmö Music Hack Day hack I built an app called Dogstep. Dogstep takes any song and re-renders it such that a pack of dogs harmonizes along with the song. It was a lot of fun to build and I was rather pleased with the results. You can try the app out yourself: Dogstep.
I got to try a few new things on this hack. First, off I needed some good dog sounds. I found all I needed and more at Freesound.org. What a great resource that is! I then needed to process the barks (trim them, pitch shift them, volume-equalize ). For this I used Audacity. It was way easier to use than garageband and it has all the audio filters that I needed (including the awesome Paul’s stretch we can make any howl sound like a banshee from hell).
To create realistic and varying barking, I created a barking state machine, where each state in the machine represents the barking activity for a bar in the song and each state has a set of transitions to other states in the machine governed by a probability that that transition will be taken. When a song is playing, I use the state machine to pick the state for the currently playing bar and emit the barking audio at the right times within the bar. Here’s a visualization of the barking state machine:
In addition to these barks, I look for the loudest parts in the songs and add a bunch of extra howling at these peak moments. Finally, I use the Stylophone play-along algorithm to have one of the dogs try to sing along with the melody.
Creating this state machine was really fun. There’s still a few bits that I want to do – such as having separate state machines for different parts of the song – i.e. a state machine when the song is very quiet vs. one when the song is loud and energetic. A hack is never really done.
The source for the hack is on github.
This week, The Echo Nest and Getty Images announced that they were partnering to make thousands of high quality artist images available for developers through The Echo Nest API. Getty Images has spent years building an amazing library of artist images and now, as a result of this partnership, it is easy for developers to use these images in music apps.
I took the new Getty Images API for a spin and built a couple of apps that show how easy it is to build an Echo Nest app that uses the images. First, I built an app that shows images of the top hotttest artists:
Next, since Getty Images has some really awesome images going back to the classic rock era, I adapted my app to show some Getty Images for some of our top classic rock artists:
We’ve extended our image API to return additional information with the Getty images. There’s image attribution information, image size information, and some curated image tags that you can use to select the best image for your app. Tags include landscape, portrait, black-and-white, solo, award, performance, color and many more.
The Getty Images are really top notch. It’s a great addition to The Echo Nest API. I’m excited to see how developers will use this asset.
On Friday evening at the Tufts hack I made a little Python script that makes playlists with an acrostic messages embedded in them. I enjoyed the hack so much that I spent a few hours turning it into a web app. This means that you don’t have to be a Pythonista to generate your own acrostic playlists.
The app, called Acrostic Playlist Maker, lets you select from a handful of genres and type in your ‘secret’ message.
When you hit the button it will generate a playlist where the first letter of each song in the playlist spells out the message.
You can listen to the music in the playlist by clicking on any song, and you can save the playlist back to Rdio.
Anyone who works in music tech has probably been called upon to ‘do the music’ at some social event. Now with the Acrostic Playlist Maker you can can make those playlists, while secretly expressing how you really feel.
I’ve started to build the ultimate list of music APIs. My goal for the list is for it to be a one-stop spot to find the best music apis. Currently 65 APIs are listed across 10 categories. Check out the list here: Music APIs
Music Hack Day NYC has just wrapped up, and what a great weekend it was!. Hosted at Spotify’s spiffy new headquarters in midtown, Music Hack Day NYC was the place to be if you are passionate music, technology and building stuff. During all night Friday and all day Saturday, hundreds of hackers used music APIs from companies like The Echo Nest, Soundcloud, Gracenote, Rdio and of course Spotify, to build next generation music apps.
It was a really fun event. The Spotify headquarters are perfect for hacking. Flawless and apparently limitless wifi/bandwidth, awesome A/V setup, and great sound for an unending social hacking playlist.
Over the course of about 20 hours of hacking, 36 hacks were built and demoed. There was quite a range of inventive hacks. Some of my favorites:
The crowd favorite was Oscar Celma’s extremely clever EERFY – He solved the Music Industry Problem in 24 hours by turning it upside down with EERFY:
Another favorite was Leo and Jason’s halfstep – a chrome extension that motivates you to move more. How? If you only moved 20% of your movement goal yesterday, then halfstep will also let you listen to first 20% of any songs today. Check out the screencast of their hack.
There were lots of great Echo Nest hacks including the Echo Nest prize winner partyOutlook by Matt Egan. PartyOutlook is a CocoaLibSpotify powered iPad jukebox that accepts tracks via the Twillio API and displays real-time information about the life of the party using Echo Nest song data. Allows an administrator to pause and play music, as well as skip tracks.
Another really neat Echo Nest hack was TuneTravelr created by Chris Evans and Joshua Boggs. Tune Travelr is a web app that takes cities and locales a well as a time period and returns a playlist of songs that were hot at the time. It uses the Echo Nest data to leverage some analytic querying, before pipping the results into Rdio’s web API for playback.
MoodVenue used The Echo Nest API to help find out what’s going on tonight based on your mood and location.
Artists fight to the death, using only the sheer repetitive force of their music! By Brian McFee. Brian used the Echo Nest analysis data to build a custom metric for repetition for any song and used that to score songs by the artist for the face-off.
A novel use of The Echo Nest API was Cheese Tray - A Spotify app that takes selects randomly from among your Spotify playlists and analyzes it. It then adds to that playlist a song that best represents the average attributes of the playlist, as given by The Echo Nest API. Then, via SMS through the Twilio service, it sends a command to your Android device that changes its background to the album artwork for that average song.
Uses wikipedia articles titled ‘List of songs about…” to generate Spotify/Rdio playlists about different subjects/places. Songs about used The Echo Nest’s Rosetta Stone to get the song IDs for playing in Spotify and Rdio.
Awesome Chart Explorer
This is my hack. A visualization that lets you explore and listen to 50 years of Billboard charts.
Upload a song, ccRex’ll fetch Creative Commons music to match using Echo Nest song attributes to determine the best match.
Other nifty Echo Nest hacks:
- opporTUNE – context dependent playlisting based upon weather, activity, location, time of day and your favorite genres
- crowdPlay – an SMS enabled party playlister
- BPM Reader – an app that updates a playlist in real-time based on user keyboard input correlated to BPM. Tap in your beat, and generate a playlist of songs with that rhythm.
- Moody calls - Get a phone call with a song that matches your mood
- Spotify V. Rdio -Pitting the two music platforms against each other using your listening history
- Perl client for the Echo Nest – Ajax built a library that provides support for nearly all of The Echo Nest API features.
All in all, it was a great event with lots of awesome, innovative hacks and lots of smart people. A good time was had by all. Thanks to Spotify and @mager for organizing the event. Well Done!
I just finished coding up my Music Hack Day NYC hack called The Awesome Chart Explorer. It’s a web app that combines Billboard and Echo Nest data into a visual wonderland. (yes, I’m a little tired). Check it out here. Almost time to give the demo, so more about the tech behind the hack later on.
Here’s a nifty web-based music experience created by Dutch Gramophone (aka Yotam Mann). It’s an interactive song about working and employment where you have to do work to hear the richest version of the track.
To hear the song, you add virtual pennies to the penny jar. The fuller the penny jar, the richer the music. This is similar in concept to wemakeawesomesh.it’s 18 months where you had to dance to hear Calvin Harris’s new album, but takes it a step further by automatically expanding and contracting the instrumentation of the music. The result is that everyone hears a different version of the song. It is a neat idea and very well executed with intriguing images drawn by Sarah Rothberg. Check it out: Richer
There have been 30 Music Hack Days since the movement began back in 2009. Since then there have been somewhere around 1,500 music hacks built. I’ve seen lots of and lots of hacks, many have been technical marvels that have become the seeds of new music startups. However, there’s no better hack to demonstrate what music hacking is all about than the hack by Iain Mullan called ‘Johnny Cash has been Everywhere‘. This web app is simple – it plays Johnny Cash’s version of “I’ve been everywhere”, while it shows you on a Google map all of the places Johnny has been. Check the hack out here:
As we enter the thick of Music Hack Day season, I offer up this hack as an example of a hack to aspire to. Whimsical, original, simple and fun. Don’t worry about the business plan, don’t worry about cramming in every feature or API, just build something neat. And I look forward to seeing what Iain builds at his next Music Hack Day