POPULARIMETER

Basis: Mp3tag v2.7b

In einem MP3-Album mit ID3v2-Tags sehe ich (mit rechter Maustaste auf "Erweiterte Tags) ein Tag-Feld mit der Bezeichnung "Popularimeter".

Gefüllt ist dieses Datenfeld "Beliebtheitsmessung" 'normgerecht' mit Email|Rating|Playcounter. Die Rating-Werte betragen 1, 64, 128, 196 oder 255, je nachdem, ob man in 1-5 Sterne vergeben hat.

Nun habe ich versucht, das Feld in die Spalten von Mp3tag einzufügen.

Beim Versuch "Wert" und "Feld" einzufügen habe ich aber das Problem, dass POPM (Popularimeter) als "Erweitertes Feld" nicht vorhanden ist.

Kann mir da jemand einen Tipp geben?

PS: Das auf vergleichbare Weise gefüllte Feld RATING in einer FAC-Datei lässt sich auch nicht in der Tabelle darstellen.

Sorry, hat sich erledigt.

Die Werte stehen war nicht in der Tabelle, aber man kann einfach %Popularimeter% bzw. %RATING% als "Wert" und "Feld" eingeben und dann hat man es.

Bleibt für mich die Frage, wie man die Werte von %Popularimeter% z.B. in RATING WINAMP kopieren kann. Ich dachte da an eine Action.

Habe aber dazu nichts gefunden, was es mir ermöglicht den Inhalt von %Popularimeter% (Email|Rating|Playcounter) so zu trennen, dass ich z.B. nur das "Rating" in RATING WINAMP kopieren kann.

Dort hast du schon nachgesehen? ... https://docs.mp3tag.de/mapping/#popularimeter

Siehe auch ... https://www.google.de/search?q=site%3Aforum...ter+popm+rating

DD.20151212.1404.CET

Zum Ausprobieren ...

RATING WINAMP <== $regexp($replace($regexp(%POPULARIMETER%,'^(?:.+?\|)(.+?)(?:\|.+?)$','$1'),'255','*****','196','****','128','***','64','**','1','*'),'[^*]',)

... oder ...

RATING WINAMP <== $regexp($replace($regexp(%POPULARIMETER%,'^.*\|(.+?)\|.*$','$1'),'255','*****','196','****','128','***','64','**','1','*'),'[^*]',)

... oder ...

RATING WINAMP <== $replace($regexp(%POPULARIMETER%,'^.*\|(.+?)\|.*$','$1'),255,5,196,4,128,3,64,2,1,1)

DD.20151212.1648.CET

Siehe auch ...
Windows Media Player, Saving ratings and play counts
http://www.microsoft.com/windows/windowsme...me.aspx#ratings

DD.20151212.1900.CET

Da scheint ein Missverständnis vorzuliegen (oder vielleicht habe auch ich das):
Da alle Ratings immer in POPM abgelegt werden, wir daraus nur im Zuge der Auswertung durch den Abspieler das spezielle Feld.
Wenn du also ein POPULARIMETER mit ||255 in ein RATING WINAMP überführen willst, musst du den nummerischen Wert in ***** oder 5 überführen.
Du müsstest also entweder die Werte im bestehenden Feld umwandeln oder per Aktion Tag-Feld formatieren ein multi-value Feld erzeugen:
format string: ||255\\5
Da würde dann ein Feld vom Abspieler als RATING WINAMP interpretiert.
(der WMP macht das übrigens beim Abspielen von alleine: der wandelt vorgefundene Ratings im POPULARIMETER Format um in Rating WMP).

Vielen DANK "ohrenkino" und "DetlevD" für die Hinweise.

Werde das mal bei Gelegenheit umsetzen. Die Befehlsfolge ist ja irre, hatte die "Scripting functions" bis jetzt irgendwie noch nicht auf meinem Schirm.

@DetlevD
für %Popularimeter% Werte = 0|0, hätte ich gerne den Unicode Character White Star "Alt +2730"
Besteht die Möglichkeit Dein $replace um dieses Symbol zu erweitern?

Besten Dank

Wenn du eine Textkonstante "0|0" hast, kannst du doch einfach eine 2. Aktion in die Aktionsgruppe einfügen, wo du den DetlevD'schen Ausdruck ausführen lässt: eine Aktion vom Typ "Ersetzen" für POPULARIMETER
Suchen: 0|0
Ersetzen: ¬

Welcher Abspieler wird denn daraus schlau?

Ich benutze keine Aktionsgruppe sondern eine eigene Spalte mit dem o.g. Ausdruck als "Value"
Eine Erweiterung des $replace wäre natürlich optimal.
Abspieler: iTunes
Rating Export/Import: iTunes2Tag


$regexp($replace($regexp(%POPULARIMETER%,'^(?:.+?|)(.+?)(?:|.+?)$','$1'),'255','***','196','*','128','','64','','1','*','0','¬'),'[^*¬]',)

DD.20170109.2043.CET

@DetlevD
es enthält einen kleinen Fehler
Der neue character erscheint nun überall
s. screenshot


Mein Regexp-Vorschlag geht davon aus, dass im Tagfeld POPULARIMETER ein korrekter Wert enthalten ist gemäß ... Syntax: Email|Rating|Playcounter
https://docs.mp3tag.de/mapping/#popularimeter

Deshalb wird die Zeichenkette '|128|0' eine fehlerhafte Ausgabe erzeugen.
Wenn die Zeichenkette z. B. 'Email|128|0' ist, dann funktioniert mein Regexp-Vorschlag.

DD.20170110.1418.CET

..bei mir leider nicht - s. screenshot
Ich denke die einzige sinnvolle Lösung ist das $replace um
den %POPULARIMETER% String mit den numerischen Werten zu ergänzen
und diese zu ersetzen
z.B. '|255|0','*****'

Man kann einen Formatstring testen mit dem Konverter "Tag - Tag", ...
das Ergebnis wird sofort sichtbar ...

Konverter "Tag - Tag"
Tagfeld: TEST
Formatstring:

$regexp($replace($regexp('x|255|0|','^(?:.+|)(.+?)(?:|.+?)$','$1'),'255','***','196','*','128','','64','','1','*','0','¬'),'[^*¬]',)

==> '*****'

$regexp($replace($regexp('x|196|0|','^(?:.+|)(.+?)(?:|.+?)$','$1'),'255','***','196','*','128','','64','','1','*','0','¬'),'[^*¬]',)

==> '****'

$regexp($replace($regexp('x|128|0|','^(?:.+|)(.+?)(?:|.+?)$','$1'),'255','***','196','*','128','','64','','1','*','0','¬'),'[^*¬]',)

==> '***'

$regexp($replace($regexp('x|64|0|','^(?:.+|)(.+?)(?:|.+?)$','$1'),'255','***','196','*','128','','64','','1','*','0','¬'),'[^*¬]',)

==> '**'

$regexp($replace($regexp('x|1|0|','^(?:.+|)(.+?)(?:|.+?)$','$1'),'255','***','196','*','128','','64','','1','*','0','¬'),'[^*¬]',)

==> '*'

$regexp($replace($regexp('x|0|0|','^(?:.+|)(.+?)(?:|.+?)$','$1'),'255','***','196','*','128','','64','','1','*','0','¬'),'[^*¬]',)

==> '¬'

Was ist daran nicht richtig?

DD.20170110.1547.CET

Nun funktioniert es!
Die Lösung war das unten angehängte $replace von @DetlevD zu benutzen:

Allerbesten Dank!