# Edit Traktor POPULARIMETER value in mp3tag

**URL:** <https://community.mp3tag.de/t/edit-traktor-popularimeter-value-in-mp3tag/47178>\
**Category:** Support\
**Created:** [November 28, 2019, 12:44pm UTC](https://community.mp3tag.de/t/edit-traktor-popularimeter-value-in-mp3tag/47178 "2019-11-28T12:44:01Z")\
**Posts on this page:** 8\
**Page:** 2

<div class="post-metadata">

**Author:** ![seb303](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/s/41988e/32.png) [@seb303](https://community.mp3tag.de/u/seb303)\
**Post date:** [November 30, 2020, 3:00pm UTC](https://community.mp3tag.de/t/edit-traktor-popularimeter-value-in-mp3tag/47178/21 "2020-11-30T15:00:31Z")

</div>

None that I've found ☹

---

<div class="post-metadata">

**Author:** ![clsven7](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/c/ecae2f/32.png) [@clsven7](https://community.mp3tag.de/u/clsven7)\
**Post date:** [December 13, 2020, 5:02pm UTC](https://community.mp3tag.de/t/edit-traktor-popularimeter-value-in-mp3tag/47178/22 "2020-12-13T17:02:42Z")

</div>

I have to revert to this thread.

I used the following formula (slightly adjusted from this thread) to convert POPM Rating (from MusicBee) to stars:

$repeat($char(9734),$div($sub($regexp(%popularimeter%,'MusicBee|(\d{1,3})|\d+',$1),$mod($regexp(%popularimeter%,'MusicBee|(\d{1,3})|\d+',$1),51)),51))

With this formula the following conversions (from pattern MusicBee|\<points\>|0) are performed:

1 point = 0 star  
64 points = 1 stars  
128 points = 2 stars  
196 points = 3 stars  
255 points = 5 stars

However according to the "official" values from WMP and mediamonkey from thisWikipedia web page:

> **[ID3 | ID3v2 rating tag issue](https://en.wikipedia.org/wiki/ID3#ID3v2_rating_tag_issue)**
>
> There is a loose de facto standard for implementation of song ratings. Most apps will display 0 to 5 stars for any given song, and how the stars are expressed can vary. For instance, when rating a song in iTunes, the rating is not embedded in the tag in the music file, but is instead stored in a separate database that contains all of the iTunes metadata. Other media players can embed rating tags in music files, but not necessarily the same way, so as a result a song which is rated on one media pl...

the mapping should be:

1 point = 1 star  
64 points = 2 stars  
128 points = 3 stars  
196 points = 4 stars  
255 points = 5 stars

So how do I have to adjust the formula above to get the official, real 1,....,5 numbers (resp stars)?

---

<div class="post-metadata">

**Author:** ![clsven7](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/c/ecae2f/32.png) [@clsven7](https://community.mp3tag.de/u/clsven7)\
**Post date:** [February 16, 2021, 7:31pm UTC](https://community.mp3tag.de/t/edit-traktor-popularimeter-value-in-mp3tag/47178/23 "2021-02-16T19:31:44Z")

</div>

No solution for that?

---

<div class="post-metadata">

**Author:** ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)\
**Post date:** [February 16, 2021, 8:27pm UTC](https://community.mp3tag.de/t/edit-traktor-popularimeter-value-in-mp3tag/47178/24 "2021-02-16T20:27:40Z")

</div>

`$repeat($char(9734),$div($sub($regexp(%popularimeter%,'MusicBee|(\d{1,3})|\d+',$1),$mod($regexp(%popularimeter%,'MusicBee|(\d{1,3})|\d+',$1),64)),64))`

But your answer:

> [@clsven7](#):
>
> $repeat($char(9734),$div($sub($regexp(%popularimeter%,'MusicBee|(\d{1,3})|\d+',$1),$mod($regexp(%popularimeter%,'MusicBee|(\d{1,3})|\d+',$1),51)),51))
> 
> With this formula the following conversions (from pattern MusicBee||0) are performed:
> 
> 1 point = 0 star  
> 64 points = 1 stars  
> 128 points = 2 stars  
> 196 points = 3 stars  
> 255 points = 5 stars

doesn't match in my environment. I get one star more every 51 points, not every 64 points.

Maybe you can adjust this more obvious example for you?

> [@Tag Popularimeter](https://community.mp3tag.de/t/tag-popularimeter/3017/12):
>
> Wenn Ihr gerne auch die die halben Sterne und die Bombe von MediaMonkey haben möchtet, dann einfach anstatt des obigen Wertes nachfolgende Wert eingeben: $ifgreater($mid(%popularimeter%,$add($strchr(%popularimeter%,|),1),$len(%popularimeter%)),2,$ifgreater($mid(%popularimeter%,$add($strchr(%popularimeter%,|),1),$len(%popularimeter%)),28,$ifgreater($mid(%popularimeter%,$add($strchr(%popularimeter%,|),1),$len(%popularimeter%)),52,$ifgreater($mid(%popularimeter%,$add($strchr(%popularimeter%,|),1)…

---

<div class="post-metadata">

**Author:** ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)\
**Post date:** [February 17, 2021, 5:58am UTC](https://community.mp3tag.de/t/edit-traktor-popularimeter-value-in-mp3tag/47178/25 "2021-02-17T05:58:06Z")

</div>

> [@clsven7](#):
>
> 1 point = 1 star  
> 64 points = 2 stars  
> 128 points = 3 stars  
> 196 points = 4 stars  
> 255 points = 5 stars

If everything else fails: you could write a format string with  
`$replace($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),255, *****,196,**** ,128, ***,64,** ,1,*)`

---

<div class="post-metadata">

**Author:** ![clsven7](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/c/ecae2f/32.png) [@clsven7](https://community.mp3tag.de/u/clsven7)\
**Post date:** [February 17, 2021, 10:05am UTC](https://community.mp3tag.de/t/edit-traktor-popularimeter-value-in-mp3tag/47178/26 "2021-02-17T10:05:10Z")

</div>

> [@ohrenkino](#):
>
> If everything else fails: you could write a format string with  
> `$replace($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),255, *****,196,**** ,128, ***,64,** ,1,*)`

This works!  
Thank you

I improved it just a little bit more by replacing the tiny by more beautiful stars:

`$replace($regexp(%popularimeter%,.*\|(\d+)\|.*,$1),255,$char(9734)$char(9734)$char(9734)$char(9734)$char(9734),196,$char(9734)$char(9734)$char(9734)$char(9734),128,$char(9734)$char(9734)$char(9734),64,$char(9734)$char(9734),1,$char(9734))`

Disappointing that users have to invent such a function.  
Since the popularimeter values are standard

see: [ID3 - Wikipedia](https://en.wikipedia.org/wiki/ID3#ID3v2_rating_tag_issue)

....Mp3Tag should out-of-the-box offer a corresponding built-in conversion/replacement

---

<div class="post-metadata">

**Author:** ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)\
**Post date:** [February 17, 2021, 10:19am UTC](https://community.mp3tag.de/t/edit-traktor-popularimeter-value-in-mp3tag/47178/27 "2021-02-17T10:19:07Z")

</div>

> [@clsven7](#):
>
> Mp3Tag should out-of-the-box offer a corresponding built-in conversion/replacement

I am not sure about that.  
I take that you have seen in the linked article  
"The frame is called **POPM** and Windows Explorer, Windows Media Player, [Winamp](https://en.wikipedia.org/wiki/Winamp), [foobar2000](https://en.wikipedia.org/wiki/Foobar2000), [MediaMonkey](https://en.wikipedia.org/wiki/MediaMonkey), and other software all map roughly the same ranges of 0–255 to a 0–5 stars value for display."  
And MP3tag shows you much better than any of the mentioned programs the true contents of POPM - I have never seen the values for email or play count (which are also part of the correct POPM syntax) in the named programs.  
Please note that MP3tag allows to input ratings as stars, single digit numbers or in the raw format.

---

<div class="post-metadata">

**Author:** ![system](https://community.mp3tag.de/uploads/default/original/2X/c/ce7035d426cb755a7916793326d23b465222a407.png) [@system](https://community.mp3tag.de/u/system)\
**Post date:** [February 9, 2026, 12:28pm UTC](https://community.mp3tag.de/t/edit-traktor-popularimeter-value-in-mp3tag/47178/28 "2026-02-09T12:28:21Z")

</div>

Closed on February 9, 2026, 12:28pm UTC



[Previous page](https://community.mp3tag.de/t/edit-traktor-popularimeter-value-in-mp3tag/47178.md?page=1)
