21
Proseminar Computer und Musik Beat-Detektion Daniel Sous 367726 12. Januar 2018 1

Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

Embed Size (px)

Citation preview

Page 1: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

Proseminar Computer und MusikBeat-Detektion

Daniel Sous367726

12. Januar 2018

1

Page 2: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

Inhaltsverzeichnis1 Einleitung 3

1.1 Was ist ein Beat? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Verwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Schwierigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Onset-Detektion 42.1 Anhand der Lautstarke . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Anhand des Spektrums . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Tempo-Tracking 113.1 Tempomehrdeutigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2 Fourier Tempogramm . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4 Beat-Tracking 154.1 PLP-Kurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.2 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

5 Programmcode 185.1 Matlab-Skript: Onset-Detektion mit Hilfe der Lautstarke . . . . . . 185.2 Matlab-Skript: Spektrogramme erzeugen . . . . . . . . . . . . . . . 195.3 Matlab-Skript: Onset-Detektion mit Hilfe des Spektrums . . . . . . 20

2

Page 3: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

1 EinleitungUnter Beat-Detektion versteht man die Fahigkeit, bei einem gegebenen Eingangs-signal darin enthaltene, periodische Impulse zu erkennen, um beispielsweise dasTempo eines Musikstucks zu ermitteln. Es gibt noch weitere Anwendungen bei denenBeat-Detektionssysteme zum Einsatz kommen. Auf diese werde ich in Abschnitt 1.2naher eingehen.

1.1 Was ist ein Beat?Zunachst einmal mochte ich erlautern was man unter einem ”Beat“ versteht. AlsBeat werden wiederkehrende, periodische Impulse in einem Signal bezeichnet. Inder Musik definieren diese periodischen Impulse den Rhythmus und bringen damitein Musikstuck zeitlich voran. Aus diesem Grund hat der Beat eine besondereBedeutung fur die Musik und kann entscheidend sein, ob einem Menschen einMusikstuck gefallt oder nicht. Das hangt damit zusammen, dass die meistenMenschen bewusst oder unterbewusst dem Beat der Musik, die sie gerade horen,folgen. Wenn ein Mensch beispielsweise tanzt, folgt er dem Beat bewusst; wackelter im Rhythmus mit dem Bein geschieht das Ganze moglicherweise unterbewusst.

1.2 Verwendung von Beat-DetektionEin Beat-Detektionssystem findet in vielen Musikverarbeitungsprogrammen Anwen-dung. Vor allem DJ-Programme haben als zentralen Bestandteil ein Beat-DetektionSystem integriert. In einem DJ-Programm hat ein Beat-Detektionssystem vor allemdie folgenden beiden Aufgaben:

1. Beat zweier Songs in Phase bringenMochte man mit einem DJ-Programm zwei Songs als Ubergang ineinandermischen, muss man darauf achten, dass der Beat beider Songs in Phase ist,damit es nicht zu Dissonanzen kommt.

2. Tempo angleichenDamit zwei Songs bei einem Ubergang in Phase bleiben, muss zunachstdas Tempo beider Songs angeglichen werden. Dies ist ebenfalls durch einBeat-Detektionssystem moglich, da sich damit das Tempo berechnen lasst.

Bei der Musikverarbeitung kann Beat-Detektion außerdem dazu verwendet werden,zum Beat synchrone Lichteffekte zu steuern.Des Weiteren wird Beat-Detektion bei der Musikklassifizierung, der automatisiertenIdentifizierung eines Musikstucks, genutzt. Hierbei hilft es ein Musikstuck auf einbestimmtes Genre einzugrenzen, da der Rhythmus in einem Genre meist ahnlich

3

Page 4: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

oder sogar gleich ist.Ein weiterer Bereich, in dem Beat-Detektionssysteme genutzt werden, ist die Medi-zin. Hier kommen solche Systeme meistens in Verbindung mit dem Herzschlag zumEinsatz, um beispielsweise automatisiert Herzarrhythmien zu detektieren. Außer-dem wird ein Beat-Detektionssystem bei der Pulsoximetrie und Herzzeitvolumen-Uberwachung eingesetzt. [1]Weitere Anwendungen sind in der Physik zu finden. Dort wird Beat-Detektionbeispielsweise bei hochauflosender, kern-magnetischer Resonanzspektroskopie ange-wandt. [3]

1.3 Schwierigkeiten bei Beat-DetektionEine Schwierigkeit bei Beat-Detektion ist die Tatsache, dass es Tempomehrdeutig-keiten gibt. Diese Mehrdeutigkeiten kommen durch verschiedene Pulslevel zustande,da nicht klar definiert ist, welches Pulslevel zu wahlen ist. In Abschnitt 3.1 werdeich noch genauer auf dieses Problem eingehen.Eine weitere Schwierigkeit kann durch Tempoveranderungen entstehen, da dies dasTracken eines Beats weiter erschwert. Da allerdings in den meisten MusikstuckenTempoveranderungen auftreten, werden wir in den Abschnitten 3 und 4 Methodenkennenlernen, um mit diesem Problem umzugehen.

