Jump to content

Recommended Posts

Scarface1
Posted (edited)

I have a very long playlist, with 2000+ songs (I listen to a lot of music, okay) and I've noticed that once you hit Shuffle, the list of queued songs only goes up to around 1000. Fair enough, but I've noticed even after multiple shuffles that songs later on in the playlist aren't sampled by the shuffle. 

It's much more apparent when sorting by Title instead of Playlist Order, because all the songs in the queue have letters in the first half of the alphabet.

Basically it results in me only hearing the first half of my long playlist whenever I shuffle it, which is a shame because I'd like to hear my newly added stuff also.

Any ideas for a solution or a fix? If you need any more information just ask. Thanks.

Edited by Scarface1
Posted

Hello Scarface1,

** This is an auto reply **

Please wait for someone from staff support or our members to reply to you.

It's recommended to provide more info, as it explain in this thread:


Thank you.

Emby Team

Posted

Hi, we are looking into this. Thanks for reporting.

  • Thanks 1
visproduction
Posted

Just a guess:
modules/common/playback/playbackmanager.js 
IsNotFolder

getItems use of AlbumID... If AlbumID is missing in playlist data, does that stop the max number at the last valid song with an AlbumID value? Does the shuffle function get a lower max variable?  This would explain only the first part of a playlist being recognized because item #98 out of 200 has no AlbumID, so max variable =97 instead of =200.

Snip
===
mergePlaybackQueries({ParentId:firstItem.Id,Filters:"IsNotFolder",Recursive:!0},queryOptions),signal):"Audio"===firstItem.Type&&firstItem.AlbumId&&firstItem.SupportsResume&&1===items.length&&!getPlayer(firstItem,options).isExternalPlayer?promise=(serverId=_connectionmanager.default.getApiClient(firstItem.ServerId)).getItems(serverId.getCurrentUserId(),{Fields:PlaybackItemFields,ParentId:firstItem.AlbumId,Recursive:!0,IncludeItemTypes:"Audio"},signal).then(function(episodesResult){return updateResultSetStartingPoint(episodesResult,firstItem,options,isQueueing)}):

 

If a lower max variable is made, then the playback list shuffle will be limited.  The return Math.floor math works fine, but it requires a correct max variable.

Snip
===
function(min,max){return Math.floor(Math.random()*(max-min+1)+min)}(0,items.length):0);var firstItemApiClient,firstItem=items[playStartIndex];firstItem=firstItem

 

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...