BPM Konverter

Hallo,

ITunes nimmt neuerdings nur Integer Werte für den Tag BPM an, ich würde mir eine Funktion wünschen welche die BPM entsprechend auf oder abgerundet in Interer umwandelt.

Schöne Grüße
Thomas

Hallo,

muss das wirklich ein Integer-Wert sein oder reicht auch eine Zahl ohne Kommas, weil du diese ja aus dem ursprünglichen BPM-Wert mit diversen Skriptbefehlen erzeugen lassen kannst.

mfG
gnor

Hallo,

ist Integer nicht eine Zahl ohne Komma?
Den Weg über Aktion hab ich auch schon gefunden.
Wenn man das etwas besser beschreiben würde wäre das auch schon eine Lösung, ich fand es etwas kompliziert beschreiben.

Schöne Grüße
Thomas

Erstmal schon, aber in einigen Programmiersprachen gibt es mehrere Datentypen die z. B. "15" beeinhalten können: z. B Integer aber auch Strings usw. Deswegen meine Frage.

(Ein Beispiel für eine Aktion liefere ich noch nach. Könntest du eventuell sagen, wo du das im Forum gefunden hast?)

mfG
gnor

Auch ich würde es sehr begrüßen, wenn Florian eine Funktion $round() bereitstellen würde, denn damit würde die bisherige Integer-Arithmetik mit dem grauseligen Aufwand zahlreicher verschachtelter Funktionsaufrufe überflüssig werden, und das Runden an sich für den Benutzer besser verständlich und schneller nutzbar werden.

Die Funktion $round (p1[, p2[, p3]]) soll drei Parameter akzeptieren.

  1. Parameter (numerische Zeichenkette):
    Enthält die Zeichenkette mit dem numerischen Inhalt,
    z. B. '123' (ganze Zahl) oder '123,45' (Dezimalzahl mit Dezimalkoma) oder '12.345,678' (Dezimalzahl mit Tausenderpunkt und Dezimalkomma) oder '12,345,678.987654' (Dezimalzahl mit Tausenderkomma und Dezimalpunkt).
    Was als Dezimaltrennzeichen (decimal point) gilt, das kann im 3. Parameter manuell bestimmt werden.
    Tausendertrennzeichen sollen nicht berücksichtigt werden.
    Erlaubt sind negative Zahlen mit führendem Negationszeichen.

  2. Parameter (numerisch) (optional):
    Enthält die Anzahl der Stellen rechts vom Dezimalpunkt, auf die gerundet werden soll.
    Als Fehlwert soll 0 genommen werden, das bedeutet Runden auf ganze Zahl.
    Z. B. bedeutet der Wert 2 das Runden auf zwei Dezimalstellen.

  3. Parameter (Zeichen) (optional):
    Definiert das Dezimaltrennzeichen für die aktuelle Operation.
    Als Fehlwert soll das Dezimalzeichen aus der landesspezifischen Sytemeinstellung genommen werden.

Es soll die symmetrische arithmetische Rundung angewendet werden, wie z. B. bei der Excel-Tabellenkalkulationsfunktion "Round()".

Beispiele:
$round('123,456.78',1,'.') ergibt '123456.8'
$round('-123,456',5) ergibt '-123,456' (DEU) (nachfolgende Nullen werden unterdrückt)
$round('-123,456',2) ergibt '-123,46' (DEU) (default)
$round('123,24') ergibt '123' (DEU) (default)
$round('123.24') ergibt '12324' (DEU) (default)
$round('123.24') ergibt '123' (ENG) (default)

Weitere Informationen zum Thema Runden:
http://support.microsoft.com/kb/196652/de
http://www.mathebellus.de/01e/index.html
http://de.wikipedia.org/wiki/Rundung

DD.20090324.2300.CET

Hallo

meinst du wo ich die Aktion gefunden habe oder das mit den Integer?
Die Funktion gibt es hier:
BPM runden
Das mit dem Integer hatte ich über Google Suche oder bei Apple im Forum gefunden.

Schöne Grüße
Thomas

Dieser String sollte auch funktionieren, wenn dein Dezimaltrennzeichen ein "," ist. Du musst den Formatstring mit der Aktion Tag-Felder formatieren mit dem Feld BPM benutzen:

$if($eql($regexp(%bpm%,\d+?','(5|6|7|8|9)\d+,tes1),tes1),$add(1,$regexp(%bpm%,(\d+)','\d+,$1)),$regexp(%bpm%,(\d+?)(','\d+|$),$1))

Ansonsten nehme einfach eine Aktion aus dem anderen Thread. Eine Funktion $round wäre natürlich wünschenswert.

mfG
gnor

Hallo,

hier steht es noch mal das der Tag ein Integer ist:
http://www.id3.org/id3v2.3.0?highlight=(BPM)

Schöne Grüße
Thomas

Die werden mit Integer eine Zahl ohne Kommas meinen.
Insofern sollten die Aktionen funktionieren. Komisch ist nur, dass Mp3tag Kommazahlen in das BPM-Feld schreiben kann.

mfG
gnor

Meines Wissens gibt es in der Benutzersicht von Mp3tag den Datentyp "Zahl" nicht (Integer oder Real d. h. Ganzzahl oder Gleitkommazahl). Zur Darstellung einer Zahl wird einfach eine numerische Zeichenkette verwendet (mit den bekannten Problemen wenn man damit "rechnen" will).
Bei id3.org ist es auch so definiert: The BPM is an integer and represented as a numerical string.

DD.20090325.2249.CET