In den folgenden Abschnitten werde ich die einzelnen Schritte der Beat-Detektionmit Hilfe des Computers erlautern und die Methoden in einigen Fallen auch mitselbst geschriebenen Matlab-Skripten anwenden. Der Quellcode dieser Skripte istin Abschnitt 5 zu finden.

2 Onset-DetektionZu Beginn des Beat-Trackings steht die Onset Detektion. Bei der Onset-Detektiongeht es darum, Noten- und Tonanschlage zeitlich zu erfassen. Man mochte denStartzeitpunkt eines musikalisch wichtigen Ereignisses erkennen, um damit spaterauf das Tempo zu schließen. In Abbildung 1 sieht man einen Notenanschlag amKlavier und einen idealen Verlauf eines Tonanschlags. Hierbei erkennt man denOnset-Zeitpunkt sehr gut daran, dass dort das Audiosignal stark ansteigt. Dies istjedoch im Allgemeinen nicht der Fall, da selbst bei einfacher Musik viele verschiedeneInstrumente mit unterschiedlichen Frequenzen und Lautstarken zusammen spielen.Um Onset-Zeitpunkte mit dem Computer zu berechnen gibt es viele verschiedeneAnsatze. In den folgenden Abschnitten werde ich auf zwei dieser Ansatze nahereingehen.

4

Page 5: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

Abbildung 1: Links: Notenanschlag am Klavier; Rechts: idealer Verlauf [4]

2.1 Onset-Erkennung anhand der LautstarkeBei dieser Art der Onset-Detektion wird nur die Lautstarke und deren Veranderungverwendet. Der Ansatz ist hierbei, dass zum Zeitpunkt eines Onsets die Lautstarkestark ansteigt. Um nun die Zeitpunkte mit starkem Lautstarkeanstieg zu berechnen,muss zunachst eine Lautstarkekurve zu einem gegeben Audiosignal berechnetwerden. Die im Folgenden vorgestellten Verfahren und Formeln stammen aus demBuch Fundamentals of Music Processing von Meinard Muller [4].Es sei x ∈ Rl ein digitales Audiosignal mit einer Lange von l Samples, w(m)eine glockenformige Funktion (z.B. die Normalverteilung) und m ∈ [−M,M ] mitM ∈ N, dann lasst sich mit

Exw(n) :=

M∑m=−M

|xn+m · w(m)| (1)

die lokale Lautstarke an der Stelle bzw. bei dem Sample n berechnen. Die glo-ckenformige Funktion w wird dazu genutzt, umliegende Samples im Intervall[−M,M ] gewichtet mit in die Lautstarke an der jeweiligen Stelle einzubeziehen.Dies ist notig, damit die Lautstarkefunktion nicht die periodischen Schwingungendes Audiosignals ubernimmt. In Abbildung 2 wird die Funktion beispielhaft aneiner Stelle n = π angewandt. Die Funktion Ex

w multipliziert nun im Intervall[−M,M ] das Audiosignal mit dem jeweiligen Funktionswert der Glockenfunktion,berechnet den Betrag und summiert uber das Intervall auf.

Da nicht die Lautstarke selbst, sondern deren Veranderung von Interesse ist, bildetman die Ableitung der Lautstarkefunktion. Da in einem digitalem Audioformatnur diskrete Werte gespeichert werden konnen, ist die einfachste Moglichkeit eineVeranderungs-Kurve zu erzeugen, die Differenz zweier benachbarten, diskretenWerte als Veranderung in die Kurve zu ubernehmen. Da außerdem nur Anstiegeder Lautstarke von Interesse sind, konnen alle negativen Differenzen auf 0 gesetzt

5

Page 6: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

Abbildung 2: Berechnung der Lautstarke an einer Stelle n = π; rot: Glockenkurvezentriert uber Punkt P ; Intervall [A,B] gewahlt

werden. Dazu verwenden wir die folgende Funktion:

|r|≥0 := r + |r|2 =

r falls r ≥ 0,0 falls r < 0

(2)

Sei Exw(n) die bei Funktion 1 verwendete Lautstarkefunktion, welche die Lautstarke

an der Stelle n beschreibt. Damit erhalten wir fur die Anderung an der Stelle n:

∆Lautstarke(n) := |Exw(n+ 1)− Ex

w(n)|≥0 (3)

Mit dem Graphen der Funktion 3 lassen sich viele Onsets bereits erkennen. Wiewir jedoch in Abbildung 3 sehen, konnen starke Onsets, wie etwa die von einemSchlagzeug, schwachere (leises Klavier) schnell verdrangen, sodass sie nicht mehr imGraph der entsprechenden Funktion sichtbar sind. Um dies zu verhindern, wendetman eine Logarithmusfunktion auf die Anderungsfunktion an. Wie man ebenfallsin Abbildung 3 sieht, werden die Onsets des Klaviers durch die logarithmischeKompression besser sichtbar. Jedoch wird gleichzeitig das Rauschen verstarkt, wasdie Onset-Erkennung wiederum schwieriger macht, da manche Peaks nicht mehreindeutig identifizierbar sind.

In Abschnitt 5.1 befindet sich der Quellcode des Matlab-Skripts, welches die

6

Page 7: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

in diesem Abschnitt erklarten Schritte1 auf eine beliebige Audiodatei anwendet. InAbbildung 3 ist die Ausgabe des Skripts mit einem Ausschnitt des Musikstuckes

”Papercut“ von Zedd2 als Eingabe zu sehen.In dem ersten Plott sieht man das unverarbeitete Audiosignal (linke Seite desStereosignals) von der MP3-Datei. Hier ist deutlich zu erkennen, dass der Song inder ersten Halfte des Ausschnitts deutlich leiser ist als in der zweiten. Dennochkann man die Klavieranschlage in der ersten Halfte des Signals erkennen. Derzweite Plott zeigt den Lautstarke-Verlauf des Songs. Die im ersten Plott erkanntenEigenschaften werden hier noch einmal bestatigt. Nun wird die Funktion 3 aufdie Lautstarkefunktion angewandt. Dies sieht man im dritten Plott. Hier fallt auf,dass die Beats im zweiten Teil des Ausschnitts deutlich als Peaks zu erkennen sind.Jedoch sind die Onsets des Klaviers kaum oder gar nicht zu erkennen. Dies liegtdaran, dass die Beats im hinteren Teil deutlich lauter als das Klavier zu Beginnsind. Das Klavier wird von dem kraftigen Beat verdrangt. Um dem entgegen zuwirken, wird die logarithmische Kompression verwendet. Wie man im vierten Plottsehen kann, sind nun die Klavieranschlage besser zu erkennen. Jedoch hat nundas Rauschen deutlich zugenommen, weshalb sich eine genaue Onset-Detektion alsschwierig herausstellt.

2.2 Onset-Erkennung anhand des SpektrumsIn Abschnitt 2.1 haben wir gesehen, dass eine Onset-Detektion nur mit Hilfe derLaustarke in den meisten Fallen nicht ausreichend ist. Laute Gerausche, welchefur das Erkennen von Onsets unwichtig sind, werden hier zu stark berucksichtigt,was zu nicht klar identifizierbaren Peaks fuhren kann. Um dies zu verhindern,berucksichtigt man bei der Spektral-basierten Onset-Detektion auch das Spektrum,d.h. die Intensitat der einzelnen Frequenzen der Musik. Dafur wird die short-timeFourier Transformation (STFT) benotigt. Auf das genaue Verfahren hierbei werdeich nicht eingehen, jedoch sollte klar sein, dass die STFT als Ergebnis eine Matrixmit Werten fur die Intensitat pro Sample (Spalten) und pro Frequenzband (Zeilen)liefert.Zu Beginn mochten wir verhindern, dass - wie bereits bei dem Lautstarke-basiertenVerfahren - zu große Differenzen zwischen leiseren, harmonischen und lauterenInstrumenten entstehen. Dieser Schritt ist sehr wichtig, da wir im Folgenden mitSpektralvektoren arbeiten werden und sich eine solche Differenz wegen der großenLange der Vektoren deutlich starker als zuvor auf das Ergebnis auswirken wurde.Sei X ∈ Rm×n die Ausgabe der STFT mit m ∈ N die Anzahl der einzelnen

1Die Funktion 1 wird in dem Matlab-Skript nicht verwendet. Stattdessen wird dort eineFaltung vorgenommen, was ebenfalls eine Lautstarkekruve erzeugt.

2Es empfiehlt sich diesen Ausschnitt anzuhoren, um der folgenden Erlauterung besser folgenzu konnen.

7

Page 8: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

Abbildung 3: Ausgabe des Programms aus Abschnitt 5.1

Frequenzbander und n ∈ N die Anzahl der Samples. D.h. der Eintrag Xy,z entsprichtder Intensitat des Frequenzbandes y zu dem Zeitpunkt z (in Samples).Um nun die logarithmische Kompression anzuwenden, welche die zuvor erlauterteDifferenz beheben soll, wenden wir die folgende Funktion komponentenweise auf Xan. Dabei ist γ ∈ R mit γ ≥ 1 ein Faktor, welcher die Intensitat der Kompressiondarstellt.

Yγ := log(1 + γ · |X|) (4)

Damit sind die Eintrage in Yγ unsere logarithmisch komprimierten Daten. Um denwesentlichen Unterschied zu erkennen, betrachten wir die beiden Spektrogramme inden Abbildungen 4 und 5. Es ist deutlich erkennbar, dass im zweiten Spektrogramm,welches Y100 zeigt, die Differenz der Intensitat des Klaviers und der elektronischenBeats erheblich verringert wurde. Beim Horen des Ausschnitts wirkt die Lautstarke-Differenz wesentlich geringer als in dem Spektrogramm aus Abbildung 4 zu sehen.Dieses Phanomen kommt durch die naturliche, logarithmische Schallintensitat zuStande.Um nun Onsets als Peaks ablesen zu konnen muss eine diskrete Ableitung uber alleFrequenzbander erzeugt werden. Dazu wird die folgende Funktion fur die Ableitungan der Stelle (Sample) t aufgestellt:

∆Spektrum(t) :=m∑i=1|Yi,t+1 − Yi,t|≥0 (5)

8

Page 9: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

Abbildung 4: X, Ausgabe der STFT fur ”papercut.mp3“ ohne logarithmischeKompression (Code: 5.2)

Abbildung 5: Y100, Ausgabe der STFT fur ”papercut.mp3“ mit logarithmischerKompression (Code: 5.2)

∆Spektrum berechnet die Differenz der Eintrage in den Spalten t und t + 1 undsummiert diese Differenz danach uber alle Frequenzbander (Zeilen) auf. Dabei wird

9

Page 10: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

die Funktion 2 verwendet, um negative Differenzen zu verwerfen, da - wie zuvor inAbschnitt 2.1 - nur Anstiege von Interesse sind.In Abbildung 6 sieht man den Graphen zu Funktion 5 mit den Werten von Y100aus der ”papercut.mp3“ Datei. In dieser Darstellungen sind bereits viele Peakserkennbar. Selbst in der ersten Halfte des Ausschnitts, wo lediglich ein Klavier zuhoren ist, fallen die Peaks nicht wesentlich kleiner aus als in der zweiten Halfte.

Abbildung 6: Graph der Funktion 5 in blau; Graph der Funktion 6 in rot (Code:5.3)

Um das Ergebnis weiter zu verbessern, verwenden wir im nachsten Schritt eineFunktion, die fur jedes Sample einen Durchschnittswert berechnet, der von M ∈ Nbenachbarten Samples beeinflusst wird.

µ(n) := 12M + 1

M∑m=−M

∆Spektrum(n+m) (6)

Um zu veranschaulichen was Funktion 6 macht, ist in Abbildung 6 der Graphvon µ zu dem Graphen von ∆Spektrum eingezeichnet. Nun konnen wir um nocheindeutigere Peaks zu erhalten, die Differenz zwischen ∆Spektrum und µ berechnen.Damit ergibt sich

∆Spektrum(n) := |∆Spektrum(n)− µ(n)|≥0. (7)

Der zugehorige Graph ist in Abbildung 7 zu sehen. Nun sind im Vergleich zuAbbildung 6 die Peaks noch eindeutiger zu erkennen, was die Onset-Erkennung

10

Page 11: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

noch einmal verbessert. Vor allem das Rauschen wurde fast vollstandig entfernt,sodass der Graph fast nur noch aus Peaks besteht. Dies erleichtert außerdem dieArbeit fur Programme, welche diese Peaks erkennen sollen.

Abbildung 7: Graph der Funktion 7

Mit dem beschriebenen Verfahren werden die meisten Onsets bereits erkannt,obwohl es deutliche dynamische (Lautstarke) Differenzen zwischen den einzelnenInstrumenten gibt. Wie zu Beginn des 2. Abschnittes erwahnt, gibt es abgesehenvon den beiden beschriebenen noch weitere Verfahren, um geschickt Onsets zuerkennen. Jedoch werde ich auf diese nicht weiter eingehen.

3 Tempo-TrackingDas Ziel von Tempo-Tracking ist die Berechnung des lokalen Tempos eines Mu-sikstuckes. Dabei werden die Ergebnisse der Onset-Detektion benotigt. Um Tempo-Tracking durchfuhren zu konnen, mussen wir zunachst zwei Annahmen treffen:

1. Beats sind immer bei Onsets positioniert. Dies mussen wir annehmen, dasonst die Ergebnisse aus der Onset-Detektion wertlos waren und es keinenAnsatz fur Beatpositionen gabe.

2. Ein Beat ist in einem bestimmten Intervall periodisch. Damit mochten wir aus-schließen, dass Beats willkurlich, also zufallig, auftreten. Tempoveranderungen

11

Page 12: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

sind zwar erlaubt, dennoch sollte eine gewissen Regelmaßigkeit vorhandensein.

Da beim Tempo-Tracking als Input lediglich das Ergebnis der Onset-Detektiongenutzt wird, ist die Qualitat des Tempo-Trackings proportional zu der Qualitatdes Ergebnisses der Onset-Detektion. Deswegen muss hierbei stets auf ein gutesErgebnis der Onset-Detekion geachtet werden.

3.1 TempomehrdeutigkeitEine weitere Schwierigkeit, die beim Tempo-Tracking auftritt, ist die Tempomehr-deutigkeit. In diesem Abschnitt mochte ich naher darauf eingehen. Dazu betrachtenwir Abbildung 8. Zu sehen ist der Anfang von ”Happy Birth Day To You“. In der

Abbildung 8: Verschiedene Pulslevel von ”Happy Birthday To You“ [4]

