Hacker Newsnew | past | comments | ask | show | jobs | submit | itm's commentslogin

https://github.com/epoupon/lms is another (Open)Subsonic compatible server that supports directory browsing commands. But actually few clients use them.


I've been using https://github.com/sentriz/gonic – how does lms compare to other (open)subsonic servers?


Well you can have some comparison here: https://github.com/basings/selfhosted-music-overview

From what I know lms has more artist relationships (composers, conductors, etc.), but it lacks last.fm integration and jukebox mode.


The obvious drawback is that the global security level is the security level of the weakest lock.


I guess your best bet to keep motivation on the long term is to contribute to projects your are using daily.


I do agree with this. For example, if you can't easily name a function, then it is likely it does too many things and should be split or something.


(I hope you actually don't store passwords in clear text in your database :) )


Security and privacy is something I strive to have... I would want the same for anyone who uses anything I create.


Could you please tell how it compares to Wt? (https://www.webtoolkit.eu/wt)


I eat my own food:

https://github.com/epoupon/lms for music

https://github.com/epoupon/fileshelter to share files

Eveything is packaged on debian buster (amd64 and armhf) and run behind a reverse proxy.


Huh, interesting. I usually have full copies of my music collection where I need them (512gb microsd in my phone and on the work laptop) but it would be nice to just have a web interface if I'm at someone's house or so they can play off their phone. I think I was using subsonic until they changed all their licensing.

One UI question? Is there a reason you left off volume controls? That's something that always annoys me still about Bandcamp and I had submitted a patch to Mastodon to create a volume control for their video component.


This is a good question. On mobile, I just use phone buttons to control volume. On desktop, I just use the media keys since I don't listen to something else. But since you are not the first to ask, I can add a volume slider on large devices.


About volume control, when there is a volume control on the TV, the TV box, as well as the receiver, it feels a bit unnecessary to also have a volume control in the software.


Both of those projects look great! I could definitely see using both of them. I've been thinking about writing something similar to lms for awhile now.


Thanks for you feedback!

About the software license, the web framework used (wt) is using the GPL license. So unfortunately I have to stick with it since I include/link with it. It is likely not a problem for SaaS though.

- ncmpcpp-like frontend: what do you have in mind actually? I am not sure since the goal here is to play the music on the device from which you access to the server.

- directory-based navigation: well I think that is a matter of taste. Personally I find the navigation directory based very restrictive. It does not scale well on a large collection and after all, it is just a fixed view of what you can offer using tag based browsing. Most people use a genre/artist/album layout, but using tags you could easily achieve the same, and go even further and do whatever you want: genre/decade/artist/album, mood/album, genre/mood/artist, etc. Honestly, I would rather encourage people to properly tag their files rather than spending time on implementing a clunky directory based navigation.

- Any info on the recommendation engine? How does it work? Low-level Data is fetched from AcousticBrainz. See an exemple here for a random song: https://acousticbrainz.org/e73f3d92-4e9f-4db4-943a-41978d9db... Some features are extracted for each track (the exact list is here: https://github.com/epoupon/lms/blob/develop/src/database/Sim...) and all these features are used together to classify the tracks. You can find details here: https://en.wikipedia.org/wiki/Self-organizing_map . Once it is done, you get a map with all your tracks in it, and using the underlying SOM you can determine the neighbourhood of a given track. The recommendation engine uses this map. For example, if you want albums that are similar to a particular one, you look for the tracks of the album in the map and you retreive the albums of the tracks that are close to them.

- Does musicbrainzId support include id3 tagging? id3 is a tag format used mainly in MP3. LMS reads all the tags using taglib. Therefore it can extract the tags (id3 or whatever) it needs internally (musicbrainz ids, artist, albumartist, date, etc.) as well as custom tags the administrator want too ( albummood, mood, albumgenre, grouping, etc.) Hope that helps!


My bad I think I misunderstood your question about musicbrainzId. It is used internally : - as a key for albums and artists to properly handle duplicated names. - to retreive audio data analysis from AcousticBrainz

If you have musicbrainz identifiers in your file, it is assumed the other tags (artist, album, etc.) are correct and are directly used.


Thanks for this and the additional information above. Both answers were informative.

This is the first time I heard of AcousticBrainz and its sig (https://acousticbrainz.org/e73f3d92-4e9f-4db4-943a-41978d9db...). Nice! From the ones that brought us MusicBrainz right?

> what do you have in mind actually? I am not sure since the goal here is to play the music on the device from which you access to the server.

ncmpcpp is a music client, but for the mpd music server. Not sure if LMS <-> MPD do the same things. compare ncmpcpp to mpc, but w/ ncurses + c++. It has directory-based navigation which makes it easy to move through music.

Look forward to watching this project grow!


Yes, actually MusicBrainz and AcousticBrainz are part of MetaBrainz (see https://metabrainz.org/projects) There is even a ListenBrainz project :)


Hello,

Please feel free to provide any feedback on this project.

I tried my best to make a README as complete as possible, but any remark/suggestion is welcome (English is not my native language).


Hey, it looks great! The Readme is really thorough, thanks.

What's been your rationale for building it, what does it better than the rest?


Hey, thanks for your feedback!

That's a good question, I have to admit there are a lot of similar softwares available these days.

I noticed that I tend to always listen to the same music, and sadly I even forget the music I have. That's why I tried to put as many links as I can in the interface to easily jump from a title/release/artist/albumartist/genre/whatevercustomtag to another one. In particular, it should handle (custom) tags with multiple values, and it can filter over some of them on all views.

I also tried to make a recommendation engine that makes use of a SOM (https://en.wikipedia.org/wiki/Self-organizing_map). For that it fetches data from AcousticBrainz (https://acousticbrainz.org/) and makes clusters of songs that have similar audio characteristics. I have to say it's not perfect (it's quite good to cluster metal tracks though), but I would like to go deeper into this subject.

Apart from that, it is really lightweight and that was not really the case of the avalaible softwares when I started it.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: