I use my MPD as play-all-my-music-shuffle way, while sometimes, when I want to listen to specific songs instead of wiping the entire queue list, i use the priority feature.
So the first request is a list of all songs set in priority 1 or higher
- i can change the order - effectively change the priority
- i can remove one or more songs - effectively set them as priority 0
The second feature is a small UX issue, yes, I can scroll the queue list or search a specific song to queue. But the MPD logic is messed up, the highest number of the priority attribute will play first rather than the lowest (i.e. 1st priority, 2nd priority etc.) - in order to overcome this MAFA can set the default number for priority as 99, and for the second song I would like to prioritize the default number shall be 98 which will make them play chronically as i prioritized them (obviously i could still change the number and set it as i wish, but we are talking about the default) - hope that makes sense
Assigning priorities is also on the to-do list.
I’ve looked more into it. It seems to be difficult to implement these requests with the present MPD protocol.
I don’t think it’s possible without downloading the whole queue which can be arbitrarily long.
I’m afraid it may be too complicated to express in the UI or to explain this feature (when does the counter reset, what happens when it reaches zero).
I’ll try to come up with something simpler but still useful.
I wrote bash script that does that with mpc tool, it is pretty simple
mpc -f "%prio%_%title%" playlist | sed '/^0_/d' | sort -r
this would print the entire queue (mine is over 10k), with the format of [priority]_[title], use sed command to remove all the non prioritized songs (starts with priority 0) and lastly sort the list DESC by priority
The entire point to expose the users to the priority numbering is a mistake, it can be reflected by location (draggable items in a list).
When that is achieved no need for hard 99 limit, the numbers do not even matter anymore and MAFA can assign the numbers in the backend according to the prioritized list size and song ordering in it
May be there’s already a way to support this use-case.
What if you used
Shuffle instead of playing in
Then you could prioritize tracks by using
Add next. And for tracks already in the queue you could move them to
next position (from the track actions dialog).
The result would be similar to adding with ascending priority (LIFO).
Another advantage over
Random is that all the added tracks are in order after the current track so it’s easier to re-order between them by
drag & drop in the player queue (no need for a separate priority view).
I gave your suggestion a try, the LIFO experience is the opposite of what i was suggesting (FIFO), for each song I “added” i had to pull it to the bottom of the list, but this list is part of the entire queue so i have to drag it carefully to the right place which made the experience somewhat less enjoyable.
My feature suggestion was to create a view of the prioritized songs and allow the drag and drop experience, which is very similar to the one you have suggested which is the queue view (just filtered and sorted by priority)
I have to clarify my words from earlier posts, I do not think that you made a mistake by exposing the priority numbering in MAFA, the entire priority mechanism in MPD should be upside-down to my understanding
I am no developer but if you want i can share the logic i created with automated scripts to use priority and FIFO (utilizing mpc tool)
I see how your suggested solution works, but it requires filtering the whole queue to find the priorities, and that’s something I’d like to avoid for performance reasons . It would have been feasible if the MPD protocol supported such filtering directly.