ersten Zeile sieht man die Noten des entsprechenden Ausschnitts, in der zweitendas Audiosignal eines Klaviers, welches den Ausschnitt gespielt hat, und in derdritten die verschiedenen Pulslevel. Eine Tempomehrdeutigkeit kommt nun dadurchzustande, dass nicht klar definiert ist, welches Pulslevel man wahlt. Soll man zudem Ausschnitt den Beat ”mit klatschen“ gibt es nun also mehrere Moglichkeiten.Zunachst konnte man zu jeder Achtelnote klatschen. Dies entsprache dem TatumPulslevel. Alternativ ware es auch moglich nur zu jeder Viertelnote, also im TactusPulslevel, zu klatschen. Wahlt man das Tactus Pulslevel ist das Tempo, was mandurch Tempo-Tracking erhalt, halb so schnell, wie das Tempo, welches man imTatum Pulslevel erhalten wurde. Zuletzt gibt es noch das Measure Pulslevel, welchesvon Beatpositionen am Anfang jedes Taktes ausgeht. In unserem Beispiel ware alsobei jeder dritten Viertelnote zu klatschen, da es sich um einen Dreiviertel-Takthandelt.

12

Page 13: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

Wie man sieht lasst sich zu einem gegebenen Musikstuck nicht ein richtiges Tempofinden. Es ist also von der weiteren Verwendung abhangig, welches Pulslevel manwahlen sollte.

3.2 Fourier TempogrammIn diesem Abschnitt werden wir das Fourier Tempogramm kennenlernen. Umdieses Tempogramm zu berechnen, wird die STFT auf das Ergebnis aus der Onset-Detektion angewandt. Das Spektrogramm, welches wir als Ausgabe der STFTerhalten, ist das Fourier Tempogramm, das das lokale Tempo beinhaltet. Wirbetrachten nun ein einfaches Beispiel eines Fourier Tempogramms. In Abbildung 9

Abbildung 9: Onset-Kurve von Klick-Sound und zugehoriges Temporgramm [4]

sieht man oben eine Onset-Kurve eines Klick-Sounds, dessen Tempo im gegebenenAusschnitt von 170 bis 200 BPM (beats per minute) ansteigt. Darunter sieht mandas Spektrogramm, welches durch eine STFT entsteht. Die Frequenz, die zuvor inHertz angegeben wurde, wird nun in BPM angegeben. In dem Spektrogramm bzw.Tempogramm ist - wie erwartet - eine sehr intensive Linie von 170 BPM zu Beginnbis 200 BPM zum Ende des Ausschnitts zu sehen. Daruber befinden sich jedochnoch zwei weitere weniger intensive Linien, welche von 340 bis 400 und von 510 bis600 BPM verlaufen. Wie diese Linien zustande kommen, mochte ich im Folgendenerlautern.In Abbildung 10 sieht man bei a) eine Onset-Kurve und bei b) das entsprechendeTempogramm dazu. In dieses Tempogramm wurden drei verschiedene Punkte ein-gezeichnet, welche wir uns nun naher anschauen werden. Punkt c) befindet sichauf einer sehr intensiven Linie in dem Tempogramm. Bei Abbildung 10 c) wurde

13

Page 14: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

Abbildung 10: Korrelation zwischen Onset-Kurve und Sinuskurven [4]

eine Sinuskurve mit der Frequenz am Punkt c) in einem bestimmten Intervall ein-gezeichnet. Es fallt auf, dass die Korrelation zwischen Sinuskurve und Onset-Kurveverhaltnismaßig gut ist, da sich positive Amplituden uberlagern und negative Am-plituden der Sinuskurve auf Nullstellen der Onset-Kurve treffen. Dadurch kommtdie hohe Intensitat (dunkler Farbton) am Punkt c) zustande. Bei Punkt d) ist imTempogramm eine sehr geringe Intensitat zu sehen. Diese niedrige Korrelation wirdin Abbildung 10 d) noch einmal deutlich. Hier trifft jede negative Amplitude derSinuskurve auf eine positive der Onset-Kurve, was eine sehr schlechte Korrelationzur Folge hat. In Abbildung 10 e) wird jede Amplitude der Onset-Kurve von einerSinus-Amplitude uberlagert. Allerdings ist hier die Intensitat nur im mittlerenBereich, da jede zweite, positive Amplitude der Sinuskurve auf eine Nullstelle derOnset-Kurve trifft. Die Korrelation ist also nur mittelmaßig. Nun konnen belie-big große, ganzzahlige Vielfache der Grundfrequenz (meist die intensivste Linie)gewahlt werden, wodurch jeweils jede zweite, dritte, usw. Amplitude der Sinuskurveuberlagert wird. Dadurch kommen die Obertone, welche als weniger intensive Linienoberhalb der Grundfrequenz erkennbar sind, im Fourier Tempogramm zustande.Schauen wir noch einmal auf Abbildung 9. Dort ist auch zu erkennen, dass die

14

Page 15: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

oberen, weniger intensiven Linien ganzzahlige Vielfache der Grundfrequenz sind.Zusammenfassend kann man sagen, dass sich das lokale Tempo sehr gut mit Hilfedes Fourier Tempogramm berechnen lasst. Außerdem werden die Obertone desMusikstucks sichtbar, was vor allem fur die Analyse der Tatum und Tactus Pul-sebenen geeignet ist.

