This is a patch versus mserv 0.35.
Without this patch, constants are used for (UN)HEARD
songs. They default to 75% or 55% for UNHEARD
(depending on the version of mserv), and 50% for HEARD.
With this patch, an expected value is used instead.
The effect is that if somebody rates a couple of songs
of an album SUPERB, chances increase that (s)he'll get
to hear more music from that album. And if somebody
rates a couple of songs of an album AWFUL, less music
will be played from that album.
The expected value is basically an average of the songs
within the same album that the user has actively rated.
If only a few songs have been rated, the average is
pulled towards the previously used constant. Thus,
just because you rate one song SUPERB won't mean all
songs in that album will be counted as being SUPERB;
they just get a small bonus.
Also, if you happen to dislike songs from one album,
you have to rate three or more BAD / AWFUL before your
rating has any effect. This is to prevent one low
rating from making it so that you'll never hear
anything from that album again.
Since the patch traverses the full tracks list to find
all other tracks within one album, it will scale badly
as the number of tracks grow. If there is a better way
of finding all tracks from one album I'd love to know
about it. If not I'll have to add some sort of caching
to improve performance.
I've tested it on a small music collection and it works
as intended. Before testing it on a large one I need
to resolve the scaling issue.
Any feedback regarding either the idea or the
implementation is much appreciated.
Log in to post a comment.