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

Reply via email to