Post

The creation of Meelo

How the project came to be & what the original goals were

The creation of Meelo

I’ve been working on Meelo for about 3 years now. Recently, it has received a bit of attention because of my post on HackerNews, and I am very grateful for that. The thing is, people seem not to understand what the project is really about.

This series of post is my attempt to describe and explain what and who Meelo is for. The project’s main features are very niche, and my goal here is to explain why I needed them.

This post will not be very technical. It’s more about design and reflection.

3-minute-pitch: What is Meelo?

Meelo is a self-hosted music server. It is a software that scans your folder, registers the music files and makes them available to you through a web application. Yes, it is very much like Plex or Jellyfin. But Meelo stands out through features that either don’t exist anywhere else, or are weakly supported.

Find screenshots of the app here.

Now let me explain what my original needs were.

Backstory: from iTunes to Plex

When I was a kid, I used to listen to music on my iPod. How do you put music on them? Through iTunes (now just Music). It was/is, in my opinion, a very good software for managing your music libraries. Its info menu felt very complete and easy to understand. I would spend hours trying to organise my music as much as possible. I was exposed to a lot of different genres very early on, so my music ‘collection’ at the time already had a couple of hundred songs.

iTunes Menu The good old iTunes/Music ‘Info Menu’

As years went by, streaming services became more and more popular. Managing music files felt like it was not the ‘right’ way to manage your music library. The ‘Add to Library’ button became the new ‘Rip the CD’.

(Un)fortunately, around the same time, I started to get interested in physical media, especially CDs: they were (are still are!) cheap, easy to take care of, and small (compared to vinyl records). I discovered Discogs, which is (imo) the best database for music releases: it catalogues every different version for each album, single etc. (For example, checkout how many different pressings there are for The Dark Side of The Moon by Pink Floyd). For some reason, this is very interesting to me. Fatally, I started collecting1 physical media (mainly CDs), because it felt nice to hold something in your hands with nice pictures, funny notes in the booklet or the credits.

At the time, the content of CD Singles (CDs that are not albums, ‘focusing’ only on one song, e.g. this), would still be exclusive to the physical realm. Remixes and B-Sides were nowhere to be seen on streaming services (This is less true today, as some labels start to make them available on there). I have a weak spot for these rarities. Consequently, I started having more and more CDs, and sometimes multiple versions of the same album/single (e.g. Music has three different tracklist depending on the country/year the CD was released in (1 2 3)).

With more and more tracks only available on CD, and no more iPod to play them on, I wanted to be able to access the files on my smartphone. Then I discovered Plex. I think it’s a great piece of software (for music at least). For a while, I was happy with it (tbf, I still am. Plexamp is an amazing app).

Limitations of most music software

Software like iTunes, Plex, Jellyfin, etc. all handle data related to music similarly: Artists have albums, albums have songs. Songs are unique to the album they belong to. If a same song with the same name appears on two different albums, then it’s not the same song. Similarly, two album versions cannot be just one album.

So this design has a few limitations:

  • When a song appears on an album and a ‘greatest-hits’-like album, the song would be listed twice in a global song list
  • When you have two versions of the same album (e.g. the standard version and the deluxe edition), these cannot be linked. Thus, in a global album list, both versions would be listed2.
Examples using Plex song-dupes album-dupes

When you don’t collect music, it’s easy to deal with these limitations and ignore them. This is not an issue for most people. But when the same song appears on 5 different albums, it is getting problematic. At the end of the day, what I wanted is a music player/server that modelled data like Discogs and MusicBrainz.

Does such solution exist? Well if it did, I never found it. That’s how Meelo was born.

The design of Meelo

The goal of Meelo would be handle music files so that:

  • Albums would have releases (A release being a version of an album)
    • There would be a main release (the main instance of an album)
  • And similarly for songs: they would have tracks
    • There would be a main track (the main instance of the song)
  • And basic features like browsing, playback, etc.

These two features were the only ones that set Meelo apart at the time (Now, it has more killer features, but I’ll cover them in future posts).

Meelo is meant to be personal, it’s your collection, so even though it has a user management system, it’s not meant to be shared with people you do not know (please don’t share music illegally x).

Results

Unfold each section to see a screenshot of Meelo for each feature

Access versions of an album album-version Notice the last section at the bottom of the page. You can access the releases of a same album on the album's page. These secondary releases will not be listed in global album lists (e.g. when searching). Of course, it is possible to choose which release to set as 'master' (or set as primary).
Avoid duplicates in song/album list search When searching for a song, only one instance/track will be listed (compare with the Plex screenshot). Of course, remixes and other variants of the song are still listed. We still want them to be easily accessible. Note: The last two songs are listed here because the word 'biology' appears in their lyrics.
Access a song's tracks song-tracks It is still possible to list all the tracks for a single song. Similarly to album releases, a track can be set as 'master' track.

Conclusion

Meelo was born from a need many music collectors have. It prioritises the browsing experience. The software was not created to answer a general need, but a specific one. I hope this insight helped you understand the original ideas behind the software. Feel free to check it out on GitHub!

The features presented here were the first of many others that set Meelo apart from other music servers. In future posts, I’ll explain how Meelo handles featuring artists, bonus tracks, B-sides and videos.


  1. See collecting as a way to honour the music you like and the artist you appreciate. It is also about media preservation and a way to ‘study’ the way music was distributed over time. My goal is not to have as many items as possible, but to learn as much as possible. ↩︎

  2. I found out that Plex has some kind of hidden album version detection, but it is not very evident/clear how it works. ↩︎

This post is licensed under CC BY 4.0 by the author.

Trending Tags