sarsooxyz.hugo/content/posts/mixonomer/index.md

3.8 KiB
Raw Permalink Blame History

title date draft aliases tags categories
Mixonomer: Smart Spotify Playlists 2021-01-19T14:23:40+00:00 false
/mixonomer
Python
Javascript
Cloud
Dev

ci badge

Mixonomer is a web app to augment your Spotify listening experience with smart playlists. A smart playlist watches several child playlists and filters the tracks to create new mixes. Updates are run multiple times a day or on-demand.

Try It Out

Read the Docs

{{< figure src="Playlists.png" alt="playlist list" >}}

Include recommendations for additional Spotify suggestions based on a playlists tracklist. Reference your playlists and those you follow by name or add references to other smart playlists to additionaly include their watchlist.

Select library tracks for the playlists to include your Spotify saved tracks in the mix.

{{< figure src="PlaylistExample.png" alt="playlist example" >}}

You can shuffle playlists for output or sort by reverse release date for a thumbnail that stays fresh with new music artwork.

Tags

Tags are a listening statistics visualiser for exploring your Last.fm habits. Last.fm is great for exploring your listening history but sometimes Ive wanted to be able to group some artists or albums to see their data in one place.

{{< figure src="TagExample.png" alt="tag example" >}}

Mixonomers tags lets you do this, I use it for stuff like grouping a labels artists together to see how many times Ive listened to Dreamville artists, for example. Tick time to estimate the amount of time youve spent listening to each.

Development

I started this project as an exercise in recreating the functionality of Paul Lameres Smarter Playlists app. The tool had become a really important part of my daily listening habits as a way of combining my smaller sub-genre playlists into larger mixes.

I wanted to see what an app like this looks like, what it involves to build it. At this point, I had neither built a web server nor written a significant front-end with a proper framework.

In the process of working on this project, I learnt how to create web servers with Pythons Flask module, how to deploy them to a cloud environment and how to interact with other cloud-based services. The architecture is now completely serverless using Googles App Engine, Cloud Functions and Firestore services.

{{< figure src="cloud-structure-3.png" caption="Cloud architecture of services in Googles Cloud Platform" alt="cloud structure" >}}

The front-end was written in React, which I also learnt in the process. It was, in fact, my first significant modern Javascript project utilising a Node + Webpack stack, it was interesting getting to grips with the Js ecosystem by making them work together and getting the result to deliver correctly from the backend.

The app sits in the background now, it has replaced Smarter Playlists for my smart playlists and its been a good testbed to play with more cloud services.

Try It Out

GitHub

iOS GitHub

C# GitHub