Different Rating tags


#1

Hi. First of all I'd like to congratulate Florian for such a gem !

I'm a mobile DJ and I've being using Traktor since version 1, 2, 3 and now Traktor Pro 1.

In the past I used Tag&Rename for tagging my mp3 collection, one feature I liked most was the rating, which consisted of 0 to 5 stars.

Everything was fine until Traktor Pro arrived :angry: . Because I started to notice that as soon as traktor analyzes an MP3, the rating was gone from Tag&rename !

So trying to investigate further, I accidentally (now I think I was LUCKY :w00t: ) found MP3tag, read about it and decided to give it a try and see If I can figure out how was traktor pro handling my MP3 tags.

It's important to note that Tag&rename doesn't allow the customization MP3tag does !, specially speaking when adding custom tags or viewing extended tags info. With tag & rename practically it's impossible to see ALL the extended tags, but with MP3Tag it's possible !

So, I noticed that Tag&rename stores the rating under a tag called RATING WMP (I assume it is from Windows Media Player). After Traktor Pro analyzes or edit a track tag, I found that the RATING WMP tag is completely deleted !, the ratings are still in traktor, and then, using MP3Tag I noticed that traktor stores the rating under POPULARIMETER tag in values like:

traktor@native-instruments.de|0|0
traktor@native-instruments.de|51|0
traktor@native-instruments.de|102|0
traktor@native-instruments.de|204|0
traktor@native-instruments.de|255|0

Also noticed that Traktor Pro deletes the tag RATING MM
All that deleting tags from Traktor Pro is a bug :angry: , I've already emailed them and so far they have not given any response.

So, by using MP3Tag I was able to recreate my Ratings in the other tags: RATING WMP and RATING MM, simply by sorting with MP3Tag my files using POPULARIMETER tag, and then selecting all the mp3s with the same POPULARIMETER value and adding manually the correct rating to RATING WMP and RATING MM (using 0,1,2,3,4,5 numbers).

So now my default Tag editor is MP3Tag, I can achieve ALL what Tag&rename can plus MORE features ! Thanks Florian.

I hope other traktor pro users found useful this program.

I just have a couple of questions:

  1. is it possible to make MP3tag to automatically read the POPULARIMETER tag and recreate the RATING WMP & RATING MM tags?

  2. do you know ALL the tags used for storing ratings and their formats?

Regards


RATING TO POPULARIMETER
Bewertung WinAmp in rating wmp
#2

If "traktor@native-instruments.de|255|0" = Rating WMP5 then you can try this:

Name of action group: restore Rating WMP

Action type: Format value
Field: RATING WMP
Formatstring: $if($eql($regexp(%popularimeter%,(.)(255{1})(.),$2),255),5,$if($eql($regexp(%popularimeter%,(.)(204{1})(.),$2),204),4,$if($eql($regexp(%popularimeter%,(.)(102{1})(.),$2),102),3,$if($eql($regexp(%popularimeter%,(.)(51{1})(.),$2),51),2,$if($eql($regexp(%popularimeter%,(.)(0|0{1})(.),$2),0|0),1,)))))

I don't know Rating MM, but i think you can do it the same way.


#3

Hi newser, thanks for your suggestion, but I tried it with no result, after I apply the action, the value of Rating WMP in all the files is = 0, even if the POPULARIMETER tag has other values than 0.

Perhaps something is missing?

Thanks
Hector


#4

What are the exactly values of POPULARIMETER?


#5

Try this regexp ...
$regexp('traktor@native-instruments.de|255|0','^.+|(\d+)|.+$','$1')
... it will extract the number 255.

DD.20091126.0503.CET

This works too ...
$regexp(%POPULARIMETER%,'^.+|(255)|.+$','$1')
... you may stack this expression by using all the other popularimeter values like shown in the proposal before named as "action group: restore Rating WMP".

DD.20091126.0513.CET


#6

All in all it is the shit ID3 standard. As database designer + programmer I've never seen so much shit in the past as working with old VSAM data files on an IBM host in our company.

