Programmierung eines universellen Real Time Beat Trackers (BPM, Onsets)
Windows 10, Microsoft .NET, C#, NAudio, MathNet.Numerics, Signal Processing, Fourier Transformation, Autokorrelation
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.
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.
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.
| Projektart | Bachelor Thesis |
|---|---|
| Projektdauer | September 2018 - März 2019 |
| Aufwand in Personenstunden | 720 Personenstunden |
| Teamgrösse | 2 Personen |
Tobias Rüggeberg
Institut für Aerosol- und Sensortechnik
Fachhochschule Nordwestschweiz
Bahnhofstrasse 6
5210 Windisch
tobias.rueggeberg@fhnw.ch
Webseite
Ajanth Kandasamy
Student Informatik (berufsbegleitend)
7. Semester
ajanth.kandasamy@students.fhnw.ch
Samuel Kupferschmid
Student Informatik (berufsbegleitend)
8. Semester
samuel.kupferschmid@students.fhnw.ch
Prof. Dr. Wolfgang Weck
wolfgang.weck@fhnw.ch