INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: smart list help  (Read 4108 times)

joh

  • World Citizen
  • ***
  • Posts: 100
smart list help
« on: January 02, 2009, 07:20:32 am »

I would like to create a smartlist that randomely selects a number of my favourite albums and plays them in their entirety. 'Favorite albums' could be defined as track-rating being in average say 3,5, or having say 3 or more tracks that I have rated 4 or 5 and no tracks having been rated 1 or 2. I recall reading a post on this some time back, but can't seem to find it.

Could anyone give me some advice?

New years greetings from Olle in cold Sweden
Logged

mabes

  • Galactic Citizen
  • ****
  • Posts: 287
Re: smart list help
« Reply #1 on: January 02, 2009, 12:53:56 pm »

I don't think it can be done, I've tried something similiar. I think I posted about it and no one had an answer. You could have it play all the favorite albums in alpha order, but not choose a random selection of albums. And unless it's new, there is no Limit Number to ____ Albums

The ability to sort a smartlist by 2 criteria could be very useful in MC. In this case it would be sort by Artist, THEN sort by random. The 2nd criteria would keep the first criteria together.  Maybe less confusing would be GROUP BY ____, then SORT BY_____.

Another example, suppose you wanted to play a random list of songs from 1965 to 1970 chronologically. So you create a smartlist like Genre is Rock, Year is between 1965 and 1970. The Artists would appear in alpha order. With a THEN criteria the Artists could be shuffled with each year.
Logged

mark_h

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1854
Re: smart list help
« Reply #2 on: January 02, 2009, 01:41:52 pm »

Yeah, MC lacks album-centric processing, which is something I, and I know others, would love to see.  Personally speaking this is, for me, one of MC's biggest weaknesses right now.

Currently I export my entire collection weekly as an mpl file, calculate the album rating using Perl scripts, and then reimport the data to populate my user tag 'Album Rating'.  This allows me to play entire albums based on 'Album Rating' by selecting any track and then using the modifier ~a to expand to the entire album...

Cheers,

Mark


Logged

mabes

  • Galactic Citizen
  • ****
  • Posts: 287
Re: smart list help
« Reply #3 on: January 02, 2009, 01:58:06 pm »

Yeah, MC lacks album-centric processing, which is something I, and I know others, would love to see.  Personally speaking this is, for me, one of MC's biggest weaknesses right now.

Currently I export my entire collection weekly as an mpl file, calculate the album rating using Perl scripts, and then reimport the data to populate my user tag 'Album Rating'.  This allows me to play entire albums based on 'Album Rating' by selecting any track and then using the modifier ~a to expand to the entire album...

Cheers,

Mark




Could you give more details on how to do that? Currently I just check the album rating field as 5 Stars for the albums I select as favorites. I've selected about 50 albums, would be cool to see every album I have sorted by rating.
Logged

mark_h

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1854
Re: smart list help
« Reply #4 on: January 02, 2009, 04:28:31 pm »

Well, if you have an album rating field then it's pretty easy.

Just create a new view and 'view by album thumbnail', for instance, and 'sort it by your album rating field'...

Or create an album detail view and sort by rating field...

Either view will give you albums sorted by your rating.

For smartlists, just pull a random highly rated track and use the modifier 'Expand to full albums' and you get the album the track is from in your playlist.

Cheers,

Mark
Logged

mabes

  • Galactic Citizen
  • ****
  • Posts: 287
Re: smart list help
« Reply #5 on: January 02, 2009, 04:37:59 pm »

Well, if you have an album rating field then it's pretty easy.

Just create a new view and 'view by album thumbnail', for instance, and 'sort it by your album rating field'...

Or create an album detail view and sort by rating field...

Either view will give you albums sorted by your rating.

For smartlists, just pull a random highly rated track and use the modifier 'Expand to full albums' and you get the album the track is from in your playlist.

Cheers,

Mark


I want to try your way, I already have a View Scheme and Playlist for albums I've rated. But your way albums will automatically get rated based on the number of highly rated tracks.
 
Logged

mark_h

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1854
Re: smart list help
« Reply #6 on: January 02, 2009, 04:52:30 pm »

That way is a lot more involved...

Steps are:

Select your entire library
Export library as a playlist (I use mpl format)
Write a script to parse the playlist, calculate album averages and output a new playlist containing the details.
Import that playlist into MC and it will update tags to match.

Then your smartlist can work on that data as required.

Here is an example of the output of my script which I import into MC:

