BPM

Begonnen von dj atrac, 26. September 2009, 10:04:11

Vorheriges Thema - Nächstes Thema

dj atrac

BPM
hallo zusammen, da es noch keinen bpm counter für foobar gibt nutze ich nach wie vor mixmeister bpm calculator. um die werte zu runden nutze ich format from other fields:

1.) $ifgreater($right(%bpm%,2),49,$add($cut(%bpm%,$sub($len(%bpm%),3)),1),$cut(%bpm%,$sub($len(%bpm%),3)))

und ein zweites mal format from other fields um die werte alle auf 3 stelliges format zu bringen (wegen der sortierung in foobar):

2.) $num(%bpm%,3)

jemand eine idee wie ich das mit einem klick erledigen kann?

lg frank
" If music be the food of love, play on!" (William Shakespeare)

tedgo

#1
$num($ifgreater($right(%bpm%,2),49,$add($cut(%bpm%,$sub($len(%bpm%),3)),1),$cut(%bpm%,$sub($len(%bpm%),3))),3)

Irgendwie kommt mir was an dem String komisch vor...
Den muss ich mir mal genauer anschauen :)

EDIT:
Probiers mal damit:
$num($add(%bpm%,$ifgreater($right(%bpm%,2),49,1,0)),3)
Falls aber ein Lied dazwischenrutscht, das bereits keine Dezimalstellen mehr hat, bekämst du damit falsche Werte (z. B. aus 151 würde 152).
Bei deinem hingegen würde aus 149 = 000 und 151 = 001.

Dem könntest du so vorbeugen:
$if($strstr(%bpm%,.),$num($add(%bpm%,$ifgreater($right(%bpm%,2),49,1,0)),3),$num(%bpm%,3))

EDIT2:
Darf ich mal fragen, warum du überhaupt den Tag änderst und nicht einfach nur die Spalte in der Playlist so anzeigen lässt?
Dann könntest du den Tag mit dem exakten Wert belassen.

fbuser

#2
Ich würde an dieser Stelle gar nicht kaufmännisch sondern durch Abschneiden runden. Das macht für den vorgesehenen Anwendungsfall ohnehin keinen Unterschied. Dann sieht der Ausdruck so aus:

$num($left(%bpm%,$sub($strchr(%bpm%.,.),1)),3)

dj atrac

hi,
hat auf anhieb funktioniert...der 2. string ist sogar noch besser, auch wenn ich selten schon gerundete werte habe...

na, so 151,99 braucht wirklich keiner und sieht auch doof aus...


vielen dank

falls wir uns mal treffen sollten, hast du ein getränk frei...  :top:
" If music be the food of love, play on!" (William Shakespeare)

dj atrac

...wundere mich schon seit jahren, das bei der vielzahl von plugins sowas für bpm's nicht existiert. könnte ich mir so in etwa wie replay_gain vorstellen...mit rechter maustaste bpm bestimmen...

vielleicht erlebe ich es noch irgendwann...

schönes we und vielen dank für die goldenen tipps
" If music be the food of love, play on!" (William Shakespeare)

tedgo

#5
@fbuser
Abrunden ginge noch einfacher:
$num(%bpm%,3)

($num() macht automatisch integre Zahlen)

Aber dj atrac wollte ja kaufmännisch runden (ist mir auch immer lieber), da ist ein bisschen "Friemelarbeit" von Nöten :)

fbuser

@tedgo
Stimmt natürlich, da hatte ich nicht dran gedacht. Geht also noch einfacher. Aber kaufmännisches Runden macht hier für mich absolut keinen Sinn. Der Rundungsfehler ist für beide Rundungsarten gleich und der Einfluß der Nachkommazahlen ist bei den typischen BPM-Werten vernachlässigbar.

tedgo

Da hast du natürlich recht :)