Rating and PopMeter as column in Mp3tag listview

Column Definition for RATING
sort=$left($replace($if2(%RATING WINAMP%,$if2(%RATING WMP%,%RATING MM%)),'.',)'0',2)

Column Definition for RATING and POPULARIMETER

value=$if2(%RATING WINAMP%,$if2(%RATING WMP%,$if2(%RATING MM%,$if2($ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),196,5,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),128,4,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),64,3,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,2})\|\d+','$1'),1,2,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d)\|\d+','$1'),0,1,))))),))))
sort=$left($replace($if2(%RATING WINAMP%,$if2(%RATING WMP%,$if2(%RATING MM%,$if2($ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),196,5,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),128,4,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),64,3,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,2})\|\d+','$1'),1,2,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d)\|\d+','$1'),0,1,))))),0)))),'.',)'0',2)

Column Definition for PopMeter
value=$if(%RATING WINAMP%,$repeat('#',%RATING WINAMP%),$if(%RATING WMP%,$repeat('*',%RATING WMP%),$if(%RATING MM%,$repeat('+',%RATING MM%),$repeat('\u003d',$if2($ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),196,5,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),128,4,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),64,3,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,2})\|\d+','$1'),1,2,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d)\|\d+','$1'),0,1,))))),0)))))
sort=$left($replace($if2(%RATING WINAMP%,$if2(%RATING WMP%,$if2(%RATING MM%,$if2($ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),196,5,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),128,4,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),64,3,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,2})\|\d+','$1'),1,2,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d)\|\d+','$1'),0,1,))))),0)))),'.',)'0',2)

Applied mapping for value %POPULARIMETER%:
  >0   ==> 1
  >1   ==> 2
  >64  ==> 3
  >128 ==> 4
  >196 ==> 5

This seems very interesting!
The idea of using the asteriscs is great. :slight_smile:

Unfortunately I don't use a 1-5 scale, nor WMA files, so I think I cannot benefit from this. :frowning:
I use the scale 1-10 in MusicBee, with MP3 files, or 0-100, in grades of 10, with FLAC files (the official Rating method for Vorbis Comment, which is what FLAC files use).
I already have two conversion and one Synch (both ways) Actions to do the hard work for me. :slight_smile:
So I never have to worry about changing them manually.

Just one notice:
Please pay attention that the Rating Tag, has a different scale for FLAC/OGG files, from 0-100, so this format of Rating is missleading, for those file types.

But thanks for bringing this up. I'll have to find a way of using this idea. :slight_smile:

MediaMonkey changed their rating system last year so now pretty much all players use the same values for MP3. MediaMonkey and MusicBee are the only ones that use half-stars, but those values will be properly displayed by other players (rounded to full-stars).

Rating   WMP 12         Win 8.1 Explor   Winamp v5.666   foobar2000 1.3.2   Clementine 1.2.3   MediaMonkey 4.1.2   MusicBee 2.3.5188
stars    writes         writes           writes          writes             writes             writes              writes
-------  ---------------------------------------------------------------------------------------------------------------------------
unrated  0 or no POPM   0 or no POPM     0 or no POPM    0 or no POPM       0 or no POPM       no POPM             no POPM

0        ---            ---              ---             ---                ---                  0                   0
0.5      ---            ---              ---             ---                ---                 13                  13
1          1              1                1               1                  1                  1                   1
1.5      ---            ---              ---             ---                ---                 54                  54
2         64             64               64              64                 64                 64                  64
2.5      ---            ---              ---             ---                ---                118                 118
3        128            128              128             128                128                128                 128
3.5      ---            ---              ---             ---                ---                186                 186
4        196            196              196             196                192                196                 196
5        255            255              255             255                255                255                 255
4.5      ---            ---              ---             ---                ---                242                 242

So I would suggest we get rid of RATING MM, RATING WMP, and RATING WINAMP quasi-fields entirely and replace them with a single quasi-field RATING STARS that will display and allow input of 1–5 stars in half-star increments and write them to POPM (for mp3) as 0–255 values and to RATING (for flac) as 1–100 values, and also to whatever other formats use.

1 Like

DetlevD I find this very useful - well done! :music:

As suggested by "aax" above, could you please add mapping for the "Half points" to the POPULARIMETER:

13 ==> 0.5
54 ==> 1.5
118 ==> 2.5
186 ==> 3.5
242 ==> 4.5

Regexp is not one of my stengths :unsure:

Hi Everybody!

I also would be extremely grateful if Mp3Tag woud offer this feature!
My whole collection is ripped in Flac. But my new DJ Software (TRAKTOR) only offers direct playlist implementation with iTunes which has no Flac support... grr
I transcoded my whole collection with dbPoweramp to Apple losless but all old trak ratings that I made with Music Bee are not recognized by iTunes. The ratings of the new .m4a files are also messed up in Music bee.. I am really disappointed... why cant't there be a standard rating syntax...

Very true in respect to non-standard rating.
Yet, i do not see what mp3tag could change in the behaviour of various players.
What you do get: you can write actions that adapt an existing rating to that of the target player. And that feature is there already.

"...you can write actions that adapt an existing rating to that of the target player..."
--> How? :unsure:
Could you post another thread, where it is explained?
I found nothing on this subject.
An explaination for people without programming skills would be amazing :rolleyes:

See the help for the various formats for the atom POPM:
Some like stars, others want single digits, others byte values.
So: check your files, which value format you find in your old files. (It could even be that the ratings are not stored in your files but only in the player database).

