As much as I like the SmartMix plugin, I find myself not actually using
it. The reason for this is that I'd like to have it "play what I like",
and not "any song similar to xyz, no matter if I like it".
The cause for this is the way ratings are handled:
- In TEN, ratings are 0-10, the default being 5. Ratings <5 are
negative
- In LMS, ratings are 0-100 (although from a user's perspective, it's
0-5 (or 0-10) stars, which maps to 0,20,40,...). What they mean depends
on the user doing the rating, for me, it's the same principle as TEN
uses (i.e. I don't want to hear songs with <= 2 stars)
The SmartMix plugin maps the values in an (for me) unexpected way:
divide by 20, and add 5 to the result. This means that songs I hate (1
star) get an above-average positive rating at TEN (6 out of 10). It also
compresses all LMS ratings in a narrow range( 5-10) at TEN, potentially
giving the selection algorithm less information to decide which track is
preferred to another.
The solution would be actually pretty simple:
- let the user decide how the mapping works (1:1, the way it does now,
...)
- as a consequence, it would make sense to optionally limit the catalog
export to certain LMS ratings (e.g. > 60 in my example)
Here's a hard-coded solution implementing the 1:1 mapping, and the
limit > 50 (original lines commented out):
Code:
--------------------
Importer.pm line 131:
# TEN ratings are 0-10, with default being 5. <4 is negative rating
# LMS ratings are 0-100, all positive - we need to map these values
my $rating = $track->persistent->rating;
if (defined $rating && $rating <= 100 && $rating >= 0) {
#$rating = int(($rating + 10) / 20);
$rating = int(($rating + 5) / 10);
# we don't handle negative ratings yet
# $item->{rating} = $rating + 5;
$item->{rating} = $rating;
}
}
push @data, {
item => $item
# };
} if( $item->{rating} && $item->{rating} >= 5 );
--------------------
This works very well for me. The only trade-off is that, if you limit
the export, there are obviously a lot fewer tracks to start your Smart
Mix with (similar to excluding genres)
I don't know if this use case of SmartMix is something many people are
interested in. If it is, it's be fairly little effort to implement
(basically, 2 more user preferences, plus above code with some ifs)
Michael, what do you think?
------------------------------------------------------------------------
Roland0's Profile: http://forums.slimdevices.com/member.php?userid=56808
View this thread: http://forums.slimdevices.com/showthread.php?t=97668
_______________________________________________
plugins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/plugins