<Item>
<Field Name="Filename">Z:\My Music\3\The End is Begun\3 - The End Is Begun - 02 - The End Is Begun.flac</Field>
<Field Name="Album Rating">4.78</Field>
<Field Name="Album Played">2</Field>
</Item>
<Item>
<Field Name="Filename">Z:\My Music\3\The End is Begun\3 - The End Is Begun - 03 - Battle Cry.flac</Field>
<Field Name="Album Rating">4.78</Field>
<Field Name="Album Played">2</Field>
</Item>

You'll notice that the 'Album Rating' and 'Album Played' fields are my own fields and need to be applied to every track of the album.  That way you can pull any track from the album in a smartlist and use the 'expand to full albums' modifier to get the album.

I cannot supply the full scripts as they are tailored to my system and but it wasn't too difficult to write.  Just ensure the <Field Name="Filename"> entry on in the input file matches the output file and the tags will be written to the correct record.  And make a backup before doing the import to ensure everything works!

Mark


Logged

gappie

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4580
Re: smart list help
« Reply #7 on: January 02, 2009, 05:05:18 pm »

I would like to create a smartlist that randomely selects a number of my favourite albums and plays them in their entirety. 'Favorite albums' could be defined as track-rating being in average say 3,5, or having say 3 or more tracks that I have rated 4 or 5 and no tracks having been rated 1 or 2. I recall reading a post on this some time back, but can't seem to find it.

Could anyone give me some advice?

New years greetings from Olle in cold Sweden
i could think of one, a bit forced, solution.
make a smartlist with all your 4 and 5 rated songs, and use a limit advanced with -1,2,[album],[album artist (auto)] (this takes two songs of any album with rating 4 or 5), call it Step1
make an other smartlist which has all your 1 and 2 rated songs. and say it should use full albums (this takes all the albums with a song rated 1 or 2), call this Step2
make a last smartlist with all your 4 and 5 rated songs. but exclude the playlists step1 and step2 (this should give you all the albums with 3 songs rated 4 or 5 from albums with no song rated 1 or 2). and make it full album.

guess this last list could do what you want. i hope.

 :)
gab
Logged

marko

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 9143
Re: smart list help
« Reply #8 on: January 03, 2009, 02:03:56 am »

Got your PM...
The steps outlined here show how to get a library browser view in 'details' mode using v12. Was that maybe what you recall reading?

If you view an albums view in details, MC will present album ratings as averages of all rated tracks in an album.

I use a view like this to populate my own 'Album Rating' field.

The results can get seriously iffy if an album contains even one unrated track, so, I created a smartlist that lists all unrated tracks and expands to full albums. This smartlist is then excluded from the album rating view.

As we're using MC 13, you might like to try the attached view.
Save the zip file and extract the file it contains to your Program Files\JRiver\Media Center 13\Data\Saved Views\ folder.
Fire up MC, right click on Audio, choose "Add library view" and select the "Albums by average track rating" view from the thumbnails presented.

This view does not contain the smartlist exclusion mentioned above as smartlist\playlist references do not travel well.
Create your own [album rating] field and populate it accordingly, then create lists that key off the album rating field.

Convoluted, but once set up, a cinch to maintain.

-marko

mark_h

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1854
Re: smart list help
« Reply #9 on: January 03, 2009, 03:12:28 am »

I should add that my script does a lot of weighting, based on lots of other fields I use, such as favourite artist, favourite track, the track duration and so on to generate my album ratings.  I started out with something similar to Marko's approach but found it didn't fit my needs and was forced to resort to external scripting.

Cheers,

Mark
Logged

joh

  • World Citizen
  • ***
  • Posts: 100
Re: smart list help
« Reply #10 on: January 03, 2009, 07:17:15 am »


Thanks for all help here!
I'm going to make use of several of the approaches. Can't say enough about how impressed I am with all you guys - your knowledge and willingness to be of help. Have a great 2009! /OLle
Logged

hit_ny

  • Citizen of the Universe
  • *****
  • Posts: 3310
  • nothing more to say...
Re: smart list help
« Reply #11 on: January 03, 2009, 10:29:46 am »

I should add that my script does a lot of weighting, based on lots of other fields I use, such as
- favourite artist,
- favourite track,
- the track duration and so on

to generate my album ratings.

Care to describe how you do the weighting ?
Logged

mark_h

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1854
Re: smart list help
« Reply #12 on: January 03, 2009, 10:37:03 am »

Care to describe how you do the weighting ?

