Jump to content

Poweramp Up Next Songs Feature


Jplayer

Recommended Posts

Hi, I was wondering if Poweramp has an up next songs feature similar to Spotify. To clarify I know Poweramp has a queue feature to play songs in a particular order or an up next section but what I'm referring to is I shuffle a playlist that I have and I want to view the order the songs will play in without specifying a certain order. Essentially I just want to be able to see the order that the songs will play in without manually adding a specified order with the queue. In addition once this list can be viewed, the ability to move songs around in this list would also be very convenient. E.g. I want Song A to play as the fourth song on deck instead of the third.

 

The reason I find this helpful is sometimes when I shuffle my playlist I want to see what songs are coming up next. Depending on the people I'm with I may want certain songs to play or not to play. If this is already a feature I do apologize as I have been looking far and wide with no luck. Thanks in advance. 

Link to comment
Share on other sites

There has been much discussion about such a feature, and hopefully it's something that Max may be able to devote a bit of time to, perhaps sooner rather than too much later?

Building a complete list of all the songs that are coming up, and also of what has been recently played, would not be especially difficult. Indeed, for shuffling All Songs an entire list needs to be prebuilt to avoid repetitions, and that list is available internally in the code already. Displaying such a 'running order' or 'now playing' list in a similar format to the All Songs Category would also be relatively easy (sorry if I'm oversimplifying your work here Max!). That would allow you to scroll back and forth through the entire list of already-played and pre-planned songs, and it could even allow skipping around that list by tapping on any song title to recommence playback from that point.

What would be much more complex though would be your second point - i.e. allowing that order to be changed at will. Any such list would merely be a simple copy, or a reflection, of the playback sequence that you originally initiated by your choice of Library Category and the various List Options sort orders that you have in place. Making any alterations to that planned sequence would completely break the fundamental playback hierarchy that Poweramp uses, which is to listen to all the songs in one Category, then the next in a predefined order, and so on until everything has been played.

For example, if you were listening using the 'Years' category, and half-way through listening to 1990 you decide you'd like to hear a few few tracks from 2011 (maybe Adele's Rolling in the Deep) then it wouldn't make any logical or programmatical sense to be able to 'move' something that only belongs in 2011 into the 1990 category.

The functionality to create your own playback order is already provided in the app though, as you correctly surmised, via the temporary Queue system. Or more permanently via Playlists. They are both simple flattened lists of songs, with no particular category structure, which allows you to add, edit, or remove songs at will.

For more discussion of this (some of it a bit meandering) please see:

Andre

Link to comment
Share on other sites

Thanks you for your reply. In regards to my first point I am glad that this topic is already in discussion and hopefully can be implemented sooner rather than later. In regards to my second point, ideally it would be optimal to be able to change any order at will but I wonder if they're are ways around it in order to not break the Poweramp hierarchy. In terms of feasibility, would it be better to only rearrange songs that are only from on category? For example, if Poweramp is programed to play every song from 1 category before moving to the next, would it break the hierarchy if the third planned song and fourth planned song switched order assuming they were from the same category? Also in regards to switching  a song mid playthrough maybe only being able to switch a "planned" song rather than a song that is currently playing may help?

 

Maybe in the long run, since Poweramp is programmed to only play one category before the next category. if a song is from a different category into the "up next" list maybe Poweramp could create a "hidden temporary playlist" adding all the songs from the next up list and playing them, making all songs technically from the same category.

 

 

Link to comment
Share on other sites

@andrewilley Poweramp doesn’t build “all songs” list internally when categories played. It’s possible to show it or add everything to queue each time, but that won’t work for very large libraries (i.e. 10k+) as there will be a associated lag (and that is why other players with now playing list have a limit on it).

Link to comment
Share on other sites

2 hours ago, Jplayer said:

ideally it would be optimal to be able to change any order at will but I wonder if they're are ways around it in order to not break the Poweramp hierarchy. In terms of feasibility, would it be better to only rearrange songs that are only from on category?

As I said before, that functionality already exists, it's called the Queue. If you want to mess around with re-ordering stuff to your heart's content, just add it all to the Queue - you can add multiple items or albums/etc at once - and then manipulate the songs from there. Or use a Playlist if you want to make your work more permantent.

However if instead you want to play music based on Categories - such as Albums for example, which are arranged using the List Option sort orders for each level - then you can't suddenly decide to move songs around. Anything moved from its arranged position - such as making Track#6 suddenly play as Track#2, or making ABBA's Dancing Queen randomly relocate to somewhere inside an Ed Sheeran album - would no longer be as per the defined Sort Order and would thus have broken the playback hierarchy order.

Andre

Link to comment
Share on other sites

2 hours ago, maxmp said:

It’s possible to show it or add everything to queue each time, but that won’t work for very large libraries (i.e. 10k+) as there will be a associated lag

Yes, I was concerned there could be a processing delay issue, but PA does seems to be able to handle such tasks relatively quickly - I assume it merely inserts index pointers into a database row? Anyway, on my old Galaxy A70 phone I added all 8,500 songs from my Library into the existing Queue in one go (while a song was currently playing) and it was too fast to measure visually, but I'd guess at less than a quarter of a second, in the background?

One possible solution to account for really huge libraries might be to construct such a list on-the-fly, only generating it at the point when the user asks to see the Now Playing list? No point in continuously updating it if the user doesn't want to see it yet. The first screenfull of items could be displayed instantly, and the rest of the list could be building in the background long before the user even has a chance to make a first finger-swipe. Again, assuming we're only talking about index pointers.

Andre

Link to comment
Share on other sites

