For many years now people have been asking how to display Album Ratings, which is something MC doesn't natively support. There's been a lot of discussion about it, and many different attempts and solutions have been tried, but most of these centered on either creating a separate "Album Rating" field, or using global variables.
These approaches have drawbacks. A separate "Album Rating" field is something you have to manually edit, which should be an needless step when you've already rated your individual tracks. Global variables, while powerful, are too complicated for some people to implement, and there can be issues with using them in certain circumstances because of how they are evaluated.
There's also another, limited way. If you set the list style of the top pane of a standard view to Details, it will then summarize rating and duration if you add those columns. This does give you automatically calculated album rating and duration, but only in text, and this does not work in theater view at all.
So for those who are interested, I'd like to offer the method I've been using, which does not have any of those problems. It's simple, automatic, and works in Theater View or Standard View. It's also more flexible. I haven't seen anything like it documented on the forums before, so if you've struggled with this before then this may be a new approach for you. Some of the black magic involved I got from Mr. C, and some of it is my own.
Before the pics, a quick note... Some of what you will see deals with "Compositions". A lot of classical music consists of multiple tracks that taken together form a single piece of music, a Composition. For example, Mozart's 1st Piano Concerto consists of 3 movements, each in a separate track, and you would listen to these three tracks together as a single Composition. JRiver doesn't natively have a concept of a Composition in this way, so I created one, as I'll explain later.
To show you the flexibility of this method for displaying album ratings, I'll show you a classic music view that provides not only Album Ratings, but also album duration, along with Ratings and Durations for Compositions within the albums.
As you can see, it shows the automatically calculated rating for each album, plus the automatically calculated duration for the album. Rating is an average based on the ratings of the included tracks, and duration is calculated as the total of the durations of all the included tracks.
If you drill into an album, it shows you the Compositions on the album, along with rating and duration:
Finally here in the track view, you can see the 3 tracks that make up the Composition of Beethoven's Piano Concerto No. 1.
As you can see, this method will not only calculate this information for Albums, but also for this arbitrary grouping of "Composition" that I've created. It's flexible, and can do this for whatever group of files you point it at.
So what exactly is this Composition construct?
[Composition] is a user-defined field I created, a "calculated data" expression defined as:
listitem([name],0,:)
This works in conjunction with your naming scheme for classical music. I name my classical tracks such that the name of the composition comes first, separated from the track-specific info by a colon. So if you have the three tracks for Mozart's 1st Piano Concerto named as follows:
Concerto No.1 in F major, K.37: I. Allegro
Concerto No.1 in F major, K.37: II. Andante
Concerto No.1 in F major, K.37: III. Allegro
They will all automatically share the [Composition] value "Concerto No.1 in F major, K.37"
So let's get to how the views themselves are constructed. I used Theater View for this example, but it can just as easily be done in Standard View. Here's the view structure:
Now, here's how the Album and Composition levels are built:
The secret to getting these summarized ratings and durations is the little-known, seldom-mentioned "GroupSummary" function that is part of the expression language. GroupSummary will intelligently summarize certain types of data, for a defined group of files. Each item, or set of items, that you "group by" in a view is a target for GroupSummary.
Here in detail are the expressions. Generally, they display the item (an album or composition), then the summary of the Duration of the tracks therein, and then they display a star rating equal to the numerical value of the summarized rating. A little format control also has to happen due to the way the GroupSummary function outputs.
Album Expression:
[Album, 1]/
<font alpha="35">ListBuild(1, / • ,RemoveRight(GroupSummary(Duration),6), listitem(;½;★;★½;★★;★★½;★★★;★★★½;★★★★;★★★★½;★★★★★, math(If(IsEqual(GroupSummary(Rating), avg, 8), RemoveRight(GroupSummary(Rating),4), GroupSummary(Rating)) * 2)))<//font>
Composition Expression:
[Composition, 1] <font alpha="35">ListBuild(1, / • ,RemoveRight(GroupSummary(Duration),6), listitem(;½;★;★½;★★;★★½;★★★;★★★½;★★★★;★★★★½;★★★★★, math(If(IsEqual(GroupSummary(Rating), avg, 8), RemoveRight(GroupSummary(Rating),4), GroupSummary(Rating)) * 2)))<//font>
You could just as easily use these expressions in Standard View. For standard view, don't put the expression in the "expression to display" area of the view customization, instead just insert it as the Thumbnail Text expression. This will give you the summarized info you want, but preserve the graphical view if that's what you're after.
Although there does seem to be an issue/bug that when GroupSummary is used in a thumbnail text expression, it only returns a truncated value, which prevents the half-star ratings from being visible. (I think JRiver should fix that.) Update: This bug has now been fixed in 25.0.106Even this year people were still asking the question of how to do this on the forums, and they weren't finding great answers, so I thought I'd put this up.
Hopefully it will help people, and you can adapt the technique to your needs.
-Will