Fur die Untersuchung des Tempos gibt es noch weitere Methoden, wie zum BeispielAutokorrelation. Hierbei wird ein Ausschnitt der Onset-Kurve zeitlich verscho-ben und dann mit sich selbst verglichen. Diese Methode ist vor allem fur dieUntersuchung der Tactus und Measure Pulsebenen geeignet, da hier die Untertonesichtbar werden. Ich werde jedoch nicht naher auf das Tempo-Tracking mit Hilfevon Autokorrelation eingehen.

4 Beat-TrackingIm letzten Abschnitt werden wir nun eine robuste Methode kennenlernen, welchemit Hilfe der Ergebnisse des Tempo-Trackings dem Beat in einem gegebenenMusikstuck stetig folgt. Man sollte allerdings beachten, dass durch die Verwendungder Ergebnisse des Tempo-Trackings die Qualitat des Beat-Trackings stark von derdes Tempo-Trackings abhangig ist.

4.1 Predominant-Local-Pulse-KurveBei dieser Methode werden wir eine Darstellung erzeugen, welche zu jeder Beatpo-sition einen Peak enthalt. Um eine PLP-Kurve (Predominant-Local-Pulse-Kurve)zu erzeugen, mussen wir zunachst in regelmaßigen Abstanden ein dominantesTempo wahlen. In Abbildung 11 wurde zu der Onset-Kurve aus Abschnitt 3.2das entsprechende Tempogramm mit den zum jeweiligen Zeitpunkt intensivstenFrequenzen gezeichnet. Zeichnet man zu diesen Zeitpunkten die Sinuskurven zu dendominanten Frequenzen in die Onset-Kurve ein, erhalt man den untersten Graphin Abbildung 11.Wie zuvor wurden die Sinuskurven nur in einem bestimmten Intervall und nichtuber die volle Dauer des Musikstucks eingezeichnet. Die Entscheidung uber dieLange dieses Intervalls sollte von der als dominant gewahlten Frequenz abhangen.Im Nachsten Schritt werden die uberlagerten Sinuskurven addiert. Damit ergibtsich eine wesentlich strukturiertere, sinusformige Kurve, welche in Abbildung 12 zusehen ist. Damit wir nun eine eindeutige Reprasentation mit Peaks haben, werdennegative Werte mit Hilfe der Formel 2 gleich 0 gesetzt. Damit erhalten wir die inAbbildung 13 gezeigte Kurve. Bei so einer PLP-Kurve indizieren die Peaks bzw.Amplituden Beatpositionen. Mit diesem Verfahren werden Beatpositionen auch bei

15

Page 16: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

Abbildung 11: Sinuskurven der lokal dominantesten Tempos [4]

Abbildung 12: Nach Addition der uberlagerten Sinuskurven aus Abbildung 11 [4]

Abbildung 13: PLP-Kurve, negative Werte aus Abbildung 12 auf 0 gesetzt [4]

schwierigen Stucken mit vielen Tempoveranderungen korrekt bestimmt.

16

Page 17: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

4.2 Beispiel: ”Ungarischer Tanz Nr. 5“ von BrahmsZuletzt wenden wir die Methode der PLP-Kurve aus Abschnitt 4.1 noch auf einenAusschnitt3 von ”Ungarischer Tanz Nr. 5“ von Brahms an. Zunachst schauen wir

Abbildung 14: Tempogramm und PLP-Kurve des Auschnitts von ”UngarischerTanz Nr. 5“ von Brahms [2]

uns dafur das Tempogramm zu dem entsprechenden Ausschnitt an. Dieses ist inAbbildung 14 oben zu finden. Es ist zu beachten, dass bei diesem Tempogrammein blauer Farbton eine niedrige und ein dunkel roter Farbton eine hohe Intensitatindiziert.Nun wurde zu jedem Zeitpunkt ein dominantes Tempo gewahlt. Bei dieser Aus-wahl sind oft mehrere Frequenzen annehmbar, welche verschiedene Pulslevel re-prasentieren. Aus diesem Grund sollte man sich spatestens zu diesem Zeitpunktfur ein Pulslevel entscheiden, welches man analysieren mochte. Fur dieses Beispielwurde das rot markierte Tempo als dominantes gewahlt. Es fallt auf, dass in derMitte des Ausschnitts das Tempo stark ansteigt und danach auf eine niedrigere Ge-schwindigkeit abfallt. Wendet man nun das in Abschnitt 4.1 vorgestellte Verfahrenauf des gegebene Tempogramm an, erhalt man die in Abbildung 14 unten stehendePLP-Kurve. In dieser Kurve ist zu sehen, dass - wie erwartet - die Peaks in derMitte zu dem Tempoanstieg haufiger und im hinteren Teil seltener auftreten.Fugt man zu jedem Peak in der PLP-Kurve ein Klick-Sound hinzu, stellt manbeim Horen fest, dass diese Positionen trotz der Tempoveranderungen sehr gut zu

3Es empfiehlt sich diesen Ausschnitt anzuhoren, um der folgenden Erlauterung besser folgenzu konnen.