Code: [Select]

                                if ( $favourite_artist =~ /yes/i )      #-- Give favourite artists a boost --------------#
                                {
                                        $rating *= CHART_C_ADJUST_FAVOURITE_ARTIST;

                                        if ( $chart_v_debug & DEBUG_RATING )
                                        {
                                                printf( STDERR "        ADJUST: FAVOURITE ARTIST: $rating\n" );
                                        }
                                }
                               
                                if ( $favourite_album =~ /yes/i )       #-- Give favourite albums a boost --------------#
                                {
                                        $rating *= CHART_C_ADJUST_FAVOURITE_ALBUM;

                                        if ( $chart_v_debug & DEBUG_RATING )
                                        {
                                                printf( STDERR "        ADJUST: FAVOURITE ALBUM: $rating\n" );
                                        }
                                }


And so on...

The biggest change I make to rate albums is to use the track duration as a weighting, thus longer tracks have more influence on the album rating and short tracks less.  This gives better overall results in my opinion.

One day I'd love to do all this *inside* MC :D

Mark
Logged

hit_ny

  • Citizen of the Universe
  • *****
  • Posts: 3310
  • nothing more to say...
Re: smart list help
« Reply #13 on: January 03, 2009, 01:50:45 pm »

Code: [Select]

                                if ( $favourite_artist =~ /yes/i )      #-- Give favourite artists a boost --------------#
                                {
                                        $rating *= CHART_C_ADJUST_FAVOURITE_ARTIST;

                                        if ( $chart_v_debug & DEBUG_RATING )
                                        {
                                                printf( STDERR "        ADJUST: FAVOURITE ARTIST: $rating\n" );
                                        }
                                }
                               
                                if ( $favourite_album =~ /yes/i )       #-- Give favourite albums a boost --------------#
                                {
                                        $rating *= CHART_C_ADJUST_FAVOURITE_ALBUM;

                                        if ( $chart_v_debug & DEBUG_RATING )
                                        {
                                                printf( STDERR "        ADJUST: FAVOURITE ALBUM: $rating\n" );
                                        }
                                }


Don't understand  ?

Why would an artist or album being a favourite of yours bias album ratings ?

An album is a favourite based on how much you like the album so thought that was all there was to it ie album rating based on its tracks rating average. Incidentally, do you have a cut off value which if crossed makes an album favourite else not ?

Favourite artist(s) is something i've not understood how you do either, presumably its based on larger amt of tracks that you rated higher than not.

But then what do you do when compared to artists that have fewer tracks in your library ?

You could take the avg of the track ratings and come up with an artist rating but i don't see how useful that can be.

The biggest change I make to rate albums is to use the track duration as a weighting, thus longer tracks have more influence on the album rating and short tracks less.  This gives better overall results in my opinion.

I find it curious you do that as i've found the longer a track plays the better it has to be to keep my attention. Find this applies if its more loop oriented than not. But still feel a short track has a slightly higher proabability of scoring higher than a longer one. In addition, albums with a shorter number of tracks fare better than longer ones.  I rationalise this by telling myself that for the duration of play they got the job done, fewer tracks means less filler.

Wish there was a way to find out what the median number of tracks was amongst favourite albums or even the track duration amongst favourite tracks.
Logged

mark_h

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1854
Re: smart list help
« Reply #14 on: January 03, 2009, 04:42:39 pm »

Don't understand  ?

Why would an artist or album being a favourite of yours bias album ratings ?

Why wouldn't it?  Like most people I am positively biased towards my favourite artists/albums and I want my album ratings to reflect that.  Then when I generate random albums to play based on album rating, last played etc, weighting my favourite artists/albums positively means they get played more often...

Ultimately, this is my collection, after all and I can do what I want ;)

Quote
An album is a favourite based on how much you like the album so thought that was all there was to it ie album rating based on its tracks rating average. Incidentally, do you have a cut off value which if crossed makes an album favourite else not ?

The tag 'favourite album' or 'favourite artists' comes from a lifetime of listening to such artists/albums and deeming them to qualify; there is no automation to that aspect.  To quote one of my favourite bands, "I know what I like, and I like what I know."

Quote
Favourite artist(s) is something i've not understood how you do either, presumably its based on larger amt of tracks that you rated higher than not.

As noted above, it's a specific choice of mine and I then manually tag the artist as a favourite.  That tag gets passed out to my scripts and affects the overall album weighting.  I should note that the weightings are very small, only a % point or so and only have small positive effects, but positive effects nonetheless.  Certain genres also get weighted, both positively and negatively.

Quote
I find it curious you do that as i've found the longer a track plays the better it has to be to keep my attention. Find this applies if its more loop oriented than not. But still feel a short track has a slightly higher proabability of scoring higher than a longer one. In addition, albums with a shorter number of tracks fare better than longer ones.  I rationalise this by telling myself that for the duration of play they got the job done, fewer tracks means less filler.

