Skip to content

Feature/smartshuffle #1736

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

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

federidos
Copy link

The original random shuffle in ShuffleMode::All and InsideAlbum has been replaced. Songs are now ordered based on:

  • Play count: tracks with fewer plays get higher priority.
    
  • Time since last played: older tracks are favored.
    

Exponential curves and dynamic adjustments are used to balance the ordering and reduce frequent repetition.

Previously, each time the app restarted, a completely new shuffle list was generated, ignoring recent playback history. This increased the chances of repeating recently played songs, while others could remain unplayed indefinitely. The new approach aims to mitigate this imbalance, especially in large playlists.

The ShuffleMode::Off and ShuffleMode::Albums remain unchanged.

@jonaski
Copy link
Member

jonaski commented May 1, 2025

The unit tests fail. Also, I think this needs to be optional.
Formatting is wrong, indent should be 2 spaces, not 4. Variable names should be snake case, not camel case.

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

Successfully merging this pull request may close these issues.

2 participants