Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature request] Play in order tracks in the tracks tab starting from the pressed track #1019

Open
I-G-1-1 opened this issue Jan 13, 2025 · 3 comments

Comments

@I-G-1-1
Copy link
Contributor

I-G-1-1 commented Jan 13, 2025

This is a feature request to be able to finally use daily Finamp.

Normally on my mac on the Music app I go to "tracks view" sorted by "last added tracks" and I start to listen to music in order starting from the last added track.

I would like to be able to do the same in Finamp as it is the way I usually prefer to listen to music:

  1. open Finamp
  2. go to Tracks tab where the tracks are sorted by "last added tracks" (or sorted in any other way)
  3. start playing a track at some point in the tracks sorted list
  4. at the end of the track Finamp should play the next track based on the way the tracks list is sorted

I think this should be a basic behaviour for a Music app so this issue prevents me from adopting Finamp for daily use.

I know there was a similar feature request in the past, but I couldn't find it and I really need this feature, so here I'm to ask it again.

Thanks

@Chaphasilor
Copy link
Collaborator

The existing feature request is here: #502 :)
Depending on your library size, you could work around this by using the offline mode, which does behave exactly like you're describing. The current issue is that there is a limit to how large the queue can get (~1-2k tracks on iOS and ~10-12k track on Android) before the app becomes unresponsive. That means we need to implement some sort of dynamic queue loading, that loads new tracks as the queue progresses.

@I-G-1-1
Copy link
Contributor Author

I-G-1-1 commented Jan 13, 2025

The existing feature request is here: #502 :)

Thanks, I didn't search very well after all :). At least It was a more than one year old topic.

... you could work around this by using the offline mode ...

as I understand I'll need to download the tracks on my device to use the "offline mode". That could be a problem as I was trying to use Finamp for streaming directly from the server.

The current issue is that there is a limit to how large the queue can get (~1-2k tracks on iOS and ~10-12k track on Android) before the app becomes unresponsive

I'm using Android, my library has far less tracks than 10K.

That means we need to implement some sort of dynamic queue loading, that loads new tracks as the queue progresses.

Really I didn't think that a behaviour that for the end user seems so simple (as it's the default behaviour in a lot of "local storage" players) could hide such a huge complexity.

I also read again your comment in the original feature request and I see also the difficulty in switching between shuffled and ordered playback after the queue has been established.

I'm not a programmer, so I really couldn't help on this but It's definitely a feature that I would like to see implemented if possible.

@bomdia
Copy link

bomdia commented Jan 17, 2025

@jmshrv
I have the same problem, I order the song list to have the last added tracks at the top of the list and I expect that when I tap on a song to play it the queue generated should be from the current ordered song list and not some weird order, as a developer, i don't know much on flutter and dart to help with but, i suggest a logic to solve the current problems:

  1. create a local list of the tracks and some relevant metadata
  2. sync this list with the jellyfin server
  3. use the local list for ordering and thing
  4. use the ordered list as base to generate the queue
  5. the list and queue are basically virtual you load only some tracks at a time and only show the metadata for the rest

this approach consent to have a high performant list and player from the opening of the player as it is virtual you don't need to limit it to the user as it is implemented in a transparent way, in anycase in a normal circumstance you only need 3 tracks loaded in the player service the selected track the track before and the track after, while to the user you show about 10-15 elements so you need to load about 30 - 50 element to permit a smooth scrolling and because the list is local and synced and not remote you don't have to compromise on the access time to the list metadata

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants