This script adds weighted shuffle functionality to cmus (C* Music Player). It prioritizes songs based on a score that you assign to them on the fly.
The script attaches to cmus via the status_display_program option to keep track of the songs played. Each time a track transition occurs, a new song is picked by weighted shuffle (weight is calculated as 2 ** score) and added to the queue. When shuffling, songs with higher scores have an exponentially higher probability of being played.
The script provides special commands to increase or decrease the score of the current song and to play the previous song: