Estimate BPM in classical music

Christian's Avatar

Christian

18 Jan, 2020 05:03 PM

When analysing classical music, the BPM estimate is often far off - typically underestimating the BPM rate. I ran the analysis first with an open range, then narrowing it down. It still did not work as good on classical pieces as on modern music.

Suggestion: At the beginning of a classic music piece, there is often an intro. The BPM-estimate should skip this part, going into the music at maybe 1min later, and start the analysis there.

This could be triggered by the genre, or done like this in general. It would probably create valid analysis results with modern music as well.

* beaTunes: 5.2.5
* JVM: OpenJDK 64-Bit Server VM
* Version: 11.0.4-BellSoft+11
* Vendor: BellSoft
* OS: Mac OS X 10.15.2, x86_64
* Library: Music.app
* Memory: 92m - 1024m
* Registered as: Christian Saßmannshausen

  1. Support Staff 1 Posted by hendrik on 19 Jan, 2020 03:08 PM

    hendrik's Avatar

    Hey Christian,

    beaTunes BPM estimator is not exactly optimized for classical music. The reason is twofold.

    1. beaTunes typically estimates a global tempo, i.e. one tempo for the whole track. This really only makes sense for tracks that really have a stable tempo. Typically, that's only the case for pop or dance music.

    2. Today's estimation algorithms often contain a part that is learned via machine learning algorithms. beaTunes 5, for example, uses Random Forest. Machine learning implies that an algorithm has been trained on music to estimate something for other music. But if one does not train on classical music, one cannot correctly estimate classical music. The beaTunes 5 algorithm has not been trained on classical music. This is why it probably gets the tempo octave (error by factor 2) wrong.

    For some classical music, e.g. romantic Chopin pieces, it makes more sense to measure or estimate a local tempo and display it in a curve. However, that's currently beyond what beaTunes is meant for.

    That all said, I am wondering what you need the tempo for classical music for. What's your application? Why is this interesting for you?

    Thanks!

    -hendrik

    PS: Deutsch geht übrigens auch.

  2. 2 Posted by CSassmann GMX on 19 Jan, 2020 03:53 PM

    CSassmann GMX's Avatar

    Alles gut mit Englisch, aber auch so:

    Zunächst danke für die Antwort, das Thema „Training der KI“ kann ich nachvollziehen.

    Gekauft habe ich euer Programm, weil ich mir Playlisten für meine Walking-Runden erstellen möchte. Da sind die BPMs wichtig, und können auch genutzt werden, um Trainingsziele zu unterstützen.

    Jetzt umfasst meine iTunes-Sammlung ziemlich gleichgewichtig Aktuelles und Klassik. Vieles davon sind selbst gerippte CDs aus früherer Zeit, inzwischen kaufe ich mehr bei iTunes. Aber gerade im Bereich Klassik gibt es viele kleine Label mit seltenen Aufnahmen, die es nie in den iTunes-Katalog schaffen. Also rippe ich einiges nach wie vor. Das ganze liegt auf meinem NAS und läuft normalerweise über mein SONOS-System. Nur beim Sport brauche ich halt andere Zusammenstellungen, die ich als Playlisten auf die Apple Watch lade.

    Ich habe die Erkennung auf einer 1:1-Kopie der NAS-Bibliothek auf meinem MacBook Pro über alles laufen lassen - wenn ich jetzt nach BPM sortiere, mischt sich Klassik und aktuelle Musik, und das in den „gehobenen“ BPM-Regionen so um die 120 - 130. Ganz oben stand übrigens klassische Klaviermusik, Horowitz z.B. Wenn man das hört und jeden Anschlag zählt, kann man die 200 BPM sogar glauben !

    Tatsächlich waren im Barock (Mozart, Bach, Händel etc.) so um die 72 für geistliche und 80 für weltliche Musik üblich. Aber klar, schwer aus den Tracks zu lesen, zumal die Tempi oft selbst innerhalb eines einzelnen Stücks wechseln. Ganz toll übrigens Walzer, die drehen die BPMs rauf und runter. Hör dir mal „An der schönen blauen Donau“ an (wenn schwer erträglich, mit den Bildern aus „2001“ unterlegt). Auch die Tonarten und damit die Färbung der Stücke werden oft verschoben, die angegebene Tonart gilt meistens nur für die ersten paar Takte. Die guten „alten“ Komponisten hatten ihre Tricks, um die Musik spannend zu machen.

    Jetzt brauche ich die BPMs für meinen klassischen Sammlungsteil nicht unbedingt. Ich habe nur gerne saubere Ergebnisse in meinen Daten. Ich verstehe die Problematik des Oktavsprungs (nicht im Detail, aber dass es ein Erkennungsproblem gibt), ist halt so. Vermutlich lösche ich die BPM für die Klassik einfach raus, und gut ist.

    Trotzdem denke ich, eine Option, die BPM-Wertung erst bei Sekunde 30 oder Minute 1 einsetzen zu lassen, könnte bei Erkennungsproblemen helfen, auch bei modernen Stücken. Vielleicht nehmt ihr es ja auf euren Backlog.

    Super fand ich die Bereinigungsmöglichkeiten für die Metadaten - ich hatte die iTunes-Daten schon mal mit Bordmitteln aufgeräumt und hielt sie für ganz gut. Na ja, man lernt dazu ;-)

    Schönen Sonntag wünsche ich dir noch !

    Liebe Grüße, Christian
    Am 19. Jan. 2020, 16:08 +0100 schrieb hendrik <[email blocked]>:

  3. Support Staff 3 Posted by hendrik on 21 Jan, 2020 10:38 AM

    hendrik's Avatar

    Lieben Dank, für die Rückmeldung. Es ist immer schön zu lesen, wie beatunes benutzt wird und was die Bedürfnisse sind.

    Die BPM-Werte für die klassische Musik zu löschen ist vermutlich der sinnvollste Ansatz. Am schnellsten geht das vermutlich manuell in der Music.app (BPM auf 0 setzen) oder per AppleScript.

  4. 4 Posted by CSassmann GMX on 21 Jan, 2020 02:44 PM

    CSassmann GMX's Avatar

    Hallo Hendrik, danke für den Tip.

    Jetzt bräuchte ich einen Hinweis.

    Aus einer Aktion 2012/2013, die ich von CDs damals noch mit dem Audiograbber kopiert habe, habe ich noch ca. 760 WAV-Dateien gespeichert. Um Titel zu bereinigen und meiner Music-App-Mediathek hinzu zu fügen, habe ich sie „Dateibasiert“ in beaTunes importiert. Der Import ergibt lange Namen (weil die Dateinamen alle Informationen enthalten) ohne viel Informationen in den anderen Feldern. Mit den Online-Datenbanken und ein wenig Handarbeit klappt die Bereinigung ganz gut.

    Jetzt möchte ich die neu strukturierten Metadaten zusammen mit den WAV-Dateien in die Music-App bringen, dort AACs generieren und die WAVs dann aus Platzgründen archivieren.

    Mein Problem ist: Wenn ich nach der Bereinigung das Verzeichnis mit den Musikdateien über die Music-App in die Mediathek importiere, werden dort wieder die unbereinigten Dateien geschrieben.

    Wie bekomme ich das Bearbeitungsergebnis übertragen ? Ich habe dafür keinen Weg gefunden.

    Danke für deine Unterstützung.

    Liebe Grüße, Christian
    Am 21. Jan. 2020, 11:38 +0100 schrieb hendrik <[email blocked]>:

  5. Support Staff 5 Posted by hendrik on 21 Jan, 2020 02:59 PM

    hendrik's Avatar

    Ich würde erst AACs generieren und dann die Metadaten bereinigen, da Tagging Support für AAC viel besser ist als für WAV. Mit anderen Worten: ich weiß aus dem Handgelenk gar nicht, ob die Musik App überhaupt Tags für WAV lesen und schreiben kann.

  6. 6 Posted by Christian Sassm... on 21 Jan, 2020 03:01 PM

    Christian Sassmannshausen's Avatar

    I.o., danke. Probier ich aus.

    Das heißt dann erst in Music importieren, umwandeln, die WAVs löschen, dann die Music-Library in beaTunes laden und dort bearbeiten ?

    Liebe Grüße Christian

    Gesendet mit der GMX iPhone App

    Am 21.01.20 um 15:59 schrieb hendrik

  7. Support Staff 7 Posted by hendrik on 21 Jan, 2020 06:46 PM

    hendrik's Avatar

    Ich würde

    1. erst in außerhalb von Music mit FFmpeg konvertieren
    2. die konvertierten Dateien zu Music hinzufügen
    3. beaTunes synchronisieren (Datei -> Synchronisieren), so dass die Songs auch in beaTunes erscheinen
    4. die AAC Version in beaTunes analysieren etc.
    5. als letztes WAV löschen etc.

    Aber das kann man ja so machen, wie es einem am besten passt. So wie Du es beschrieben hast geht es sicher auch.

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:

»

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac