Hi, I've been using ashuffle with Moode Audio on a 200+ artist library
and find that the same artists tend to cluster together even with the
window algorithm.
I'd like to propose a new tweak: artist-cooldown=N, which would prevent
the same artist from appearing within the last N picks.
Thanks to AI, I have a working proof-of-concept implemented as a Python drop-in, and
also a proposed C++ implementation ready as a patch to shuffle.cc/shuffle.h.
Happy to open a PR if there's interest.
The C++ approach:
- Adds
unsigned artist_cooldown = 0 to the Tweak struct (default 0 =
disabled, fully backwards compatible)
- Maintains a circular buffer of the last N artists played
- Filters pool candidates by artist cooldown in Refill()
- Degrades gracefully when library has fewer unique artists than cooldown
Hi, I've been using ashuffle with Moode Audio on a 200+ artist library
and find that the same artists tend to cluster together even with the
window algorithm.
I'd like to propose a new tweak:
artist-cooldown=N, which would preventthe same artist from appearing within the last N picks.
Thanks to AI, I have a working proof-of-concept implemented as a Python drop-in, and
also a proposed C++ implementation ready as a patch to shuffle.cc/shuffle.h.
Happy to open a PR if there's interest.
The C++ approach:
unsigned artist_cooldown = 0to the Tweak struct (default 0 =disabled, fully backwards compatible)