Beat Detektion -...

50
Beat Detektion Proseminar Computer und Musik Daniel Sous 12. Dezember 2017 1 / 50

Transcript of Beat Detektion -...

Beat DetektionProseminar Computer und Musik

Daniel Sous

12. Dezember 2017

1 / 50

Inhalt

I Einleitung

I Onset-Detektion

I LautstarkeI Spektrum

I Tempo-Tracking

I Beat-Tracking

2 / 50

Einleitung

I Beat

I Periodische ImpulseI Definiert Rhythmus

I Verwendung von Beat-Detektions Systemen

3 / 50

Einleitung

I Beat

I Periodische ImpulseI Definiert Rhythmus

I Verwendung von Beat-Detektions Systemen

4 / 50

Verwendung von Beat-Detektion

I Musikverarbeitung

I insbesondere Dj-ProgrammeI zu einem Beat synchrone LichteffekteI Musik Klassifizierung

I Medizinische Anwendungen

I PulsoximetrieI Herzarrhythmie-DetektionI Herzzeitvolumen-Uberwachung

I Weitere Anwendungen z.B. in der Physik...

5 / 50

Verwendung von Beat-Detektion

I Musikverarbeitung

I insbesondere Dj-ProgrammeI zu einem Beat synchrone LichteffekteI Musik Klassifizierung

I Medizinische Anwendungen

I PulsoximetrieI Herzarrhythmie-DetektionI Herzzeitvolumen-Uberwachung

I Weitere Anwendungen z.B. in der Physik...

6 / 50

Verwendung von Beat-Detektion

I Musikverarbeitung

I insbesondere Dj-ProgrammeI zu einem Beat synchrone LichteffekteI Musik Klassifizierung

I Medizinische Anwendungen

I PulsoximetrieI Herzarrhythmie-DetektionI Herzzeitvolumen-Uberwachung

I Weitere Anwendungen z.B. in der Physik...

7 / 50

Einleitung

I Beat

I Periodische ImpulseI Definiert Rhythmus

I Verwendung von Beat-Detektions Systemen

I Probleme

I TempomehrdeutigkeitI Tempoveranderungen

I Ziel: Tempo- und Beat-Tracking

8 / 50

Einleitung

I Beat

I Periodische ImpulseI Definiert Rhythmus

I Verwendung von Beat-Detektions Systemen

I Probleme

I TempomehrdeutigkeitI Tempoveranderungen

I Ziel: Tempo- und Beat-Tracking

9 / 50

Onset-DetektionI Zeitliche Erfassung von Noten- und Tonanschlagen⇒ Tempo

I Verschiedene AnsatzeI Erkennung anhand der LautstarkeI Erkennung anhand des Spektrums

Abbildung: Tonanschlag auf Klavier; idealer Verlauf

10 / 50

Onset-Detektion: LautstarkeUbersicht

1. Veranderungen der Lautstarke werden verwendet⇒ Audiosignal zu Lautstarkekurve umformen

2. Diskrete Veranderung berechnen

3. Lautstarkeverhaltnis wiederherstellen⇒ Logarithmische Kompression

11 / 50

Onset-Detektion: Lautstarke⇒ Audiosignal

Abbildung: Audiosignal der ersten 70 Sekunden von”Zedd - Papercut“

12 / 50

Onset-Detektion: Lautstarke

I Umformung des Audiosignals zu Lautstarke

I Glockenfunktion w(m), x ∈ Rt Audiosignal mit t ∈ N SamplesI m ∈ [−M,M] mit M ∈ N - Einbeziehung benachbarter SamplesI Gewichtung durch Glockenkurve

E xw (n) :=

M∑m=−M

|xn+m · w(m)|

13 / 50

Onset-Detektion: Lautstarke⇒ Lautstarkekurve

Abbildung: Zugehorige Lautstarkekurve

14 / 50

Onset-Detektion: LautstarkeUbersicht

1. Veranderungen der Lautstarke werden verwendet⇒ Audiosignal zu Lautstarkekurve umformen

2. Diskrete Veranderung berechnen

3. Lautstarkeverhaltnis wiederherstellen⇒ Logarithmische Kompression

15 / 50

Onset-Detektion: Lautstarke

I Ableiten mit diskreten Werten ⇒ Differenz benachbarter Werte

I Negative Differenzen filtern:

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

2=

{r falls r ≥ 0,

0 falls r < 0

I Differenz berechnen:

∆Lautstarke(n) := |E xw (n + 1)− E x

w (n)|≥0

16 / 50

Onset-Detektion: Lautstarke

I Ableiten mit diskreten Werten ⇒ Differenz benachbarter Werte

I Negative Differenzen filtern:

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

2=

{r falls r ≥ 0,

0 falls r < 0

I Differenz berechnen:

∆Lautstarke(n) := |E xw (n + 1)− E x

w (n)|≥0

17 / 50

Onset-Detektion: Lautstarke

I Ableiten mit diskreten Werten ⇒ Differenz benachbarter Werte

I Negative Differenzen filtern:

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

2=

{r falls r ≥ 0,

0 falls r < 0

I Differenz berechnen:

∆Lautstarke(n) := |E xw (n + 1)− E x

w (n)|≥0

18 / 50

Onset-Detektion: Lautstarke⇒ Diskrete Ableitung der Lautstarke

Abbildung: Ableitung der Lautstarkekurve

19 / 50

Onset-Detektion: LautstarkeUbersicht

1. Veranderungen der Lautstarke werden verwendet⇒ Audiosignal zu Lautstarkekurve umformen

2. Diskrete Veranderung berechnen

3. Lautstarkeverhaltnis wiederherstellen⇒ Logarithmische Kompression

20 / 50

Onset-Detektion: Lautstarke⇒ Logarithmische Kompression anwenden

Abbildung: Nach Anwendung der Kompression

21 / 50

Onset-Detektion: LautstarkeUbersicht

Abbildung: Plot-Ubersicht22 / 50

Onset-Detektion: SpektrumI Berucksichtig Intensitat einzelner Frequenzen

I Benotigt STFT (short-time Fourier transformation)

Abbildung: Spektrogramm zu Ausschnitt von”Zedd - Papercut“

23 / 50

Onset-Detektion: SpektrumI Berucksichtig Intensitat einzelner FrequenzenI Benotigt STFT (short-time Fourier transformation)

Abbildung: Spektrogramm zu Ausschnitt von”Zedd - Papercut“

24 / 50

Onset-Detektion: SpektrumI Berucksichtig Intensitat einzelner FrequenzenI Benotigt STFT (short-time Fourier transformation)

Abbildung: Spektrogramm zu Ausschnitt von”Zedd - Papercut“

25 / 50

Onset-Detektion: SpektrumI Intensitatsdifferenzen vermeiden⇒ logarithmische Kompression

Abbildung: Spektrogramm mit logarithmischer Kompression

26 / 50

Onset-Detektion: SpektrumI Intensitatsdifferenzen vermeiden⇒ logarithmische Kompression

Abbildung: Spektrogramm mit logarithmischer Kompression27 / 50

Onset-Detektion: Spektrum

I Ableitung bilden:

∆Spektrum(t) :=m∑i=1

|Yi ,t+1 − Yi ,t |≥0

I Dabei sei Y ∈ Rm×n Ausgabe der STFT nach logarithmischer Kompression(mit m ∈ N die Anzahl der Frequenzbander und n ∈ N die Anzahl derSamples)

28 / 50

Onset-Detektion: Spektrum

Abbildung: Blau: Ableitung des Spektrogramms; Rot: durchschnittlicher Verlauf29 / 50

Onset-Detektion: Spektrum

Abbildung: Unterer Graph: Differenz der oberen30 / 50

Tempo-TrackingI Ziel

I Informationen der Onset-Detektion ⇒ TempoDafur mussen wir zwei Annahmen treffen:I Beat bei Onsets positioniertI Beat ist periodisch (in Intervall)

I ProblemeI TempomehrdeutigkeitI Schlecht erkennbare Onsets:

Abbildung: C4 auf Klavier, Geige und Flote gespielt

31 / 50

Tempo-TrackingI Ziel

I Informationen der Onset-Detektion ⇒ TempoDafur mussen wir zwei Annahmen treffen:I Beat bei Onsets positioniertI Beat ist periodisch (in Intervall)

I ProblemeI Tempomehrdeutigkeit

I Schlecht erkennbare Onsets:

Abbildung: C4 auf Klavier, Geige und Flote gespielt

32 / 50

Tempo-TrackingI Ziel

I Informationen der Onset-Detektion ⇒ TempoDafur mussen wir zwei Annahmen treffen:I Beat bei Onsets positioniertI Beat ist periodisch (in Intervall)

I ProblemeI TempomehrdeutigkeitI Schlecht erkennbare Onsets:

Abbildung: C4 auf Klavier, Geige und Flote gespielt

33 / 50

Tempo-TrackingTempomehrdeutigkeit

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

34 / 50

Fourier Tempogramm

I Wendet STFT auf Onset-Ergebnis an⇒ Lokales Tempo

I Beispiel:

Abbildung: Onsets von 170 – 200 BPM Klick-Sound [1]

35 / 50

Fourier Tempogramm

I Wendet STFT auf Onset-Ergebnis an⇒ Lokales Tempo

I Beispiel:

Abbildung: Onsets von 170 – 200 BPM Klick-Sound [1]

36 / 50

Fourier TempogrammI Anwendung der STFT auf Onsets-Kurve⇒ Tempogramm mehreren Tempos⇒ Tempomehrdeutigkeit

I Beispiel:

Abbildung: Tempogramm des Klick-Sounds

37 / 50

Fourier TempogrammI Anwendung der STFT auf Onsets-Kurve⇒ Tempogramm mehreren Tempos⇒ Tempomehrdeutigkeit

I Beispiel:

Abbildung: Tempogramm des Klick-Sounds38 / 50

Fourier Tempogramm

Abbildung: Korrelation zwischen Onset-Kurve und Sinusfenstern39 / 50

Tempo-TrackingUbersicht

I Fourier Tempogramm

I Lokales Tempo wird sichtbarI Obertone werden sichtbar⇒ Gut um Tatum und Tactus Pulslevel zu analysieren

I Andere Moglichkeit ein Tempogramm zu erzeugen:

I Autokorrelation⇒ Gut um Tactus und Measure Pulslevel zu analysieren

40 / 50

Tempo-TrackingUbersicht

I Fourier Tempogramm

I Lokales Tempo wird sichtbarI Obertone werden sichtbar⇒ Gut um Tatum und Tactus Pulslevel zu analysieren

I Andere Moglichkeit ein Tempogramm zu erzeugen:

I Autokorrelation⇒ Gut um Tactus und Measure Pulslevel zu analysieren

41 / 50

Beat-TrackingPLP-Kurve (Predominant Local Pulse)

Abbildung: Sinuskurven der lokal dominantesten Tempos42 / 50

Beat-TrackingPLP-Kurve (Predominant Local Pulse)

Abbildung: Nach Addition der Sinuskurven43 / 50

Beat-TrackingPLP-Kurve (Predominant Local Pulse)

Abbildung: PLP-Kurve (Negative Werte auf 0 gesetzt)44 / 50

Beat-TrackingPLP-Kurve - Beispiel mit nicht konstantem Tempo

Abbildung: PLP-Kurve zu Ausschnitt von”Ungarischer Tanz Nr. 5“ von Brahms

45 / 50

Beat-TrackingZusammenfassung

1. Dominantestes Tempo zu verschiedenen Zeitpunkten bestimmen

2. Zugehorige Sinuskurve in festem Zeitfenster berechnen

3. Sinuskurven aller Zeitpunkte addieren

4. Negative Werte gleich 0 setzen⇒ PLP-Kurve (guter Indikator fur Beat-Positionen)

46 / 50

Beat-TrackingZusammenfassung

1. Dominantestes Tempo zu verschiedenen Zeitpunkten bestimmen

2. Zugehorige Sinuskurve in festem Zeitfenster berechnen

3. Sinuskurven aller Zeitpunkte addieren

4. Negative Werte gleich 0 setzen⇒ PLP-Kurve (guter Indikator fur Beat-Positionen)

47 / 50

Beat-TrackingZusammenfassung

1. Dominantestes Tempo zu verschiedenen Zeitpunkten bestimmen

2. Zugehorige Sinuskurve in festem Zeitfenster berechnen

3. Sinuskurven aller Zeitpunkte addieren

4. Negative Werte gleich 0 setzen⇒ PLP-Kurve (guter Indikator fur Beat-Positionen)

48 / 50

Beat-TrackingZusammenfassung

1. Dominantestes Tempo zu verschiedenen Zeitpunkten bestimmen

2. Zugehorige Sinuskurve in festem Zeitfenster berechnen

3. Sinuskurven aller Zeitpunkte addieren

4. Negative Werte gleich 0 setzen⇒ PLP-Kurve (guter Indikator fur Beat-Positionen)

49 / 50

Literatur

1. Meinard Muller. Fundamentals of Music Processing: Audio, Analysis,Algorithms, Applications.

2. Audio Labs Erlangen. Tempo and Beat Tracking(https: // youtu. be/ FmwpkdcAXl0 ).

3. Mateo Aboy, James McNames, Tran Thong, Daniel Tsunami, Miles SEllenby, and Brahm Goldstein. An automatic beat detection algorithm forpressure signals.

4. JA Marohn, PJ Carson, JY Hwang, MA Miller, DN Shykind, and DPWeitekamp. Optical larmor beat detection of high-resolution nuclearmagnetic resonance in a semiconductor heterostructure.

5. Peter Grosche, Meinard Muller, and Frank Kurth. Cyclic tempogram—amid- level tempo representation for musicsignals.

50 / 50