Show HN: Simpler access to your music from the web that looks nice
github.com
github.com
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?
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.
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)
I see. I don’t know if the following will really be helpful since there may be some nuances that will differ a bit. But if that installation of Windows has WSL then hopefully the following might be helpful.
In summary, my idea is as follows: If you have enough space on the server for it, you could create a new top-level directory next to the one that you currently have for your music, and then create a script that loops over all of the files, transcoding them to flac with ffmpeg and adding metadata with a flac metadata edit tool. (ffmpeg can edit flac metadata too, but I think a dedicated flac metadata edit tool will be more straight forward to use).
So on KDE Neon Linux and other Ubuntu based distros, here’s what I’d do, and hoping this might be somehow useful even though you are using Windows:
First install ffmpeg, lltag and mediainfo if you don’t have them already:
sudo apt install ffmpeg lltag mediainfo
Then let’s say that the directory hierarchy for your music was at /data/Music/ so you’d have "/data/Music/Steppenwolf/For Ladies Only/3. Shackles and Chains.wav" etc.Then I’d create a new directory next to the Music directory and name that one "flacs" for example:
mkdir /data/flacs
Transcoding and tagging. For now we include only artist name, album name and track names, extracted from the directory names and file names in your hierarchy, omitting other metadata such as for example the album cover art. But since we retain all of your original data, you can at a later point delete these flac files and do a transcoding and tagging run where you include more metadata (or do a run that keeps the transcoded files and only edits the metadata of them if you'd like). The idea for now is to do something simple as a first step, and then you can refine it in the future. origdir="/data/Music"
flacdir="/data/flacs"
find "${origdir}" -mindepth 1 -maxdepth 1 -type d | xargs -I{} basename '{}' | while IFS= read artist ; do
mkdir -p "${flacdir}/${artist}"
find "${origdir}/${artist}/" -mindepth 1 -maxdepth 1 -type d | xargs -I{} basename '{}' | while IFS= read album ; do
mkdir -p "${flacdir}/${artist}/${album}"
find "${origdir}/${artist}/${album}/" -mindepth 1 -maxdepth 1 -type f -name '*.wav' | xargs -I{} basename '{}' | while IFS= read trackwav ; do
tracktitle="${trackwav%.*}"
ffmpeg -i "${origdir}/${artist}/${album}/${trackwav}" "${flacdir}/${artist}/${album}/${tracktitle}.flac"
lltag --clear -a "${artist}" -t "${tracktitle}" -A "${album}" --yes "${flacdir}/${artist}/${album}/${tracktitle}.flac"
done
done
done
And now if we look at one of the transcoded files with mediainfo: mediainfo "/data/flacs/Steppenwolf/For Ladies Only/3. Shackles and Chains.flac"
Then we see among the lines of the output the following, showing us that we have successfully tagged the transcoded file with artist, album and track title: Album : For Ladies Only
Track name : 3. Shackles and Chains
Performer : Steppenwolf
And likewise for all of the other files. All transcoded to flac and tagged with artist, album and track title.And your original wav files and other data remains unchanged where they were, so that you can do more detailed tagging etc in the future.
Also, how did you know that I like Steppenwolf?! :D
I figured that anyone that appreciates music so much that they maintain a collection of music files on their machine would probably appreciate Steppenwolf :)
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.
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.
Really cool in any case!