Support for MusicBee’s rating field II (popularimeter)

Support for Musicbee’s rating field II

In connecting with my previous problem (as described in Mp3tag behaves strangely upon start) I'm asking for help regarding the %popularimeter% (rating) field. I can no clue what to fill in the to use with MusicBee. This thread (Support for Musicbee's rating field) stars the issue but does not tell how to use the value field. If I rate half a star the value result should be 1 for the app's value field:

1/2 star in MusicBee - 1
1 star - 2
1 1/2 stars - 3
etc. until
5 stars - 10

How can I achieve this? It was like this before but I wouldn't know what values to fill in. Can anyone please help? Thanks a lot.
P.S. Excuse me, I'm not a programming expert.

Check the extended tags dialogue and see which values you find in the extended tags dialogue Alt-T.
Either learn which values (which will range from 1 to 255) you have to write for each displayed star or write a replace command.
You still would have to enter the values, though.

Thank you, but if I knew which values I'd have to write for each displayed star or write a replace command I wouldn't need to ask. As I said, I'm not a programmer. Where do I have to look in order to learn how to fill in that field? Thank you though. Using ALT+T in Mp3tag I can see 'MusicBee|186|0' in the field of popularimeter. If I enter MusicBee|255|0 in the value description that code shows in the Mp3tag field.

If you give a listing which star-values correspond to which star display, then you could assign something like this:

Thanks but that doesn't work.

Ok, then everything stays as it is?


Parts of the code show up. Actually I'd want the numeric value of the stars to be equal to the value in the C3mp3 field (1/2 star = 1 point, 1 star = 2 points, etc.).

What does your column definition look like?

I entered the string you gave me.

What did the Value look like originally? Just stars?
What happens if you enter stars again?

The example in the linked topic has, BTW, no "8" to be replaced - so you see that again.
And, you may have noticed, the example in the linked topic only goes from 1 to 5.

No, The stars are not supposed to show up, only the numeric values (1 to 10). The field in the music files (mp3 and flac) are numeric. Only I don't know in which value field they are stored.
The other string yield stars too but I don't


want the stars.

Well, actually I could live with the stars too... as long as I can have some sort of correct input field.

The function that you show translates e.g. "255" into 5 stars
255 is the native value in the field popularimeter.
If you want to transform that into "10", then do not use the characters for the stars but enter a "10". Do so for all the other large values as well and see if it works.

See - I don't know what the connection between 255 and "5" is. I'm lost. I only copied that function from the other thread.

If you count the number of $char(9734) following the 255 then you will probably find 5 of them. That is the connection.
If you have used a word processor and its "find&replace" function, then you may recognize that you need a search term and something to replace it with. In the example the 255 is replaced with ***** - so if you don't want the *****but a "10" instead, enter a "10".
And so it would go on for the rest of the values that you have to research.
Yet, I doubt that you will be satisfied in Musicbee unless that program has some clever algorithms running to translate a "10" back to 5 stars...
Please check that first.

Edit: so my suggestion would be to set the "Value" property of the column with some translation algorithm to display the expected rating in an accustomed form.
BUT this is to display only.
Setting the rating in a format that can be digested by MusicBee would be the task of an Action (or rather: a collection of actions, each for 1 degree of rating).

This format strings displays the MusicBee ratings 0-5 (incl. half-star ratings) as the respective values 0-10 in Mp3tag.

$ifgreater($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),254,10,$ifgreater($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),241,9,$ifgreater($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),195,8,$ifgreater($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),185,7,$ifgreater($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),127,6,$ifgreater($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),117,5,$ifgreater($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),63,4,$ifgreater($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),53,3,$ifgreater($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),12,1,$ifgreater($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),0,2,0))))))))))
1 Like

Yes, yes, yes... that's precisely it. Works like a charm! Thanks a bazillion. And to you too, ohrenkino! Sorry for being such a pain in the a$$.