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 plugins@lists.slimdevices.com http://lists.slimdevices.com/mailman/listinfo/plugins