About Ambix

overview

Ambix enables you to mix ambient soundscapes over Spotify music playback. Take your favorite music on an adventure through different environments by selecting and layering an ambient track to augment your listening experience. Mix and match to create your perfect atmosphere for work, study, and play.

The music player is enabled by the Spotify Web Player API. Log in to your Spotify client and then use those same credentials to authorize Ambix. You can then select Ambix as your playback device from your Spotify client/app and get to mixing. The ambient tracks are powered by YouTube videos (there's a practically endless collection of them online). If you find a YouTube video with an ambient soundscape you enjoy, add it to Ambix by clicking the 'plus' button in the Ambient Mixer and provide the link to the YouTube video.

This project was a lot of fun to work on and really resonated with my previous background in sound design for live-performance. This is a project that I actually use on a regular basis to get myself into a flow mindset when working.

Deployed Site: Pending Redeployment
GitHub Repos: https://github.com/ambix-org/

Tools: node, react, express, nginx, pm2, superagent, sass
APIs: Spotify Web Playback SDK, Spotify Web API, YouTube IFrame Player API

challenges and successes

Implementing Spotify's OAuth2 code flow for authorizing the Spotify Web Player SDK
Creating a custom function for the volume sliders that complements human hearing with an exponential curve to give the perception of linear progression
Dynamically dimming and illuminating UI elements based on the state of the Spotify Web Player and the YouTube IFrame
Utilizing YouTube's IFrame Player API to play ambient tracks on the page without displaying the associated video
Providing the ability to modify your collection of ambient tracks and preserve them using local storage