nyxdis / libmpdclient

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Feature request: support for customizable tags

nicolabotta opened this issue · comments

*** Motivation: MPD is a flexible, reliable solution for local distribution of audio contents but suffers from a major limitation. The set of supported tags is not customizable. This makes MPD and MPD clients virtually unusable for applications with specific classification needs. Even for users with a focus on, for example, classical music or opera, the current set of core tags is virtually unusable.

*** Realization: MPD users should be able to extend the set of tags MPD supports in a dedicated mpd.conf sections. Something like

user_specific_tags {                                                                                                              
  album         "Album"         "single"
  title         "Title"         "single"                                                                                                     
  ...                                                                                                                 
  composer      "Composer"      "multi"                                                                                                
  conductor     "Conductor"     "multi"
  ...
  first_violin  "First Violin"  "single"                                                                        
}  

MPD fills in a dynamical mpd_user_specific_tags data structure at start. Clients request a mpd_user_specific_tags value from the MPD server after connect via a libmpdclient primitive.

*** Implementation: my impression (after I have spent one afternoon on the source code of MPD and of ncmpcpp to add an arbitrary tag to the core set) is that customizable tags can be implemented in MPD quite easily. In libmpdclient it would be certainly necessary to add to the static array mpd_tag_type_names a suitable mpd_user_specific_tags, dishardwire the code and support clients mpd_user_specific_tags queries. On the client side no changes are required. But clients could take advantage of mpd_user_specific_tags to support customizable searching and browsing. Client customization should be easily implementable.

*** Impact: MPD and MPD clients could be configured for specific applications and customized to meet user specific classification schemes. They could become true alternatives to overbloated commercial solutions without increasing in weight.

this is not the official repository for libmpdclient (which is not on github)
this is: http://git.musicpd.org/cgit/master/libmpdclient.git

I support you in your request and even had a talk with mpds developer about this. He thinks it might be a useful feature and he would be open to merge a patchset, if it isn't too much overhead. But don't count on him developing this. He won't.

Sad truth is: In times of cloud music services there are less and less people willing to work on audio players like mpd.

What @carnager said. This repo exists only because I added the vala file. It's not intended for further development and not even up-to-date.