Music Playlist Queue/Play Suggestions
#1
As I'm looking more and more into having XBMC be the only front-end to my HTPC and have it simply be a 'box' that people use with a remote, I'm finding that my music needs are becoming an issue. Based on other threads I've seen, there's much discussion and debate on potential ways to fix the playlist/queue/etc. issues surrounding music. Based on developer suggestions for people to propose a flow/methodology for music, I came up with the following.

Specifics Functions/States Required:
  • Two button functions will be required for navigation - which I will call 'Play' and 'Select' for ease of description.

  • One toggleable state will be needed, controled via skin, remote button, setup or another means.
    • Queue Toggle: Controls if the selected item is immediately played or queued into the current play queue.
  • Two Queues will be necessary:
    • Now Playing Queue: Queue containing items selected when Queue toggle is set to Queue selected items. This queue is not cleared unless modified or cleared via commands.
    • Insta-Play Queue: Queue containing items selected when Queue toggle is set to immediately play selected items. Upon completion, this queue always shifts to the Now Playing Queue and continues playing music from there. The Insta-Play queue is overwritten whenever an item is selected for insta-play.
Navigation Flow
  • If item IS NOT a music file (or can be IS a folder/heirarchy (i.e. genre, artist, etc):
    • Select will enter the item (ex. enter the sub-folder).
    • Play will queue or immediately play (depending on Queue toggle state) every music file found below that level (i.e. all music in a genre, all items under an artist, or all items under an album).
  • If item IS a music file:
    • Select AND Play will queue or immediately play (depending on Queue toggle state) every music file found below that level (i.e. all music in a genre, all items under an artist, or all items under an album).

Additional Navigation:
  • Now Playing: Now playing will require an additional commands to display queue or view queue - most likely via entry into another screen. The playlist editor can be used for this as it is now, with the Now Playing queue acting as the default playlist that appears unless another is loaded.

    Possible Commands
    • Load: Loads a playlist into the Now Playing Queue
    • Random: Shuffles the Now Playing Queue
    • Save: Save the Now Playing Queue as a Playlist
    • Play From: Select a song in this screen and the playlist moves the now playing song to this song and continues from there.

I've used systems similar to the above and found that the work and are intuitive to use from the outset. Obviously, there are a bunch of more in depth options that could be done, but I think this is a good overview of a basic navigation scheme that addresses what I've seen as most issues.

Additionally, having a now playing queue will provide a method to easily integrate with 'Smart Playlist' type applications (i.e. MusicIP, the Apple iTunes Genius thing, etc.)

Also, note, that half of this might be in XBMC already at this point. I haven't used the music navigation in awhile because of the difficulties I had with it and inability to generate a smart-list quickly (I need to integrate MusicIP still).

Looking forward to discussion and thoughts, particularly from devs.
Reply
#2
Keep in mind that there are systems (Apple TV if I'm not mistaken) with only one button "select" available.
Reply
#3
The button names are given simply for reference. Any two buttons on a remote can be used for the functions, simply remapped as appropriate.

For the AppleTV, the Select could be the Select/Play/Pause button and the Play button could be the Next/Fast Forward button (to keep the Select navigation consistent).

Also, nearly all remotes on devices - aside from the AppleTV - will have appropriate buttons that can be used for this. As navigation functions would only be shifted within the Music Library or file list, the buttons would retain their normal function in other areas.
Reply
#4
There's already a queue toggle in music settings (9.11 alpha 2 and later). This is meant to tide you over until a better option is available.

I'll read the rest of your suggestions later today.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#5
Thanks Jmarshall, at least a read and feedback is appreciated. I've used a number of media/HTPC front-ends and I found that something along these lines provided the best balance between usability, lack of popup menus (and their tendency to be annoying), and easy at adding in configuration options to alter (i.e., 2-3 toggles in settings and the above can be forced either to queue only, to the current playlist model, or something in between as noted).

(Also, this does read somewhat like some options discussed in the other thread that kind of died back in Sept. I think what I suggest above is an 'easy' way to implement something that accomplishes the largest increase in overall usability while remaining as intuitive as possible.
Reply
#6
Ok, have read it through. We work pretty close to this already with the current queue as the default action for select. The bit that differs is:

1. There's only one queue. If you have play as the action then it gets overridden.
2. Play action is ALWAYS play, no matter what the other setting is.

i.e. the Queue/Play toggle in settings only changes the default Select action when you are focused on a song.

I definitely think that in particular we need to identify "auto-queued" items (i.e. those generated from "auto play next song") from "user-queued" items in the now playing list, however. The user-queued items would take priority over any auto-queued items.

In addition, we may have to think about how we handle the "I want to play this song now, but don't want it to override any of the playlist I have set up" situation.

What might be useful is a sequence of actions that a user performs, and what the results are to those actions given certain settings.

As an example, consider 2 directories A and B, each with 3 songs (A1, A2, A3, and B1, B2, B3). What is the result of the following actions:

1. User presses SELECT on song A2
2. User presses QUEUE on song B1
3. User presses PLAY on song A1
4. User presses SELECT on song B2

With Autoplay next song enabled, and Queue as the default action disabled, the results would be:

1. Playlist is A1, A2, A3 and A2 starts playing.
2. Playlist is A1, A2, A3, B1 (things keep playing)
3. Playback is interrupted, playlist is A1, A2, A3 and A1 starts playing.
4. Playback is interrupted, playlist is B1, B2, B3 and B2 starts playing.

However, with Autoplay next song enabled and Queue as the default action enabled, the result would be:

1. Playlist is A2 and A2 starts playing.
2. Playlist is A2, B1 (things keep playing)
3. Playback is interrupted, playlist is A1, A2, A3 and A1 starts playing.
4. Playlist is A1, A2, A3, B2 (things keep playing)

etc.

You'll probably want to verify that this is exactly what actually happens using Alpha2. Ofcourse, there is also the 2 other cases to consider.

Once this is done, we can evaluate:
1. Whether the current capability supports what users want.
2. What new capability is required (if any) to support what users want.
3. What current capability is not wanted at all and can be eliminated.
4. Which settings make sense to acheive 1,2 and 3.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#7
Thank you for the well thought out reply, greatly appreciate it. Was a bit nervous as last time I made a suggestion along these lines (i.e. feature request) it turned into a fight with the app's dev and he ended up taking down the entire application for a week in a fit because I said "If you don't want user feedback and critique, then don't open a forum for the program."

Anyway, back on topic...;ooks like this is giving me the impetus to update to the newest build and attempt and see how things go. I've been hesitant thus far, but I'll get it setup and test it out later this evening or early tomorrow.

I have a feeling that there's a set of options people are asking for or about that, in all honestly, won't ever get used.

For instance, play a song after the current song ends, but then go back to the queue. What you're doing here is resorting a queue and something that can be done in a queue/playlist editor.

Regarding stopping the queue or clearing it - I think that there's an option on something I've used where pressing stop when something isn't playing clears the queue. That would be one easy way to queue clear without entering a menu.

One thing:
Quote:In addition, we may have to think about how we handle the "I want to play this song now, but don't want it to override any of the playlist I have set up" situation.

This was actually was what part of my suggestion was focused around.

I'll explain more once I check the newest versions nav scheme.
Reply
#8
IMO if playback is stopped, the queue is fair game, but that's another option, sure.

Yup, the bit that pisses some people off at the moment (and I completely understand it) is that PLAY clears the queue. What they're wanting is to just "test out" what the current track is while using the now-playing list as a way to construct a playlist. I certainly understand the motivation for it.

Essentially they're treating QUEUE as "Add to playlist" rather than "play this after whatever is playing has finished". It's a subtle but important distinction. Clearly what we are doing atm isn't working for some users, so change is required.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#9
Ok. This is my third rewrite of this post and it might be because I'm tired, but my mind isn't wrapping around how XBMC currently processes inputs for this.

I'm trying to understand this in terms of the stack stuctures used for the queues, where things go in and out, etc.

From my tests (and your description) it's a FIFO stack, except when play is hit. I haven't tested what happens with pressing play yet.

So...
  • Queue pushes to the end of the stack whatever you have highlighted or all items under that item if it's a container.
  • Select either pushes a single music file to the stack (Queue Mode), clears the stack, then pushes a file to the end of the stack (Non-Queue Mode), or drills down one level in navigation.
  • Play pushes the currently selected item (does this work like queue or select?) to the front of the stack and resets the playing of the stack.

One thing - did you mean in your example that users select/press buttons on albums (not songs) or I'm baffled as to why selecting a single song would play songs on an album.

I'm going to screw around a bit more to fully get how this works currently and revise my suggestion. I really like the potential three buttons provides...
Reply
#10
See "Autoplay next item". Play (or select, which is the same as play by default) clears the current playlist, pushes the current listing onto the queue and starts playing from the selected item.

Just play around in XBMC as per my examples above and you'll soon see how it all works.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#11
So I spent about 30 minutes screwing around with the music options and the three different buttons - Queue (q), Play (p), and select (enter).

It might be my setup, or the Alpha build, but there seemed to be little rhyme or reason to when a song started playing. Some started when I selected them once, some twice, etc. I have a feeling this selection issue is a bug but I want to look at it some more. As it is, Autoplay next did nothing when I toggled it that I could discern from the list - but that may have been because of this issue.

However, the actual queuing of items is seems very non-intuitive. There's little to no reason as to why selecting a song would enqueue the entire album. I haven't seen anything that works that way - normally queueing or playing the parent container (be it an album or genre or year or whatever) would play everything underneath.

I'm going to rework my comments/suggestions in my first post after I have some time to mess around a bit more, but I think my suggestions are actually different than the way it's currently working.


My suggestion would work like this.

Albums are A, B, C
Songs for those albums are A1, A2, B1, B2, C1, C2, etc.

User does the following:
- SELECT on A1
- QUEUE on A2
- QUEUE on B
- PLAY on A3

This would happen (*= now playing):
- A1 added to queue, immediately starts playing.
- A2 added to queue. (Queue: A1*, A2)
- B (entire album, in track order) added to queue (Queue: A1*, A2, B1, B2, ...)
- A3 begins playing immediately, put on the front of the queue. (Queue: A3*, A1/A2?, B1, B2, ...) (This would need a toggle to determine if play kept the currently playing song in the queue or dropped it from the queue).

Now, if this was the case instead:
- SELECT on A1
- QUEUE on A2, B
- PLAY on C

This would happen:
- A1 added to queue, immediately starts playing.
- A2 added to queue. (Queue: A1*, A2)
- B (entire album, in track order) added to queue (Queue: A1*, A2, B1, B2, ...)
- C (entire album, track order) added to the front of the queue. First song (C1) begins playing immediately (Queue: C1*, C2,...., A1/A2, B1, B2, ...)

Now, what happens when you press select when a queue exists. That's a good question. Initial thought is Select and Play in this instance both do the same thing (push stuff onto the front of the queue) but one removed the currently playing song and one doesn't. Alleviates the need for a toggle and provides consistency.

I'll test more and see how things work now...but it's not all that easy since things seem to get added queued (i.e. folders/albums) randomly.
Reply
#12
If autoplay next item is enabled, then clearly we have to queue the entire album when any song from that album is played, else it won't play the next track.

Start XBMC and go into any folder.
Press SELECT on a track (remembering that SELECT as default is PLAY).
Hit SPACE to switch to the now playing list.

See how it's queued everything as you have "Auto play next item" enabled.

Now, clear the queue, disable "Auto play next item" and repeat the same procedure.

Makes sense now, no?

Understand the current behaviour, why it does what it does etc. then start thinking about how you'd do it, given that for most users, auto-playing the next track is what they expect to happen.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#13
I was unaware that was the functionality of Autoplay Next and it was purposeful. It's not documented anywhere that that is what the setting is for so I was under the impression (from the discussion above and in other threads) it had something to do with how things were played (in regards to playing in and out of order of a queue). The main confusion point is that (based on how the terminology we've been using) you're NOT autoplaying all. You're auto-QUEUING all.

Anyway, I was doing exactly what you said going back and forth to see the functionality for around 30 minutes, as I noted, to try to discern the functionality. If it takes that long to try to figure out what should be a setting that 'everyone expects to happen' it either needs to be better documented or renamed to something clearer (even 'Enqueue All' or similar).

Either way, I'm going to add this to the wiki based upon the description above when I have a chance over the next few days because there's no reason something as basic and essential as this (i.e., how queueing, playing, etc. works for the music portion of XBMC) should be in the documentation in a matter that's clear to the end-user.

Thanks for the clarifications. As it is, I can get things to work the way I want it appears. I never actually cared about altering functionality, to be honest, and was more making the suggestion in a logically laid out way based on what I saw on other threads that people were asking for in a poor way (which I know understand why and the confusion).

Heck, only thing I want in music is smart playlists Smile (a la pandora or musicip (RIP))

Thanks again Jon.
Reply
#14
I know this topic is pretty old but, I had suggestion.

Could a "Play Next" option be added in the context sensitive menu?

This option wouldn't interrupt/delete any current items in "now playing" or playlist and it would just play the individual song you select next. After the "Play Next" song is finished, then things return to normal in "now playing" or playlist.
Reply

Logout Mark Read Team Forum Stats Members Help
Music Playlist Queue/Play Suggestions0