Our team has a strong passion for music and loves discovering great new tracks. However, current systems for music recommendation are limited, and often recommend the same set of popular tracks over and over. SoundCloud's recommendation engine is powerful but doesn't provide comprehensive recommendations, only recommendations based on individuals tracks. We set out to build a simpler, better way to discover music built on SoundCloud's music platform.
What it does
SoundVane reads tracks from a user's favorites or a playlist link, researches songs related to each song in the list using SoundCloud's API, and instantly aggregates the results into a list of recommendations sorted by quality:
How we built it
We have a Node backend running on IBM's Bluemix cloud hosting platform which performs all necessary requests and page serves. The app is built using express.js and handlebars.js for templating, with SASS styling.
Challenges we ran into
Handling the high volume of asynchronous HTTP requests required to go from a single soundcloud playlist URL to a set of recommended tracks required a great deal of research and testing. Thoroughly testing the site to make sure it performed well under non-ideal conditions (empty playlists, mobile devices, or malformed queries) was also a frequent source of revisions. We relied on team code review and testing to handle these challenges.
Accomplishments that I'm proud of
Our product works! It's stable and provides good, interesting recommendations for every list of music I throw at it. It's simple and convenient.
What We learned
Our team learned a lot about all of the frameworks involved, as well as SoundCloud's API. We also learned a lot about teamwork–how to collaborate to solve problems we couldn't deal with alone.
What's next for SoundVane
More diverse options for data entry/retrieval (automatically-generating a SoundCloud playlist from results, for example) are a high priority.