17

Page 18: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

dem Rhythmus der Musik passen. Damit ist die PLP-Kurve eine robuste Methodezur Bestimmung von Beatpositionen. Selbst bei starken Tempoveranderungen undweichen Onsets (bei Streichinstrumenten) - wie im Beispiel aus Abschnitt 4.2 -werden Beatpositionen korrekt bestimmt.

5 ProgrammcodeDie folgenden, selbst implementierten Matlab-Skripte wenden einige der beschrie-benen Methoden auf eine beliebige Audiodatei an. Die meisten Abbildungen ausAbschnitt 2 wurden mit Hilfe dieser erstellt.

5.1 Matlab-Skript: Onset-Detektion mit Hilfe der LautstarkeMit diesem Skript lasst sich ein Plott wie in Abbildung 3 fur eine beliebige Audioda-tei, dessen Pfad in die Variable file geschrieben wird, erzeugen. Die Kommentarein der Quelldatei geben weitere Hinweise zu der Implementierung.

1 c l e a r ;%Lade Audiodatei

3 f i l e = ’C:\ Users\Danie l\Documents\Uni \3 . Semester\Proseminar − Computer und Musik\M a t e r i a l i e n \papercut . mp3 ’ ;

[ y , Fs ] = audioread ( f i l e ) ;5 %Betrachte b e t r a g s m a e s s i g nur das l i n k e S i g n a l

s t e r e o L e f t = abs ( y ( : , 1 ) ) ;7

songLaenge = l e n g t h ( s t e r e o L e f t ) ;9

%Berchne Faltung11 h = ones ( 1 , 2 0 0 0 ) ;

f = h . / sum( h ) ;13 l a u t s t = conv ( s t e r e o L e f t , f ) ;

15 %Berechne d i s k r e t e Able itungd e r i v a t i v e = songLaenge ;

17 f o r i = 1 : songLaengei f ( i+1<songLaenge )

19 i f ( l a u t s t ( i ) < l a u t s t ( i +1) )d e r i v a t i v e ( i ) = l a u t s t ( i +1) − l a u t s t ( i ) ;

21 e l s ed e r i v a t i v e ( i ) = 0 ;

23 endend

25 end

27 l o g D e r i v a t i v e = l o g 1 0 ( d e r i v a t i v e .∗100+1) ;

29 f i g u r e ( 1 ) ;maxPlots = 4 ;

31 %P l o t t e l i n k e s A u d i o s i g n a ls u b p l o t ( maxPlots , 1 , 1 ) ; p l o t ( y ( : , 1 ) , ’ green ’ ) ; t i t l e ( ’ I n p u t s i g n a l ’ ) ;

33 %P l o t t e L a u t s t a e r k e k r u v es u b p l o t ( maxPlots , 1 , 2 ) ; p l o t ( l a u t s t , ’ red ’ ) ; t i t l e ( ’ L a u t s t a e r k e k u r v e ’ ) ;

35 %P l o t t e Able itungs u b p l o t ( maxPlots , 1 , 3 ) ; p l o t ( d e r i v a t i v e , ’ b lack ’ ) ; t i t l e ( ’ L a u t s t a e r k e a n s t i e g ’ ) ;

37 %P l o t t e l o g a r i t h m i s c h e Able itungs u b p l o t ( maxPlots , 1 , maxPlots ) ; p l o t ( l o g D e r i v a t i v e ) ; t i t l e ( ’ L o g a r i t h m i s c h e r L a u t s t a e r k e a n s t i e g ’ ) ;

39f i g u r e ( 1 ) ;

41%Audioplayer : Entferne Kommentar um Audio a b z u s p i e l e n

43 audio = a u d i o p l a y e r ( y , Fs ) ;%audio . play ( ) ;

18

Page 19: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

5.2 Matlab-Skript: Spektrogramme erzeugenDieses Skript zeichnet zwei Spektrogramme. Im ersten Spektrogramm ist dasunverarbeitete Ergebnis der STFT zu sehen. Im zweiten ist das ganze nach logarith-mischer Kompression zu sehen. Die Kommentare in der Quelldatei geben weitereHinweise zu der Implementierung.c l e a r ;

2 %Lade Audiodateif i l e = ’C:\ Users\Danie l\Documents\Uni \3 . Semester\Proseminar − Computer und Musik\M a t e r i a l i e n \

papercut . mp3 ’ ;4 [ y , Fs ] = audioread ( f i l e ) ;

6 %Faktor f u e r log−Funktiongamma = 1 0 0 ;

8%Betrachte nur das l i n k e S i g n a l

10 s t e r e o L e f t = y ( : , 1 ) ;%Log−Funktion anwenden

12 s t e r e o L e f t L o g = l o g (1 + gamma ∗ abs ( s t e r e o L e f t ) ) ;

14 songLaenge = l e n g t h ( s t e r e o L e f t ) ;

16f i g u r e ( 2 ) ;