I'm also missing the popularimeter in Serato Scratch Live. I've made a feature request that they should support it (I'm not sure but I think it was supported in earlier version).

However - I MUST use Tag & Rename because it supports ID3 in WAV files (99 % of my collection) which is also supported by Serato Scratch Live - and which is not supported by MP3TAG until today.

I've also made a request to NI to support it in Traktor (ID3 in WAV) but no reply.

From a developer of Serato Scratch Live I got the info that iTunes also stores ID3 tags in WAV files (I have not installed it) and there is also another .dll available which supports it (don't know the site anymore but I think it was anywhere in the forum of Serato).

My big wish is that ONE software would exist which supports this:

  • a big data file/directory in the root of every harddisc which contains the imported tracks (like Serato) to avoid a re-read of the files every time.
  • a tool which has its own database design (like discogs.com) (stored as above) and writes the different tagging standards depending on the options to the different file formats.
  • an editing tool like MP3Tag
  • an editing tool which supports WAV like Tag & Rename
  • a tool which supports options for compatibility with other programs
  • a tool which has an API of the database file that other (DJ) software can be used.
    ...

I wish I would have more time ...


#7

Thanks DetlevD for the regexp, but I'm having issues setting it up.
Also I forgot to mention another value of the POPULARIMETER tag, so here is the full list of the possible popularimeter values and the equivalence in RATING WMP (which is the same with RATING MM):

traktor@native-instruments.de|0|0 RATING WMP=0
traktor@native-instruments.de|51|0 RATING WMP=1
traktor@native-instruments.de|102|0 RATING WMP=2
traktor@native-instruments.de|153|0 RATING WMP=4
traktor@native-instruments.de|204|0 RATING WMP=4
traktor@native-instruments.de|255|0 RATING WMP=5

What I was trying was the following:

Action type: Format value
Field: RATING WMP
Formatstring:
$if($eql($regexp(%POPULARIMETER%,'^.+|(255)|.+$','$1'),5),
$if($eql($regexp(%POPULARIMETER%,'^.+|(204)|.+$','$1'),4),
$if($eql($regexp(%POPULARIMETER%,'^.+|(153)|.+$','$1'),3),
$if($eql($regexp(%POPULARIMETER%,'^.+|(102)|.+$','$1'),2),
$if($eql($regexp(%POPULARIMETER%,'^.+|(51)|.+$','$1'),1),
$if($eql($regexp(%POPULARIMETER%,'^.+|(0)|.+$','$1'),0)))))))

As always I'd appreciate any assistance.

pueblo funky.
Thanks for your input in this topic, I really appreciate it.

I think that for the rating issue, MP3tag should have a feature that the user could enable or disable at will, and this feature will be as follows:

That as soon as one user puts a rating in ANY rating tag (RATING WMP, RATING MM, PUPULARIMETER, etc.) MP3Tag automatically updates all the other rating tags, obviously this according to some standard like the traktor equivalence:
255 = 5
204 = 4
And so on
And for RATING WMP and RATING MM they share the same equivalence:
5 =5

This feature would be great and really simplifies the life to anyone that uses the rating feature, just one rating to rule them all :laughing:

And also I chare your whish list.

BTW, Native Instruments should address the issue of traktor pro deleting other tags, I've created a support case with them and since I've paid for Traktor PRO I will insist with them to fix that bug.

Kind regards MP3Tag community !


#8

This should work ...

$if($eql($regexp(%POPULARIMETER%,'^.+\|(\d{3})\|.+$','$1'),255),5,
$if($eql($regexp(%POPULARIMETER%,'^.+\|(\d{3})\|.+$','$1'),204),4,
$if($eql($regexp(%POPULARIMETER%,'^.+\|(\d{3})\|.+$','$1'),153),3,
$if($eql($regexp(%POPULARIMETER%,'^.+\|(\d{3})\|.+$','$1'),102),2,
$if($eql($regexp(%POPULARIMETER%,'^.+\|(\d{2})\|.+$','$1'),51),1,0)))))

... or this ...

$if($eql($regexp(%POPULARIMETER%,'^.+\|(\d{3})\|.+$','$1'),255),5,
$if($eql($regexp(%POPULARIMETER%,'^.+\|(\d{3})\|.+$','$1'),204),4,
$if($eql($regexp(%POPULARIMETER%,'^.+\|(\d{3})\|.+$','$1'),153),3,
$if($eql($regexp(%POPULARIMETER%,'^.+\|(\d{3})\|.+$','$1'),102),2,
$if($eql($regexp(%POPULARIMETER%,'^.+\|(\d{2})\|.+$','$1'),51),1,
$if($eql($regexp(%POPULARIMETER%,'^.+\|(\d{1})\|.+$','$1'),0),0,))))))

To avoid multiple usage of function regexp you may use ...

Begin Actionsgroup POPULARIMETER to RATING WMP

Action #1
Actiontype 5: Format tag field
Field: RATING÷WMP
Formatstring: $regexp(%POPULARIMETER%,'^.+|(\d{1,3})|.+$','$1')

Action #2
Actiontype 5: Format tag field
Field: RATING÷WMP
Formatstring: $if($eql(%RATING÷WMP%,255),5,$if($eql(%RATING÷WMP%,204),4,$if($eql(%RATING÷WMP%,153),3,$if($eql(%RATING÷WMP%,102),2,$if($eql(%RATING÷WMP%,51),1,$if($eql(%RATING÷WMP%,0),0,))))))

Note: Replace each special ÷ character with one space character.
End Actionsgroup POPULARIMETER to RATING WMP (2 Actions)

There might be another simple solution ...

Begin Actionsgroup POPULARIMETER to RATING WMP

Action #1
Actiontype 5: Format tag field
Field: RATING÷WMP
Formatstring: $div($regexp(%POPULARIMETER%,'^.+|(\d{1,3})|.+$','$1'),51)

Note: Replace each special ÷ character with one space character.
End Actionsgroup POPULARIMETER to RATING WMP (1 Action)

DD.20091127.0500.CET


How may I import MediaMonkey ratings?
#9

Thanks DetlevD.

I finally managed to make that by using:
$if($eql($regexp(%POPULARIMETER%,'^.+|(\d{3})|.+$','$1'),255),5,
$if($eql($regexp(%POPULARIMETER%,'^.+|(\d{3})|.+$','$1'),204),4,
$if($eql($regexp(%POPULARIMETER%,'^.+|(\d{3})|.+$','$1'),153),3,
$if($eql($regexp(%POPULARIMETER%,'^.+|(\d{3})|.+$','$1'),102),2,
$if($eql($regexp(%POPULARIMETER%,'^.+|(\d{2})|.+$','$1'),51),1,0)))))

I did some testing and it works !

Thanks again and kind regards


#10

Unfortunatly, every time you play a song in traktor the rating in winamp will disapear no matter what you do, this is a traktor issue, so those codes you guys put up will only be useful if you don't analyse or play the track.