Another usage case for creating some new code to build this sort of 'extended index list' of forthcoming content would be to better support the upcoming songs/queue features on smart watches and in Android Auto, etc. Currently using these lists only shows as far as the end of the current Category - basically the same list that you'd see by tapping on the cover art on the player screen. To be fair, my watch only supports quite a short upcoming list (40 items) but Android Auto allows 400 or so items to be viewed. In either case though, the systems can clearly handle a lot more than just 10-15 songs from the current album.

I fully agree there's no point in wasting time continuously generating such an extensive indexed list until it's actually wanted though. Out of interest, what sort of index-building delay would be likely for a really large library - say 100,000+ items? My paltry 8,500 song collection seems to be able to add the entire contents of my root music folder, with all of its subfolders sorted as per the List Options orders, into the Queue index in less time than I can measure. As long as the process is quicker than a user's potential reaction time in scrolling all the way down a huge results list, it would seem to be something of a moot point though. Once generated, I assume the indexed list could be displayed by the same sort of code that already presents the All Songs list?

Perhaps not immediately, to save on development time, but I think it'd be nice if the index building process could insert a couple of pointers within the list whenever it starts processing a new Category item. So the resulting lengthy songs list could be optionally punctuated with brief Category sub-header breaks, such as lines like:

Genre: Rock
Album: Bat Out of Hell
      or
Artist: Electric Light Orchestra
Album: Out of the Blue
     or
Year: 1985
Album: Brothers in Arms
     or
Playlist: My 80s Favourites
     or
Most Played: Songs Played 7 Times

It would just make the list a bit more manageable and interesting to read (excluding all-song shuffled lists obviously). But as I said, that could be for later addition if it turned out to be a lot of extra work. 

Andre

Link to comment
Share on other sites

@andrewilley 1. Poweramp now playing list (as it sees it in most cases) == the target category list (the one which is available by swiping down/cover press). Shuffle All uses All Songs and folder hierarchy shuffled playing uses a specific prepared flat list, but those are only exceptions for this rule. So no point in showing this/implementing separate list to show current played list.

2. Some extra intermediate list. We have it - it's Queue. It already can be used as Now playing list in other players, but with few options it can completely mimic the approach:

  • force all playback only from Queue (no any other lists will be ever played, player plays only Queue)
  • all playback commands (track click, header >, shuffle changes, etc.) repopulates Queue
  • edge cases should be polished and some options should be disabled in this mode
  • we write a ton of extra knowledge base articles explaining 2 modes of playback in Poweramp.
Link to comment
Share on other sites

[Point (2) 'Queue-Only Mode' response now moved to a more suitable thread]

1) Probably more people though have asked for a 'now playing' list/log which would provide a detailed indication of the upcoming planned sequence, and which would work in ANY playback mode - regardless of music categories, playlists, top rated, shuffle modes, etc. Simply using the existing cover-press or swipe-down function to return to the List does none of that, it merely shows you the currently playing category, in its List Options order. It gives no clear indication of what will happen after the current album/folder/playlist/etc has finished (using 'Advance Category') nor does it even necessarily show you the very next song that will be heard - for example when Shuffle Songs/Categories is in use, you have no way to see what song or category will come next, or what occurred previously.

For example, when listening to Artists>Albums in 'Shuffle Songs/Categories' mode there is currently no way to even see what song(s) will be played next, nor what album has been chosen after the current one. Nor can you look back a bit to see what was played a few tracks ago. The only way to see any of that is by physically interrupting the track you are listening to by using << or >>.

This all applies in the main phone interface of course, but perhaps even more importantly in Android Auto and other remote interfaces (e.g. watches) too. So if you are currently listening to the last track of an album, there is no list anywhere that shows if there is even anything to be played next, the track list simply ends right there.

Andre

Link to comment
Share on other sites

@maxmp I've copied your last comment over into one of the more recent 'Queue Only' requests threads too, so we can keep the two discussions separated for clarity.

So this current thread targets only the request for a simple flat list showing all the upcoming songs that Poweramp is intending to play during the current session. Such a list would be derived from the user's chosen Category and List Options, the Repeat/Shuffle modes in use, etc. Basically it would be nothing more than a simple list of the songs that would be played if you repeatedly pressed the >> or << buttons until you ran out of music

The separate 'Queue Only Mode' discussion already exists in other Feature Requests threads, and I've copied the comment over to be continued in https://forum.powerampapp.com/topic/21741-queue-only-mode/ . I suspect this feature would require a good deal more coding and testing though as it's a major operational change, and thus perhaps be slightly longer term.

Andre

Link to comment
Share on other sites

@maxmp I don't think there'd be any need for a new button; in one of the other similar threads, it was suggested that the TrackCounter/TotalTracks area (the item between Timer and Repeat buttons) would be perfect if it was simply made a tappable item instead of just text. Any resulting 'Now Playing' list which showed the current song within the overall library - would be a perfectly logical visual expansion from that item.

I do understand the concern that people will immediately want such a list to be editable, but it would clearly need to be a flat read-only list - essentially no different to any other Library Category list, none of which can be individually rearranged either. As you rightly say, that sort of functionality is something for the Queue or Playlists only. 

Actually, that was another reason I suggested including little sub-headers at the break points when new categories/albums begin, as it would further reinforce this is an informational list rather than an editable tool. So if you were playing using the 'Years' Category you'd see break point subheading for each album and you could see where the category switches from 1999 to 2000, or if playing in Genres when 'Pop' changes to 'Progressive Rock', etc. It clearly wouldn't make any visual or conceptual sense to think about moving a 2020 song into a 1980 heading, or to move a Classical track into Heavy Metal. 

I assume such a Now Playing list could be made tappable though, to at least provide the ability to change playback to a new location within the already-planned sequence? 

Andre

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...