I think weighting by duration makes a lot of sense.  You are slicing the album into duration chunks and rating based on the quality of those chunks, rather than unspecified track durations.  Thus if longer chunks have higher ratings it means more of the album is good and the overall album rating is higher and can offset filler tracks that are short and pointless.  If weighted by smaller tracks you could have an album with 15 tracks, all of which are rubbish, and then one very very short but brilliant track which would skew the entire rating unjustifiably upwards... whereas with my scheme the album would be correctly weighted as rubbish.

Quote
Wish there was a way to find out what the median number of tracks was amongst favourite albums or even the track duration amongst favourite tracks.

Yup.  MC *really* needs to add album-centric processing and more expression processing.  The only way to do things like I am doing now is outside of MC by exporting the entire database for processing.

Mark
Logged

hit_ny

  • Citizen of the Universe
  • *****
  • Posts: 3310
  • nothing more to say...
Re: smart list help
« Reply #15 on: January 04, 2009, 07:40:41 am »

The tag 'favourite album' or 'favourite artists' comes from a lifetime of listening to such artists/albums and deeming them to qualify; there is no automation to that aspect.  To quote one of my favourite bands, "I know what I like, and I like what I know."

Would you consider 'number of listens' & maybe skip count as an extra weighting  ?

A lifetime of listening is just that.

But it cuts both ways, listen to a track too many times and it ends up worn out but there are those exceptional ones that always sound good, given a long enough period between listens.

Also how stable is an album rating wrt to number of listens, if an album's rating did not change too much after several listens is its rating more accurate than one with fewer listens.


I think weighting by duration makes a lot of sense.  You are slicing the album into duration chunks and rating based on the quality of those chunks, rather than unspecified track durations.  Thus if longer chunks have higher ratings it means more of the album is good and the overall album rating is higher and can offset filler tracks that are short and pointless.
 
What formula do you use to weight for track durations ?

If weighted by smaller tracks you could have an album with 15 tracks, all of which are rubbish, and then one very very short but brilliant track which would skew the entire rating unjustifiably upwards... whereas with my scheme the album would be correctly weighted as rubbish.
If more tracks were bad then i rate them down, but yes the opposite of what you say would be true if duration is not taken into account, that a few bad tracks of short duration would knock the album rating down of an album that had a longer but good track.

Currently i can't easily account for track duration as a share of the pie as i do my ratings manually :(

What about the case where track durations are similar between two albums but the only difference was how many there were ?

Whether in this case averaging alone gives albums with fewer tracks, a higher score than larger albums with just as many good tracks ?

I asked this very question some time back and got an illuminating reply. Supports your view that track duration is more significant a parameter than number of tracks.


Quote
<Field Name="Album Rating">4.78</Field>

Noticed earlier that you use 2 digits after the decimal point.

So when you compare albums that have a rating of 4.7x where x is [0-9], would you say they were all similar or .79 > .78 > .77 etc ?

I used the latter approach upto the point MC offered album ratings in the library browser. a few versions back and noticed they only use one digit after the decimal point. This got me thinking whether it would simplify things by doing the same and rounding up or down.

eg. 4.7[0-4] rounds down to 4.7 and 4.7[5-9] rounds up to 4.8
Logged

mark_h

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1854
Re: smart list help
« Reply #16 on: January 04, 2009, 08:11:28 am »

Would you consider 'number of listens' & maybe skip count as an extra weighting  ?

Well I've been listening to music for about 38 years but only using MC for 5 years(?).  My playing tends to be weighted toward my newer albums which would unfairly skew the results in their favour if I counted plays.  Also, I listen to a lot of tracks which often have noodly endings and I hit skip forward at that point but can still love the tracks.  Downgrading for skips would therefore penalise tracks I actually like.

Quote
But it cuts both ways, listen to a track too many times and it ends up worn out but there are those exceptional ones that always sound good, given a long enough period between listens.

This is why I weight for favourite artists and favourite albums.  There are indeed tracks which *I'm* worn out on but that I acknowledge as classics in their genre, for their time, for their influence etc.  I can therefore downgrade the track I'm bored with but the weightings will bring it back up slightly in acknowledgement of their importance overall.

Quote
Also how stable is an album rating wrt to number of listens, if an album's rating did not change too much after several listens is its rating more accurate than one with fewer listens.

I do see this.  The more I listen to an album the better the rating gets.  New albums tend to fluctuate more than albums I've know for years, decades etc.

Quote
What formula do you use to weight for track durations ?

