nw  

Real Time Beat Tracker

Zusammenfassung

Programmierung eines universellen Real Time Beat Trackers (BPM, Onsets)

Schlüsselbegriffe

Windows 10, Microsoft .NET, C#, NAudio, MathNet.Numerics, Signal Processing, Fourier Transformation, Autokorrelation

Zielsetzung

Die langfristige Vision ist der Bau eines Real Time Beat Trackers, der bei Live-Musik die BPM (Schläge pro Minute), die Taktangabe (z.B. ¾ Takt) und den nächsten Taktschlag in Echtzeit ermittelt und entsprechend anzeigt. Dabei soll der Tracker möglichst ohne Vorkenntnisse auskommen, d.h. universell einsetzbar sein.


Ziel der Arbeit ist es, mit dem heutigen Stand der Technik, dieser Vision so nahe wie möglich zu kommen. Dazu soll ein solcher Tracker als Prototyp gebaut werden.

Ausgangslage

Musiker lassen sich heute gerne mit elektronischen Geräten auch bei Live Performances unter-stützen. Beispiele sind Loopers oder Drum Machines. Damit solche Geräte nahtlos "mitspielen" können, müssen sie sich dem jeweiligen live gespielten Rhythmus anpassen. Ein Grundproblem ist dabei das Erkennen und Verfolgen des Rhythmus samt genügend schneller Reaktion auf Tempowechsel (z.B. ritardando) der gespielten Musik.


In einem Vorgängerprojekt wurden einige Ansätze zur Erkennung des Tempos (Beats per minutes) getestet und teilweise implementiert. Dabei wurde eine Basis geschaffen, welche verschie-dene Ein- und Ausgänge unterstützt (Mikrofon, Wave-Datei, MIDI), ein erweiterbares System für die Analyse des Audiosignals bereithält, hilfreiche Logging Werkzeuge mitbringt und die Qualität des Beat Trackers mit Testdaten automatisiert evaluiert.


Die implementierten Ansätze funktionieren für einfache Musikstücke (z.B. Klickgeräusche, Metronom, etc.), sind aber unter realen Bedingungen (Live-Musik) nicht genug zuverlässig. Es gibt Hinweise auf einen weiteren Ansatz (Autocorrelation-based Tempogram), welcher untersucht werden soll.

Ergebnisse

Wir haben ein Testbed Framework aufgebaut, das uns ermöglicht, verschiedene Beat Tracking Systeme zu evaluieren. Spezifisch wollten wir herausfinden, ob der ACF Ansatz besser ist als der DFT. Dazu haben wir eigens annotierte Testdatensätze erstellt, zu den nicht echtzeitfähigen Matlab Implementationen Schnittstellen gebaut, eigene echtzeitfähige Implementationen auf Basis der ACF und DFT Ansätze kreiert und diese Beat Tracking Systeme mit dem Testbed Framework evaluiert. Die Fourier Transformation erreichte mit 93.94% das beste Ergebnis, jedoch erzielte die echtzeitfähige Variante davon nur ein Ergebnis von 34.22%. Dies liegt an kurzfristigen Schwankungen, welche in der Evaluation zu einem vorzeitigen Abbruch führen. Subjektive Tests von verschiedenen Songs aus der realen Welt sind aber vielversprechend ausgefallen.

Projektdaten
ProjektartBachelor Thesis
ProjektdauerSeptember 2018 - März 2019
Aufwand in Personenstunden720 Personenstunden
Teamgrösse2 Personen
Auftraggeber

Tobias Rüggeberg
Institut für Aerosol- und Sensortechnik
Fachhochschule Nordwestschweiz
Bahnhofstrasse 6
5210 Windisch
tobias.rueggeberg@fhnw.ch

Webseite

Projektteam

Ajanth Kandasamy
Student Informatik (berufsbegleitend)
7. Semester
ajanth.kandasamy@students.fhnw.ch

Samuel Kupferschmid
Student Informatik (berufsbegleitend)
8. Semester
samuel.kupferschmid@students.fhnw.ch

Kontakt

Prof. Dr. Wolfgang Weck
wolfgang.weck@fhnw.ch

<< zurück