18 %Z e i c h e Spektrogramm ohne Kompressions u b p l o t ( 2 , 1 , 1 ) ; spectrogram ( s t e r e o L e f t , round ( songLaenge /1000) , 5 0 0 , Fs , Fs , ’ y a x i s ’ ) ;

20 t i t l e ( ’ Ohne l o g a r i t h m i s c h e Kompression ’ ) ;%Z e i c h e Spektrogramm mit Kompression

22 s u b p l o t ( 2 , 1 , 2 ) ; spectrogram ( s t e r e o L e f t L o g , round ( songLaenge /1000) , 5 0 0 , Fs , Fs , ’ y a x i s ’ ) ;t i t l e ( ’ Mit l o g a r i t h m i s c h e r Kompression ’ ) ;

24 f i g u r e ( 2 ) ;

19

Page 20: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

5.3 Matlab-Skript: Onset-Detektion mit Hilfe des Spek-trums

Dieses Skript berechnet die Veranderung in einem Spektrogramm fur eine gegebeneAudiodatei wie in Abschnitt 2.2 beschrieben. Im oberen Plot befindet sich dasErgebnis und der durchschnittliche Verlauf des Graphen. Unten befindet sich danndie Differenz beider Funktionen. Die Kommentare in der Quelldatei geben weitereHinweise zu der Implementierung.c l e a r ;

2 %Lade Audiodateif i l e = ’C:\ Users\Danie l\Documents\Uni \3 . Semester\Proseminar − Computer und Musik\M a t e r i a l i e n \

papercut . mp3 ’ ;4 [ y , Fs ] = audioread ( f i l e ) ;

6 %Faktor f u e r log−Funktiongamma = 1 0 0 ;

8%Betrachte nur das l i n k e S i g n a l

10 s t e r e o L e f t = y ( : , 1 ) ;%Log−Funktion anwenden

12 s t e r e o L e f t L o g = l o g (1 + gamma ∗ abs ( s t e r e o L e f t ) ) ;

14 songLaenge = l e n g t h ( s t e r e o L e f t ) ;

16%Fuehre STFT durch

18 [ s , f , t ] = spectrogram ( s t e r e o L e f t L o g , round ( songLaenge /2000) , 1 0 0 , Fs , Fs , ’ y a x i s ’ ) ;s = abs ( s ) ;

20%Berchne d i s k r e t e Able itung f u e r Verktor

22 d e r i v a t i v e = z e r o s ( 1 , l e n g t h ( t )−1) ;f o r i = 1 : l e n g t h ( t )−1

24 f o r j = 1 : l e n g t h ( f )tmp = s ( j , i +1)−s ( j , i ) ;

26 i f (tmp<0)tmp = 0 ;

28 endd e r i v a t i v e ( i ) = d e r i v a t i v e ( i ) + tmp ;

30 endend

32%Berchne Faltung

34 a = ones ( 1 , 1 5 ) ;b = a . / sum( a ) ;

36 f a l t u n g = conv ( d e r i v a t i v e , b ) ;f a l t u n g = f a l t u n g ( 1 : l e n g t h ( d e r i v a t i v e ) ) ;

38%Berchne mu

40 o n s e t s = z e r o s ( 1 : d e r i v a t i v e ) ;f o r k = 1 : l e n g t h ( d e r i v a t i v e )

42 sum = d e r i v a t i v e ( k ) − f a l t u n g ( k ) ;i f (sum>0)

44 o n s e t s ( k ) = sum ;e l s e

46 o n s e t s ( k ) = 0 ;end

48 end

50 f i g u r e ( 3 )%Zeichne P l o t s

52 s u b p l o t ( 2 , 1 , 1 ) ; p l o t ( d e r i v a t i v e ) ; hold on ; p l o t ( f a l t u n g , ’ red ’ ) ; hold o f f ;s u b p l o t ( 2 , 1 , 2 ) ; p l o t ( o n s e t s ) ; t i t l e ( ’ Onset Peaks ’ ) ;

20

Page 21: Proseminar Computer und Musik Beat-Detektiontcs.rwth-aachen.de/lehre/Music/WS2017/presentations/text_beat... · Papercut“ von Zedd2 als Eingabe zu sehen. In dem ersten Plott sieht

Literatur[1] Mateo Aboy, James McNames, Tran Thong, Daniel Tsunami, Miles S Ellenby,

and Brahm Goldstein. An automatic beat detection algorithm for pressuresignals. IEEE Transactions on Biomedical Engineering, 52(10):1662–1670, 2005.

[2] Peter Grosche, Meinard Muller, and Frank Kurth. Cyclic tempogram—a mid-level tempo representation for musicsignals. In Acoustics Speech and SignalProcessing (ICASSP), 2010 IEEE International Conference on, pages 5522–5525.IEEE, 2010.

[3] JA Marohn, PJ Carson, JY Hwang, MA Miller, DN Shykind, and DP Weitekamp.Optical larmor beat detection of high-resolution nuclear magnetic resonance ina semiconductor heterostructure. Physical review letters, 75(7):1364, 1995.

[4] Meinard Muller. Fundamentals of Music Processing: Audio, Analysis, Algo-rithms, Applications.

21