My weighting is quite aggressive for duration.  I power multiply the duration of every track by 1.75

Let's take an example.  An EP has 2 tracks, duration 2mins and 10mins.  I rate the 2min track at 4/10 and the 10min track at 8/10

If I just use averages I get (4+8)/2 = 6/10

But common sense to me suggests that the short track is bringing down the true rating of the EP whose majority of content is rated 8.

If we just weight by duration, we get:

((2mins*4)+(10mins*8))/12mins = 7.33

This is already a much better indication of the overall rating IMO.

However, in my current shceme I use a power rating of 1.75

Which gives us a rating for the EP of:

(2mins**1.75)*4 + (10mins**1.75)*8 =
(3.36mins*4)+(56.23mins*8) / 59.59 = 7.77

So this actually not that different from a simple duration weighting but it continues to pull the average towards the average of the majority of the album and away from the average of the minority.

Quote
Currently i can't easily account for track duration as a share of the pie as i do my ratings manually :(

Yup.  My scripts handle all the work for me so it's easy for my to adjust my constants and recalculate.  I'd *LOVE* to see MC include more comprehensive math work so we could do this internally.

Quote
What about the case where track durations are similar between two albums but the only difference was how many there were ?

Then the power function makes little difference (because all track durations are inflated proportionally) and you end up with result closer to a normal average.

Quote
Whether in this case averaging alone gives albums with fewer tracks, a higher score than larger albums with just as many good tracks ?

They will come out very similar, or indeed the same.  An album with 2 long tracks, rated 5/10 will have the same average as an album with 25 short tracks all rated 5/10.

Quote
Noticed earlier that you use 2 digits after the decimal point.

So when you compare albums that have a rating of 4.7x where x is [0-9], would you say they were all similar or .79 > .78 > .77 etc ?

MC seems to internally use two decimal points for decimal values.  In my calculations I use many more, but yes an album with 4.88/10 or 4.87/10 is essentially identical.  The decimal points just aid in sorting the results.

Quote
I used the latter approach upto the point MC offered album ratings in the library browser. a few versions back and noticed they only use one digit after the decimal point. This got me thinking whether it would simplify things by doing the same and rounding up or down.

eg. 4.7[0-4] rounds down to 4.7 and 4.7[5-9] rounds up to 4.8

For sorting, the more decimal points, the better, IMO.  Again, it's no extra work for me as the scripts handle the maths.

Album ratings are great as I now have smartlists that not only display all my albums sorted by rating, but I can now also pull random albums to play based on their ratings, last played etc.  And in these smartlists I give more weighting again to higher rated albums so that out of my collection the higher rating an album has the more likely it is to be played.  Means I always get a good album to listen to when randomly selecting.

MC rocks!  But it could rock a little harder, as we are discussing here :D

Mark

Logged

hit_ny

  • Citizen of the Universe
  • *****
  • Posts: 3310
  • nothing more to say...
Re: smart list help
« Reply #17 on: January 04, 2009, 09:33:46 am »

My weighting is quite aggressive for duration.  I power multiply the duration of every track by 1.75

Let's take an example.  An EP has 2 tracks, duration 2mins and 10mins.  I rate the 2min track at 4/10 and the 10min track at 8/10

But common sense to me suggests that the short track is bringing down the true rating of the EP whose majority of content is rated 8.

If we just weight by duration, we get:

((2mins*4)+(10mins*8))/12mins = 7.33

This is already a much better indication of the overall rating IMO.

Agreed


However, in my current shceme I use a power rating of 1.75

Which gives us a rating for the EP of:

(2mins**1.75)*4 + (10mins**1.75)*8 =
(3.36mins*4)+(56.23mins*8) / 59.59 = 7.77

So this actually not that different from a simple duration weighting but it continues to pull the average towards the average of the majority of the album and away from the average of the minority.

But 7.33 is already much closer to 8 than 4 :)

Taking duration into account makes it so.

So why use the exponential weight ?

Is it for Smoothing ?
Logged

mark_h

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1854
Re: smart list help
« Reply #18 on: January 04, 2009, 10:03:45 am »

But 7.33 is already much closer to 8 than 4 :)

Taking duration into account makes it so.

So why use the exponential weight ?

It's to recognise the effort that goes into making genuinely *good* longer tracks.  In my experience, usually the longer the track the more it's rating suffers (lots of filling etc) but if a long track is consistently good then I like to recognise that.  The power function ensures that the duration weighting increases the longer the track gets.  Of course, a genuinely bad long track will also gain the weighting and pull down the overall album rating further.

Mark
Logged
Pages: [1]   Go Up