Then check a file first in MP3tag for the rating, then open it in the next player, enter a rating, then re-open it in MP3tag and check which format the rating takes.
Now modify the other files according to the new format.
BTW: I think that iTunes does not take advice from tags in respect to rating ... I think the rating is always only stored in the iTunes database.
So I think that the only way around it would be to open the files in MP3tag, sort them by rating, select all files of the same rating, drag&drop them into a manual playlist in iTunes, open the playlist, select all files in iTunes and set the rating there...

In Mp3tag v3.05 this worked for me:
$if2(%rating winamp%,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),196,5 ★★★★★,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),128,4 ★★★★,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),64,3 ★★★,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),1,2 ★★,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),0,1 ★,))))))

1 Like

12 posts were split to a new topic: Set rating for import in VirtualDJ

Dear Lyricslover and ohrenkino,

Once again thank you for your kind efforts. We're making amazing process here and I'm hoping we will be able to achieve the goal quite soon with your support.

What I have done so far is:

Attempt 1:

  • I've created a Column called "Star" with the value from Lyricslover (based on rating_winamp)
  • Changed the advanced setting from ohrenkino's advice

and bam... Stars started to show up however,

  • values seem correct in stars column but also are showing numbers next to them. (This is no problem at all) but how will i be able to tag these into files is a mystery as the tag panel on the left is showing the popularitometer values rather than stars and i could find no value entry point to change it to stars as done with the column.

My guide in this scenario is the Comment column. I tag comments as text in addition to stars for Itunes. So when i see excellent in comments in itunes i tag it manually with 5 stars as itunes has its' own criteria for ratings. So whatever is written in the comment column is the value we want to see in popularitymeter and/or star column in mp3tag

The problem here is that some values are noted in popularitymeter only, in some the stars column and in most cases in both.

I tried to understand the reason for this to see what Virtaul DJ and Tag&Rename behaviour is by default. I followed Lyriclovers advice and tagged 5 blank files with Virtual DJ. Django Reinhart tracks. I tagged them with star ratings and put comments in the section for double checking. Saved tags with virtual DJ.

Unfortunately stars did not appear in neither of the columns I have created in Mp3Tag, only comments did :frowning:

Then i had the same attempt with Tag&Rename. Again Stars column did not show the stars but the popularometer did. Only with values though.

Then i entered ohrenkino's value to popularometer column and it started to show stars too but all values were incorrect (Looking at the comment column we can see the correct values showing in VirtualDJ and Tag&Rename but not on Mp3Tag popularitometer column.

4 (I'm not allowed to send more than 3 captures in a post so will try to send them as a separate post)

I captured the values from both columns thinking it could maybe lead to a troubleshooting.


I also tried the LyricLover's advice on tagging via Mp3tag and seeing if it reflects back to VirtualDJ or Tag&Rename. I tagged Frank trambauer track with Mp3Tag only as 5 stars by entering 196 value. It of course reflected to Mp3Tag but in Tag&Rename it appeared as 4 stars. In Virtual DJ it did not reflect at all. It seems values used are different between MP3Tag and others. But how in earth can Virtual DJ and Tag&Rename can see and share the correct values but MP3Tag isn't I still don't get it.

So far so good but still in chase for further advice on;

  • how to correctly reflect values to either popularitometer and/or Star column from VirtualDJ and visa Versa. (I will at the end forget about Tag&Rename if I can pull it off anyway)
  • how to tag files in the tag pane without having to enter odd value codes. (128, 255 etc). Select from a menu from value of 1 to 5 (number or stars)
  • If we are able to acieve this goal how will i be able to keep all these settings after a re-installation of windows and/or Mp3tag (Backing up an ini file etc.)

Any advice is most welcome. Many thanks.

Other screenshots...

To simplify the situation and better understand it, please let Tag&Rename out of this "game".

Please provide a screenshot for:

a) All the tags from Alt+T from a new tagged song from Virtual DJ loaded in Mp3tag.
(I assume, we will see a POPULARIMETER with the content rating|winamp.com|255|0 for a five star rating?)

If you load such a song in Mp3tag and change the value manually from 255 to 1 and then load this track again in Virtual DJ, do you see it there with a one star rating?

1 Like

If you don't want to see the number in front of the stars just remove them.
Copy & Paste this as Value:
$if2(%rating winamp%,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),196,★★★★★,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),128,★★★★,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),64,★★★,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),1,★★,$ifgreater($regexp(%POPULARIMETER%,'^.+\|(\d{1,3})\|\d+','$1'),0,★,))))))

1 Like

There are at least 4 different rating placeholders to try:

If you know the one that can be used in Virtual DJ and in Mp3tag, you can use one of this:

%rating mm%
%rating winamp%
%rating wmp%

%rating mm%
%rating wmp%
You need to try it, which change in which column will be valid in both programs.

Sorry to say: I'm out for tonight...

1 Like

Here are the screenshots for all five files. Oddly " POPULARIMETER with the content rating|winamp.com|255|0 for a five star rating?)" is not what i get.

Values seem to be: ***** = |196|0
**** = |128|0
*** = |64|0
** = |255
* = |1|0

Odd but true. I deleted 4 of the tags with virtual dj where all 4 defaulted back to |0|0 and deleted 1 with MP3Tag which defaulted to Mp3Tag|0

But these show in the poplaritometer column but not in the Star column with rating_winamp values. Previously tagged files are showing in Star Column but the ones done with VirtualDJ is not reflecting to Star column.

What is the setting in Options>Tags>Advanced for "Always show popularimeter"?
For our experiments, it should be ticked.

Please note also the correct format for the rating:

Also, could it be possible that your player does not write the rating back to the files but keeps it locally in its database?

That is why I asked

1 Like