My current solution is Navidrome[0], which is a similarly lightweight music server (also written in Go and FOSS [1]), with a similary nice Web UI that works well as a responsive webapp / PWA.
Probably the biggest difference however is that, instead of a custom API, it supports the somewhat-standard Subsonic API, which makes it usable via a large collection of native clients. It also has a few more features like multiple user accounts, etc.
TBH, the overlaps are big enough that I'm not seeing the space for Euterpe. I suppose the installation is a little bit simpler if you don't use Docker?
never heard of navidrome! 10 minutes later I have it all setup and its amazing! thanks for the suggestion
for anyone looking to do this on their home setup take a look here, save you a lot of time: https://github.com/navidrome/navidrome/issues/103
I appreciate all these players and server thingeys and what not, but what is extremely needed right now is a robust tagger, library db type thing. As far as I know, there are two solutions beets https://github.com/beetbox/beets and picard https://github.com/metabrainz/picard. Beets is maintained, but relies on plugins which are not; but mainly it is slow as to be unusable for a decent size library. Picard is better, but limited in functionality (I want it to have a persistent db of my music too).
I just want a thin wrapper around an sqlite db that can do rudimentary tag detection and have functionality like "Import this folder into my library, moving the files and adding the songs to the table"
Beets’ strength is as a tagging solution more so than a way of accessing music. For the latter I use mpd.
From a tagging perspective beets works great. It’s hugely configurable out of the box and the fact it’s written in Python means it’s easy to extend or write plugins for your own purposes.
a) WAV files with no internal metadata (there is a metadata file alongside though and a album-cover.jpg) (My ripping process pre-dates the ubiquity of FLAC playback support)
b) stored on a central file server currently only accessible via SMB/CIFS.
And what I want is some remote head-unit solution connected to [powered] speakers running a touch screen UI that presents the lot as a music jukebox.
There's a lot of Android and Linux based front-ends but most of them insist on only indexing locally stored music, and also only supporting file types with built-in metadata support, even though my music is stored in a logical Artist/Album/Track.wav folder/file naming convention.
So I'm stuck. It feels like I need to hand-crank my own solution... but that would take a lot of time I don't have, and never be as nice as some of these established open-source projects.
>a) WAV files with no internal metadata (there is a metadata file alongside though and a album-cover.jpg) (My ripping process pre-dates the ubiquity of FLAC playback support)
Converting your entire .WAV library to .FLAC should be extremely quick on any CPU made in the last 10 years. A good converter will also allow you to tag it while converting. I converted from .APE to .FLAC a few years ago and it took no time at all.
> there is a metadata file alongside though and a album-cover.jpg
Is the metadata file in a format that you made yourself or was it produced by a third-party piece of software? And is it text based or binary format?
> There's a lot of Android and Linux based front-ends but most of them insist on only indexing locally stored music, and also only supporting file types with built-in metadata support, even though my music is stored in a logical Artist/Album/Track.wav folder/file naming convention.
Ok, so if we start off with that part of it, and we ignore the additional metadata file for now.
> stored on a central file server currently only accessible via SMB/CIFS.
Can you SSH into the server? Or alternatively, manage the server with a locally connected keyboard and monitor? Or is this some kind of NAS box that does not allow you to do any of those kinds of things?
Because I have a couple of ideas but it will depend on the specifics of your setup.
I'm reasonably sure that Jellyfin could handle this setup. For music, it normally uses in-file metadata, but lacking that, I think you can give it enough info through paths and filenames for it to look up the metadata online (this is what it does for movies and TV shows). It definitely uses a text-based metadata format (.nfo) internally to cache this metadata, and it probably would be easy to programatically convert your metadata file to this format.
It looks nice, and I’ve used similar solutions in the past. The problems are; when you update your server’s local library to a new version of iTunes or the operating system gets updated, the web app breaks. Webserver goes down, breaks. Sneeze, breaks. 2 years from now, project unsupported, breaks.
Music is one of those things that you just want to work 100%, all the time. For this reason I don’t have any Wi-Fi speakers. Everything is hardwired, except the remote.
For the last 10 years I’ve been using apple remote on top of iTunes. This allows me to create persistent connections between my iPhone iPad to my Remote iTunes sever which is an old MBA in a closet. It has a battery backup for power outages, I can play any music in the 16,000 song library, buy and download new music from my iPhone and instantly be able to play it on the server and the interface looks nice. This system has been more robust than some of my client’s AV systems designed by a pro audio team with whole-home solution costing $$$$$. Let’s just hope Apple continues to support Remote.
Probably the biggest difference however is that, instead of a custom API, it supports the somewhat-standard Subsonic API, which makes it usable via a large collection of native clients. It also has a few more features like multiple user accounts, etc.
TBH, the overlaps are big enough that I'm not seeing the space for Euterpe. I suppose the installation is a little bit simpler if you don't use Docker?
[0] https://www.navidrome.org/about/
[1] https://github.com/navidrome/navidrome/
I just want a thin wrapper around an sqlite db that can do rudimentary tag detection and have functionality like "Import this folder into my library, moving the files and adding the songs to the table"
From a tagging perspective beets works great. It’s hugely configurable out of the box and the fact it’s written in Python means it’s easy to extend or write plugins for your own purposes.
a) WAV files with no internal metadata (there is a metadata file alongside though and a album-cover.jpg) (My ripping process pre-dates the ubiquity of FLAC playback support)
b) stored on a central file server currently only accessible via SMB/CIFS.
And what I want is some remote head-unit solution connected to [powered] speakers running a touch screen UI that presents the lot as a music jukebox.
There's a lot of Android and Linux based front-ends but most of them insist on only indexing locally stored music, and also only supporting file types with built-in metadata support, even though my music is stored in a logical Artist/Album/Track.wav folder/file naming convention.
So I'm stuck. It feels like I need to hand-crank my own solution... but that would take a lot of time I don't have, and never be as nice as some of these established open-source projects.
a) transcode to flac, at least for the file size limits b) use beets.io or Musicbrainz to match your music and write metadata to them.
Updating your library will make it much easier to use with any sort of streaming frontend.
Converting your entire .WAV library to .FLAC should be extremely quick on any CPU made in the last 10 years. A good converter will also allow you to tag it while converting. I converted from .APE to .FLAC a few years ago and it took no time at all.
Is the metadata file in a format that you made yourself or was it produced by a third-party piece of software? And is it text based or binary format?
> There's a lot of Android and Linux based front-ends but most of them insist on only indexing locally stored music, and also only supporting file types with built-in metadata support, even though my music is stored in a logical Artist/Album/Track.wav folder/file naming convention.
Ok, so if we start off with that part of it, and we ignore the additional metadata file for now.
> stored on a central file server currently only accessible via SMB/CIFS.
Can you SSH into the server? Or alternatively, manage the server with a locally connected keyboard and monitor? Or is this some kind of NAS box that does not allow you to do any of those kinds of things?
Because I have a couple of ideas but it will depend on the specifics of your setup.
It's currently a file share on a Windows Server box, but at some point will probably move to a dedicated NAS (due to rising energy costs)
Music is one of those things that you just want to work 100%, all the time. For this reason I don’t have any Wi-Fi speakers. Everything is hardwired, except the remote.
For the last 10 years I’ve been using apple remote on top of iTunes. This allows me to create persistent connections between my iPhone iPad to my Remote iTunes sever which is an old MBA in a closet. It has a battery backup for power outages, I can play any music in the 16,000 song library, buy and download new music from my iPhone and instantly be able to play it on the server and the interface looks nice. This system has been more robust than some of my client’s AV systems designed by a pro audio team with whole-home solution costing $$$$$. Let’s just hope Apple continues to support Remote.