Listening to music with friends is an experience that is not only ubiquitous, but riddled with annoyances from start to finish. One person usually controls the aux, and everyone is subjected to their taste whether they fit the group or not. That person has to deal with the stress of constantly having to add songs to the queue, and hoping that the group enjoys their choices. And for all that work, the music played rarely represents the tastes of everyone in your group. Our app changes all of that.

What it does

Ambiance creates an ongoing music listening experience, an intelligently-curated live mix, based on the Spotify listening habits of all of the users in a session. The users' music tastes are analyzed by Ambiance's sophisticated feature engine, which pores through the music of the users in the session and generates a mix tailored to the preferences of everyone listening.
A user also has the option of choosing a song, playlist, or album as the vibe of the session. When provided with one, our engine will tune the mix to match the chosen vibe while still incorporating the music taste of the entire group.
This application also allows for exporting a playlist into Spotify, with the current ranked list of songs. On top of that, we created Playlist Live, which dynamically updates a saved playlist in the Spotify accounts of all the users in the session that opt-in to this mode.

How we built it

The backend is fully built in python, using the Django server framework. We used a python library which wraps around Spotify's API called spotipy. We built a way to rank a list of songs based on a user's profile, built with Spotify's track features, which provides calculated metrics about a given song. The frontend was built on React Native. It is available on both iOS and android, as well as over the web. Underwent user-centric design process, where we applied design principles before implementing it.

Challenges we ran into

The Spotify API was tricky at first, especially the authorization details. For the front-end, we had to learn React Native, which slowed our progress.

Accomplishments that we're proud of

Getting a thorough understanding of the Spotify API; building an entire server overnight; following good design principles; fully separating our frontend from our backend; our intelligent ranking algorithm

What we learned

The Spotify API; how to build a server in python; react-native

What's next for Ambiance

Right now we are storing everything locally because we wanted to focus on the quality of our features. Our next step is to transition into a database. We also want to refine the UI and styling of the app, which is currently in a wireframe/prototype phase. We also hope that people show interest in this application, so we can keep developing it and eventually deploy it on the app store :)

Our Slack names

Abhinav Khushalani, William Stevenson, Francisco Turdera, Jaime Kvaternik

Share this project: