andrewrk / groovebasin

Music player server with a web-based user interface.
MIT License
1.89k stars 119 forks source link

ability to specify music directory at runtime in settings pane #213

Open yoasif opened 10 years ago

yoasif commented 10 years ago

I built this app, saw the message in the console that the app was listening on http, fired up a web browser, then tried to add my music.

I clicked into "Library" and "Settings" and saw no way of telling groovebasin how to find my music.

There should be a watched directory user preference available in the Settings UI that shows the filesystem of the machine that groovebasin is running on that allows users to add a directory to watch. As a stopgap, documentation ought to be added that makes it clear that users need to edit the config.js file that is generated on first start.

andrewrk commented 10 years ago

There is a section in the readme that talks about configuration. If you have a way to make the documentation clearer I'd be happy to merge a pull request.

As for as specifying the music directory at runtime in the settings pane, here are my thoughts:

What do you think about that?

yoasif commented 10 years ago

Thanks for the prompt reply.

there should only be 1 music directory

I would tend to disagree. Players like Rhythmbox and gmusicbrowser both support libraries spanning multiple folders, and it would be a step back for users switching from those players to have to move their files into one master directory.

For my own use case, I tend to have an "unsorted" folder where I keep music that isn't up to my tagging standards (Musicbrainz tags), and a sorted one, where my "good" music is stored. I use beets to organize my sorted folder, but I don't want to have to fire up Audacious to listen to music in the unsorted folder, nor do I want to have the sorted folder containing music files that are untracked by beets.

configuring the music directory should only happen in 1 place, not 2

Yep, I agree. But hey, it's not like I can't directly update the watched music folders for gmusicbrowser or Rhythmbox by editing the config file or updating gconf values. The point is, the configuration information can be stored in one place, but it doesn't mean that there can't be multiple ways to edit that configuration.

I don't think that it is friendly for an application that has a web based UI, but does not allow for configuration via that same UI. Look at applications like sabnzbd or nzbget, which allow for configuration of save, configuration and log directories, via the web UI. The installer installs the application, starts up a service, then the user can move to their web browser to continue configuration.

you should be able to configure the music directory with a config file. This will be important for packaging groove basin for various linux distributions.

I'm not sure why configuring the application for distribution necessarily requires that we need to have a user-edited configuration file.

The way I see it, I would like to see Groove Basin store its configuration information in $XDG_CONFIG_HOME (as specified by the XDG Base Directory Specification)

The way that Groove Basin currently stores its configuration in the same directory as the application is itself problematic, since most users will not be able to write a configuration to standard applications directories like /usr/bin/ (where gmusicbrowser is installed, for instance). This is a larger challenge to packaging this application for distribution in Linux distributions than the question of whether editing of configuration information must be done via a text editor (instead of say, a friendlier web UI).

Attaching a picture of nzbget's path configuration page as an example of how they accomplish this:

screenshot from 2014-04-23 20 32 12

andrewrk commented 10 years ago

I think you made a lot of good points here and now I am reconsidering my own opinions.

For my own use case, I tend to have an "unsorted" folder where I keep music that isn't up to my tagging standards (Musicbrainz tags), and a sorted one, where my "good" music is stored.

Why not store the unsorted one in your main music folder under "unsorted" like this?

~/music/unsorted/* (unsorted stuff)
~/music/*artist*/*album*/*track* (normal stuff)
yoasif commented 10 years ago

Why not store the unsorted one in your main music folder

It's a good idea. Really, I was just answering your question. I understand if it is a limitation of groove basin to have a single music directory, but it is definitely something I think some users will miss.

The real reason that I don't follow your suggestion is because I don't like seeing 5 different versions of "The Beatles" -- I dislike bad tags, and it makes it harder to browse my music library.

I'm ok with having to browse my filesystem and dragging my "bad" music to audacious -- it will eventually force me to ensure that the album is in musicbrainz so I can tag it correctly.

Banshee doesn't have the option of having multiple music directories, but it also doesn't force you to move your music into it's music folder - users can arbitrarily add music from any location that can be accessed by the user -- which I think ameliorates the issue of having multiple music folders.

Either way, I opened the issue not because I wanted multiple music directories -- I'm mostly okay with being forced to use a single music folder -- my annoyance was with how non-obvious it was for me to get my music added in the first place.

Considering that there's no "native" linux UI, I couldn't rely on drag and drop (the most basic functionality, which something like winamp or audacious caters to), I looked for a way to tell the app where on my filesystem the music was.

arthurlutz commented 9 years ago

+1 on multi directories, usefull for a number of things :

andrewrk commented 9 years ago

As an alternative to multiple music directories, you can make a symlink in your music directory to the other directory.

diogocp commented 9 years ago

An easy way of fixing this is to add an error message for when the musicDirectory config key is empty and then make that the default config.

Edit: by "this" I mean the original problem "It is not obvious how to specify a music directory".