Show HN: Meelo, self-hosted music server for collectors and music maniacs
github.comI've been working on this alternative for Plex for almost 3 years now. It's main selling point is that it correctly handles multiple versions of albums and songs. As of today, it only has a web client.
It tries to be as flexible as possible, but still requires a bit of configuration (including regexes, but if metadata is embedded into the files, it can be skipped).
I just released v3.0, making videos first-class data, and scanning + metadata matching faster.
One thing to solve here, that nobody else but Roon can do, is bit-perfect playback. Meaning that your SACD rips in DSD format are not transcoded. Plex cannot do that, neither can any subsonic server or jellyfin.
You need a native player for this, but it is doable. Mpv at least can play the files.
I'm pretty sure both lyrion music server and music assistant can do it.
I'd recommend implementing the squeezebox protocol if you were to go this route. There's already a ton of clients and it also handles multi-room audio.
Here's the music assistant implementation for reference: https://github.com/music-assistant/server/tree/stable/music_...
I'm a bit of a noob when it comes to DSD, but don't you need a DAC with DSD (as an alternative to PCM) support?
Correct me if I'm wrong, but the player would need exclusive access to the device, and bypass almost all of the audio processing stack, like software mixing. Can you play PCM audio (like system alerts) through the same DAC at the same time? Like, a hw analog mixer?
Yeah, I'm also interested on this. I don't know, but my gut feeling on this is that no, you can't mix other audio or use a software volume control with DSD audio. It has to be converted to PCM first.
But, with Pipewire you _can_ play DSD audio, here's how:
https://wiki.libre.moe/linux/pipewire/dsd-playback
And yes, you need a DAC that supports it. They are not that hard to find though.
Edit: just noting I do not have hardware that can play DSD audio. The audio files started to be available, and there are shops that sell them such as High Definition Tape Transfers. Space is cheap, and if I would have them in my collection it would be great to play them with the best quality. Although, I probably don't hear the difference even with these Hifiman headphones, but it's the nerd in me that likes to see this to work.
I have a ZOOM UAC-232+Marshall Monitors/KRK Classics, and I couldn't tell 320kbps MP3 from FLAC :,) but I know one person who probably would.
A few years ago some friends and I did a carefully controlled blind test between 320kbps mp3 and FLAC. Studio monitors, identical source HW, etc.
The person playing them was not in the test, we randomized 20 second samples of different styles, randomized order determined in advance.
I don’t remember exact results but it was completely inline with binomial probability.
To this day I feel like there’s something wrong with high frequencies like open hats in 320 mp3, but on that day I could not tell a difference so I’m accepting it as negative placebo.
Plexamp can surely do bit-perfect playback, not vanilla Plex though.
Looks very nice, however it doesn't seem to support subsonic yet, which means no Android Auto integration through Ultrasonic.
I'm going to keep watch on this, there aren't many music players with interfaces that look that nice.
@arti_chaud, out of curiosity, did you explicitly choose not to support what seems like a de facto standard for music servers? Or did you have to create the server to support the player?
I did choose to not use other standards as the main features of Meelo (multiple album/song versions, getting B-Sides, etc.) are not supported by them. The server's API follows its own design.
Maybe an exposed compatibility API for supporting third party players
It makes sense, since Meelo's main strength is the rich metadata model. You'd have to butcher it into a lowest-common-denominator format, which in many of these subtle cases would be missing the entire point.
I think people who would rather use streaming apps should just stick to Jellyfin or Navidrome.
I still prefer to listen to music through a native/dedicated app on desktop (and definitely on mobile). As much as I don't like Electron, Cider went with it and it's not that bad.
How's the support for the Album Artist tag? This is a common paint point I have with every single self-hosted solution, shockingly I've found Jellyfin to handle it the best so far.
Use case: Japanese doujin (basically label compilation) albums.
I'm not sure if I understood your question, so here's a quick brief on how I handle this:
If the tag (from the path or the embedded metadata) is 'Compilation' or any other string specified in the settings, the album will have no main artist. Such albums cannot be grouped by series or sth (although that would be a great idea for version 4.0).
As of today, on the web app, there is no page that lists all 'compilation' albums.
Does it answer your question?
Album Artist is essential for DJ mix albums, where each track has a different artist, but the album has a whole has a single artist.
Here's the typical use case for me: https://diversesystem.bandcamp.com/album/ad-garage
Typically with these, I put the Album Artist as "Diverse System" (this is the name of the "record label"). Each track will have it's own artist. In Jellyfin, there is an Album Artist tab inside a music library, which will group these albums into the Diverse System artist, and artists that only appear as a member of one of these albums will not appear in that tab (as they aren't the artist of an album).
So a bit different from a Compilation as you state it.
This should be compatible, as a song's artist does not have to be the same as an album's artist. A song has to have an artist, an album does not. In Meelo, an artist that does not have an album but only songs would not be listed in a library's artist list for example.
Perhaps the label should be a separate field, and the album could be grouped under the label?
What are you using to manage artist and album artist tags for your jellyfin server? I've been trying with Picard and both artist and album artist are a mess for me in jellyfin. I'm probably doing something wrong.
I manually tag everything using Mp3tag [0]. I've found jellyfin is a bit temperamental picking up the changes after making them.
[0] https://www.mp3tag.de/en/index.html
Thank you!
This looks cool, but I'm not 100% sure what it does. Is the "music server" part just a backend for the web UI, or does it serve via other protocols like DLNA?
As of today, the API is proper to the web app. No other protocols are implemented yet.
I love this, but I want it as a plain desktop app instead of a server + a web app. I don't want the headaches of self-hosting (regardless of whether it's on the same machine or a different machine on my network or he cloud), I just want to open an application and it works.
https://github.com/clementine-player/Clementine, main website is out of date but the app is still getting releases.
I am a current Clementine user. It is pretty good, but I don't feel it is optimized for collectors with large libraries the way Meelo appears to be. For example, the duplicate finder can't distinguish between the same track that appears on two different albums, e.g. the album it debuted on and a "Greatest Hits" release.
> For example, the duplicate finder can't distinguish between the same track that appears on two different albums, e.g. the album it debuted on and a "Greatest Hits" release.
Honest question, why would you want to? What's wrong with having the same song on two different albums in your collection?
Right, it's exactly the opposite of what you're thinking. I want the duplicate finder to NOT report them as duplicates, but it currently does.
As a Plex and Plexamp user, I'm curious about a few features: mobile support doesn't seem to be mentioned. Is there a mobile app? Are smart playlists a feature? What about gapless playback? Can you elaborate on the 5 star system for rating tracks, albums and artists?
Overall the feature set really speaks to me, as I have a bunch of CD rips tagged using MusicBrainz Picard with a couple of deluxe and non-deluxe versions thrown in of the same album. I think I'll have to give it a try either way because you're touching on a niche Plex just doesn't seem to care about.
Glad you find Meelo interesting! Thanks
As of today, there are no plans for a mobile app (I've thought about it a couple of times, but I don't have the bandwidth for that atm).
No smart playlists, just a simple playlist system. No gapless playback either.
There is no ratin system either (I hardly use this feature myself on other platforms, so it is not part of the roadmap (yet?)).
The only 'ratings' are for albums, and are scrapped from websites like Metacritic or AllMusic.
If you could implement the OpenSubsonicAPI, you could solve the mobile issue easy, and dont even have to build a mobile app
I think you'll find the population anal enough about different album versions and the one who can't do without gapless playback overlaps significantly.
I'll add that proper ReplayGain handling is also a must.
> Using iTunes or Beets is a great way to start.
I'm _just_ worked on cleaning my library with Beets today, excited to see more "frontends" being available. I'm currently on Plexamp but the Mac app (Which is just the iPad app) could be much better.
Any chance for native apps to put it inline with things like roon, and support for DSD playback?
Cool, but does it scrobble?
No yet, but the feature is on the roadmap for v4.0 !
Great project ! It even works on Gnome Web this is quite a feat
Gnome Web uses the OSS WebKit, which is also what Safari builds upon. I'm not familiar with the intricacies but it shouldn't be that problematic? My default browser is Safari and 99% of the websites work well. (Twitch is the only major outlier.)
>no gapless playback
Ok, so not for people who like long pieces of music that have been broken into tracks. No classical music fans and no EDM fans. What’s the market then?
And no Pink Floyd fans.
Gapless is definitely a must for any music enthusiast, I believe.
I use Jellyfin btw, it does support gapless.
Ya definitly should add gapless, wish we also had more integrations from back in the day when they'd do beat matching and mixing between songs
Everyone else?
This project deserves to be more known!
how about keyboard shortcuts? various remote controls? search?
There are a few/simple keyboard shortcuts (open/close the player, go to search, go to settings…)
There is a search page, backed by Meilisearch. You can search artists, albums, songs and videos. You can even search songs by lyrics.