All the music you love in one single app — aux.app unites all your favourite music streaming services in one place. Like the aux cable, it’s easy to use, and supports many sources. Currently SoundCloud, YouTube, Mixcloud and Deezer are supported. It is available on the web and also as a desktop app for macOS, Windows and Linux. The player itself is built with Angular and it communicates via a REST API with a Tornado backend. The backend is responsible to search for tracks across all music providers and to save tracks of playlists or favourite tracks in a database. It also keeps track (no pun intended) of the current playing tracks and their progress through a WebSocket connection.
features we are proud of
remote control Like Spotify Connect or Google Chromecast aux.app allows you to play the music on one device and control it from another. Users need to connect an account on both devices to identify them. We then use a REST-inspired protocol and a Pub/Sub system over a secure WebSocket to synchronise the player state and the music queue. This is perfect for playing music on your laptop or TV and controlling the playback with your phone from the comfort of your couch.
seamless playback Users of aux.app won’t even notice that the music is coming from different providers. You can shuffle, repeat, play, pause, skip and seek like on any other music player. Music videos, playlists and DJ sets cross-fade seamlessly. Under the hood, the Angular app has a complex player manager, that organises state, synchronises with the server and handles preloading the next item in the queue.
music recommendations To help listeners discover new music and make sure the music never stops, aux.app has an optional recommendation system. Using a recurrent neural network trained on Spotify’s Million Playlist Dataset and crawled music blogs, the recommender tries to predict the genres of the next songs after looking at a current playback session. An Elasticsearch index serves as a pool for music to suggest and keeps growing as users interact with the player.
The idea for building a custom music platform started as a course project of Prof. Dr. Zhang’s lecture Web Applications. The original purpose was to get started with Angular. The best way to get comfortable with a new technology is to build something real with it. We decided to build a music player because we love music and to use the SoundCloud API because it has a good documentation and is easy to use. The kickstart was the Angular Tour of Heroes tutorial. Afterwards we integrated the SoundCloud API and added an HTML5 audio element to play the tracks (v0.0.1). To make the whole player more usable we decided on a four column layout: menu bar, player with an underlying play-queue, a column for the playlists and one for the search results. Version 0.4.0 was our result of the course project. In a follow up Independent Course Project the design has been optimised for different screen sizes. By making the whole page responsive the application can be used on mobile phones, tablets and desktop PCs. Also the name Cloud-Player has introduced with a logo (v1.0.0). The source code has been open sourced and is available on GitHub. After the release we were thinking about the idea that it would be nice not to have only SoundCloud as a music provider but also YouTube because of its huge video database. The idea was born to build a player generic enough to support different content providers. Changing the player architecture to support multiple playback SDKs like the YouTube player SDK or Mixcloud player SDK was the challenge of another independent coursework. Also a custom server has been introduced to handle all the queries to the providers and to support playlists that can contain tracks from different providers like one of our favourite playlists Low Orbit. At the end the Cloud-Player supported playback of SoundCloud, YouTube and Mixcloud tracks (v5.4.0)
As we were not happy with the name Cloud-Player because it was to generic we started a rebranding. A new name, color and logo has been chosen: aux.app. Besides the new appearance, we also added new features including support for Deezer, the music recommender and a new welcome page at aux.app highlighting our music player.