The Music Maze

I wrote an application over the weekend called Music Maze. The Music Maze lets you wander through the maze of similar artists until you find something you like.  You can give it a try here:  The Music Maze (be forewarned, the app plays music upon loading).

We’ve seen the idea behind the Music Maze in other apps like Musicovery and Tuneglue’s Music Map.  The nifty thing about the Music Maze is that I didn’t have to write a single line of server code to make it all happen.  The Music Maze web app talks directly to The Echo Nest API.   There’s no middle man.  The artist graph, the album art, the links to audio – everything are pulled on demand from the Echo Nest API.  This  is possible because the Echo Nest API now supports JSONP requests (in beta, full release coming soon!).  With JSONP  an AJAX app can escape the Javascript sandbox and make calls to 3rd party web services. No need for me to set up a server to proxy calls to the Echo Nest, no Apache or Tomcat, no MySQL,  no worries about scaling.  This makes it incredibly easy for me to host and deploy this app.  I just toss my HTML, Javascript and CSS files into an Amazon S3 bucket, make them world readable, and I’m done.  It really has never been easier to create Music Apps. This whole app is less than 500 lines of javascript, written in a few hours on a  Sunday morning while the rest of the family are still asleep.  It is great to see all of these technologies coming together to make easy to create music apps.

(Be sure to check out the JavaScript InfoVis Toolkit . It does all of the the graphical heavy lifting in this app. It’s pretty neat.)

  1. #1 by jeremy on December 20, 2010 - 5:20 pm

    Question: Is the wandering context-free / markovian? I.e. do I build up a personalized sequence of similarity based on the particular length=k path that I’ve thus far traversed? Or is each similarity branch wholly dependent only on the current artist? I suspect the latter, right?

    If you were to implement the former, would there need to be a server-side app? Or do you think you could do it all in the client?

  2. #2 by Paul on December 20, 2010 - 5:26 pm

    Jeremy – the wandering is not context free, but not in the way you describe. When you arrive at an artist it gets expanded with similar artists that are not already in the graph. So depending on how you get to an artist and what artists are already in the graph, you’ll get a different set of next artists.

  3. #3 by jeremy on December 20, 2010 - 6:10 pm

    Ah, so it’s a sort of de-duping context-sensitivity? You get that by storing a hashset (or even a simple list?) on the client, right?

    What if you did it the other way.. where you boosted the signal based on the full-path the user took…and actually got a different set of recommendations at step 17 than you otherwise would have gotten, even without graph-level deduping? Would that be doable clientside?

  4. #4 by Paul on December 20, 2010 - 6:14 pm

    yes – de-duping context-sensitivity is a good way of putting it. As for making it context sensitive based on the path, yes it’d be possible to do this. I suppose the way I would do it would be to keep a list of artists that we’ve visited and add them to a catalog weighted by each artist’s inverse distance to the current node. I’d then use the catalog to get a list of similars based on the weighed list of artists.

  5. #5 by Ivan on December 28, 2010 - 11:57 am

    Very cool thing! I made my way through some glam-rock, then get to the heavy metal, then other styles. It’s working like a clock!

  6. #6 by mt on December 28, 2010 - 4:28 pm

    hi paul.
    was the source available anywhere?

    • #7 by Paul on December 30, 2010 - 10:55 am

      Just ‘view source’ in your browser

  7. #8 by Steve on January 1, 2011 - 9:51 am

    This is cool. It reminds me of the process of picking tracks with links for what mixes well with what using past experience and crowd reactions. I started wondering how cool it would be to combine discovery with personal experience, like a mind-mapping app for music. Inspiring work. Looks very elegant.

  8. #9 by moaaz on January 22, 2011 - 4:24 pm

    i want the maze music

  9. #10 by Michael on February 4, 2011 - 3:49 pm

    This would be a sweet application if you could make your way through the maze and create a playlist of sorts. Just pulling a song from each of the artists you select and then listening to the progression when you’re finished.

  10. #11 by Kelly on February 5, 2011 - 4:52 pm

    Where’s Maria Schneider?

  11. #12 by Venette on February 7, 2011 - 5:52 pm

    For some reason it works on my macbook, but when I try to access it from my pc it doesn’t fully load and says that the music manager is broken. Anyway to fix that?

    • #13 by Paul on February 7, 2011 - 5:53 pm

      try upgrading to the latest version of IE, or get firefox or chrome on your PC

  12. #14 by Seth on February 7, 2011 - 7:50 pm

    Hey man recently stumbled on your music maze and LOVED one song…unfortunately the title it said was not the actual song that was playing and i cant find it ANYWHERE.

    it says it is the acid house kings – “thats because you drive me” but its not that song! PLEASE TELL ME WHAT IT IS! IM DYING

  13. #16 by Nick on February 11, 2011 - 1:15 pm

    When I click on Kelly Clarkson it says it is playing Never Again but it clearly is not….

  14. #17 by Nick on February 11, 2011 - 1:17 pm

    Also the album art for Lonely World by Robin Thicke is Nat King Cole

  15. #18 by tank girl on February 13, 2011 - 4:24 pm

    i was greatly looking forward to using the Music Maze when i got home from work this afternoon… but alas, the site is down!!!
    when i go to the URL:
    i get an ERROR that reads:
    This XML file does not appear to have any style information associated with it. The document tree is shown below.

    Access Denied


    HALP??!! please fix the Music Maze!!!!!!! :-)

    -fan of The Music Maze

%d bloggers like this: