tempo and beat tracking - audiolabs - home€¦ · time-lagged local (windowed) sections of itself...

99
Music Processing Meinard Müller Lecture Tempo and Beat Tracking International Audio Laboratories Erlangen [email protected]

Upload: others

Post on 10-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Music Processing

Meinard Müller

Lecture

Tempo and Beat Tracking

International Audio Laboratories [email protected]

Page 2: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Book: Fundamentals of Music Processing

Meinard MüllerFundamentals of Music ProcessingAudio, Analysis, Algorithms, Applications483 p., 249 illus., hardcoverISBN: 978-3-319-21944-8Springer, 2015

Accompanying website: www.music-processing.de

Page 3: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Book: Fundamentals of Music Processing

Meinard MüllerFundamentals of Music ProcessingAudio, Analysis, Algorithms, Applications483 p., 249 illus., hardcoverISBN: 978-3-319-21944-8Springer, 2015

Accompanying website: www.music-processing.de

Page 4: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Book: Fundamentals of Music Processing

Meinard MüllerFundamentals of Music ProcessingAudio, Analysis, Algorithms, Applications483 p., 249 illus., hardcoverISBN: 978-3-319-21944-8Springer, 2015

Accompanying website: www.music-processing.de

Page 5: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Chapter 6: Tempo and Beat Tracking

Tempo and beat are further fundamental properties of music. In Chapter 6, weintroduce the basic ideas on how to extract tempo-related information fromaudio recordings. In this scenario, a first challenge is to locate note onsetinformation—a task that requires methods for detecting changes in energy andspectral content. To derive tempo and beat information, note onset candidatesare then analyzed with regard to quasiperiodic patterns. This leads us to thestudy of general methods for local periodicity analysis of time series.

6.1 Onset Detection6.2 Tempo Analysis6.3 Beat and Pulse Tracking6.4 Further Notes

Page 6: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Introduction

Basic beat tracking task:

Given an audio recording of a piece of music, determine the periodic sequence of beat positions.

“Tapping the foot when listening to music’’

Page 7: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Time (seconds)

Example: Queen – Another One Bites The Dust

Introduction

Page 8: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Example: Queen – Another One Bites The Dust

Introduction

Time (seconds)

Page 9: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Introduction

Example: Happy Birthday to you

Pulse level: Measure

Page 10: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Introduction

Example: Happy Birthday to you

Pulse level: Tactus (beat)

Page 11: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Introduction

Example: Happy Birthday to you

Pulse level: Tatum (temporal atom)

Page 12: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Example: Chopin – Mazurka Op. 68-3

Pulse level: Quarter note

Tempo: ???

Introduction

Page 13: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Example: Chopin – Mazurka Op. 68-3

Pulse level: Quarter note

Tempo: 50-200 BPM

Time (beats)

Tem

po (B

PM)

50

200

Tempo curve

Introduction

Page 14: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Introduction

Example: Borodin – String Quartet No. 2

Pulse level: Quarter note

Tempo: 120-140 BPM (roughly)

Beat tracker without any prior knowledge

Beat tracker with prior knowledge on rough tempo range

Page 15: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Introduction

Pulse level often unclear

Local/sudden tempo changes (e.g. rubato)

Vague information

(e.g., soft onsets, extracted onsets corrupt)

Sparse information

(often only note onsets are used)

Challenges in beat tracking

Page 16: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset detection Beat tracking Tempo estimation

Tasks

Introduction

Page 17: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset detection Beat tracking Tempo estimation

Tasks

Introduction

Page 18: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

periodphase

Onset detection Beat tracking Tempo estimation

Tasks

Introduction

Page 19: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tempo := 60 / period

Beats per minute (BPM)

Onset detection Beat tracking Tempo estimation

Tasks

period

Introduction

Page 20: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection

Finding start times of perceptually relevant acoustic events in music signal

Onset is the time position where a note is played

Onset typically goes along with a change of the signal’s properties:– energy or loudness– pitch or harmony– timbre

Page 21: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection

Finding start times of perceptually relevant acoustic events in music signal

Onset is the time position where a note is played

Onset typically goes along with a change of the signal’s properties:– energy or loudness– pitch or harmony– timbre TransientOnset

Attack

Decay

Page 22: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Steps

Time (seconds)

Onset Detection (Energy-Based)

Waveform

Page 23: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Energy-Based)

Time (seconds)

Squared waveform

Steps1. Amplitude squaring

Page 24: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Energy-Based)

Time (seconds)

Energy envelope

Steps1. Amplitude squaring2. Windowing

Page 25: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Energy-Based)

Capturing energy changes

Time (seconds)

Differentiated energy envelope

Steps1. Amplitude squaring2. Windowing3. Differentiation

Page 26: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Energy-Based)

Time (seconds)

Novelty curve

Steps1. Amplitude squaring2. Windowing3. Differentiation4. Half wave rectification

Only energy increases are relevant for note onsets

Page 27: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Energy-Based)

Time (seconds)

Steps1. Amplitude squaring2. Windowing3. Differentiation4. Half wave rectification5. Peak picking

Peak positions indicate note onset candidates

Page 28: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Energy-Based)Example: C4 played by piano

Time (seconds)

Page 29: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Energy-Based)Example: C4 played by violin

Time (seconds)

Page 30: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Energy-Based)Example: C4 played by flute

Time (seconds)

Page 31: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection

Energy curves often only work for percussive music

Many instruments such as strings have weak note onsets

No energy increase may be observable in complex sound mixtures

More refined methods needed that capture– changes of spectral content– changes of pitch– changes of harmony

Page 32: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Spectral-Based)

Time (seconds)

Audio recording

Page 33: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

1. SpectrogramMagnitude spectrogram || X Steps:

Onset Detection (Spectral-Based)Fr

eque

ncy

(Hz)

Time (seconds)

Page 34: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Compressed spectrogram Y

|)|1log( XCY

Onset Detection (Spectral-Based)

1. Spectrogram2. Logarithmic compression

Steps:

Freq

uenc

y (H

z)

Time (seconds)

Page 35: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Spectral difference

Onset Detection (Spectral-Based)

1. Spectrogram2. Logarithmic compression3. Differentiation &

half wave rectification

Steps:

Freq

uenc

y (H

z)

Time (seconds)

Page 36: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Spectral difference

Novelty curve

Onset Detection (Spectral-Based)

1. Spectrogram2. Logarithmic compression3. Differentiation &

half wave rectification4. Accumulation

Steps:

Time (seconds)

Freq

uenc

y (H

z)

Time (seconds)

0 1 2 3 4 5 60

20

40

60

Page 37: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Spectral-Based)

1. Spectrogram2. Logarithmic compression3. Differentiation &

half wave rectification4. Accumulation

Steps:

Novelty curve

Page 38: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Substraction of local average

Onset Detection (Spectral-Based)

1. Spectrogram2. Logarithmic compression3. Differentiation &

half wave rectification4. Accumulation5. Normalization

Steps:

Novelty curve

Page 39: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Spectral-Based)

1. Spectrogram2. Logarithmic compression3. Differentiation &

half wave rectification4. Accumulation5. Normalization

Steps:

Normalized novelty curve

Page 40: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection (Spectral-Based)

Spectrogram

Compressed Spectrogram

Novelty curve

Page 41: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Logarithmic Compression

Time (seconds) Time (seconds) Time (seconds)

Freq

uenc

y(H

z)

|)|1log( XCY

No compression C = 1 C = 100

Page 42: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection

Time (seconds)

Energy-based novelty curve

Spectral-based novelty curve

Manuel onset annotations

Page 43: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset DetectionShostakovich – 2nd Waltz

Time (seconds)

Borodin – String Quartet No. 2

Beethoven – Fifth Symphony

Page 44: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Onset Detection

Drumbeat

Going Home

Lyphard melodie

Por una cabeza

Donau

Page 45: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Beat and Tempo

Steady pulse that drives music forward and provides the temporal framework of a piece of music

Sequence of perceived pulses that are equally spaced in time

The pulse a human taps along when listening to the music

[Parncutt 1994]

[Sethares 2007]

[Large/Palmer 2002]

[Lerdahl/ Jackendoff 1983]

[Fitch/ Rosenfeld 2007]

What is a beat?

The term tempo then refers to the speed of the pulse.

Page 46: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Beat and Tempo

Analyze the novelty curve with respect to reoccurring or quasi-periodic patterns

Avoid the explicit determination of note onsets (no peak picking)

Strategy

Page 47: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Beat and Tempo

[Scheirer, JASA 1998]

[Ellis, JNMR 2007]

[Davies/Plumbley, IEEE-TASLP 2007]

[Peeters, JASP 2007]

Strategy

Comb-filter methods Autocorrelation Fourier transfrom

Methods

[Grosche/Müller, ISMIR 2009]

Analyze the novelty curve with respect to reoccurring or quasi-periodic patterns

Avoid the explicit determination of note onsets (no peak picking)

[Grosche/Müller, IEEE-TASLP 2011]

Page 48: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Definition: A tempogram is a time-tempo representation that encodes the local tempo of a music signalover time.

Tem

po (B

PM)

Time (seconds)

Inte

nsity

Tempogram

Page 49: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Definition: A tempogram is a time-tempo represenationthat encodes the local tempo of a music signalover time.

Compute a spectrogram (STFT) of the novelty curve Convert frequency axis (given in Hertz) into

tempo axis (given in BPM) Magnitude spectrogram indicates local tempo

Fourier-based method

Tempogram (Fourier)

Page 50: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tem

po (B

PM)

Time (seconds)

Tempogram (Fourier)

Novelty curve

Page 51: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tem

po (B

PM)

Tempogram (Fourier)

Novelty curve (local section)

Time (seconds)

Page 52: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tem

po (B

PM)

Windowed sinusoidal

Tempogram (Fourier)

Time (seconds)

Page 53: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tem

po (B

PM)

Windowed sinusoidal

Tempogram (Fourier)

Time (seconds)

Page 54: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tem

po (B

PM)

Tempogram (Fourier)

Windowed sinusoidal

Time (seconds)

Page 55: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Definition: A tempogram is a time-tempo represenationthat encodes the local tempo of a music signalover time.

Compare novelty curve with time-lagged local sections of itself

Convert lag-axis (given in seconds) into tempo axis (given in BPM)

Autocorrelogram indicates local tempo

Autocorrelation-based method

Tempogram (Autocorrelation)

Page 56: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tempogram (Autocorrelation)

Novelty curve (local section)

Lag

(sec

onds

)

Time (seconds)

Page 57: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tempogram (Autocorrelation)

Windowed autocorrelation

Lag

(sec

onds

)

Page 58: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tempogram (Autocorrelation)

Lag = 0 (seconds)

Lag

(sec

onds

)

Page 59: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tempogram (Autocorrelation)

Lag = 0.26 (seconds)

Lag

(sec

onds

)

Page 60: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tempogram (Autocorrelation)

Lag = 0.52 (seconds)

Lag

(sec

onds

)

Page 61: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tempogram (Autocorrelation)

Lag = 0.78 (seconds)

Lag

(sec

onds

)

Page 62: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tempogram (Autocorrelation)

Lag = 1.56 (seconds)

Lag

(sec

onds

)

Page 63: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tempogram (Autocorrelation)

Time (seconds)

Time (seconds)

Lag

(sec

onds

)

Page 64: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

300

60

80

40

30

120

Tempogram (Autocorrelation)Te

mpo

(BPM

)

Time (seconds)

Time (seconds)

Page 65: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

600

500

400

300

200

100

Tempogram (Autocorrelation)Te

mpo

(BPM

)

Time (seconds)

Time (seconds)

Page 66: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Time (seconds)

TempogramFourier Autocorrelation

Time (seconds)

Tem

po (B

PM)

Page 67: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

TempogramFourier Autocorrelation

210

70

Tem

po (B

PM)

Tempo@Tatum = 210 BPM Tempo@Measure = 70 BPMTime (seconds) Time (seconds)

Page 68: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tempogram

Fourier Autocorrelation

Time (seconds) Time (seconds)

Tem

po (B

PM)

Time (seconds)

Emphasis of tempo harmonics(integer multiples)

Emphasis of tempo subharmonics (integer fractions)

Page 69: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Tempogram (Summary)

Fourier Autocorrelation

Novelty curve is compared withsinusoidal kernels eachrepresenting a specific tempo

Novelty curve is compared withtime-lagged local (windowed) sections of itself

Convert frequency (Hertz) intotempo (BPM)

Convert time-lag (seconds) intotempo (BPM)

Reveals novelty periodicities Reveals novelty self-similarities

Emphasizes harmonics Emphasizes subharmonics

Suitable to analyze tempo on tatum and tactus level

Suitable to analyze tempo on tactus and measure level

Page 70: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Beat Tracking

Given the tempo, find the best sequence of beats

Complex Fourier tempogram contains magnitude and phase information

The magnitude encodes how well the novelty curve resonates with a sinusoidal kernel of a specific tempo

The phase optimally aligns the sinusoidal kernel with the peaks of the novelty curve

Page 71: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse TrackingTe

mpo

(BPM

)

Time (seconds)

Page 72: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse TrackingTe

mpo

(BPM

)

Time (seconds)

Optimizing local periodicity kernel

Page 73: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse TrackingTe

mpo

(BPM

)

Time (seconds)

Optimizing local periodicity kernel

Page 74: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse TrackingTe

mpo

(BPM

)

Time (seconds)

Optimizing local periodicity kernel

Page 75: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse TrackingTe

mpo

(BPM

)

Time (seconds)

Optimizing local periodicity kernelHalfwave rectificationAccumulation of kernels

Time (seconds)

Page 76: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse TrackingTe

mpo

(BPM

)

Time (seconds)

Optimizing local periodicity kernelHalfwave rectification

Page 77: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse Tracking

Novelty Curve

Predominant Local Pulse (PLP)

Time (seconds)

Time (seconds)

Page 78: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Periodicity enhancement of novelty curve Accumulation introduces error robustness Locality of kernels handles tempo variations

Indicates note onset candidates Extraction errors in particular for soft onsets Simple peak-picking problematic

Local Pulse Tracking

Predominant Local Pulse (PLP)

Novelty Curve

Page 79: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse Tracking

Local tempo at time : [60:240] BPM

Phase

Sinusoidal kernel

Periodicity curve

Page 80: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse Tracking

Novelty Curve

Predominant Local Pulse (PLP)

Time (seconds)

Page 81: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse TrackingTe

mpo

(BPM

)

Time (seconds)

Borodin – String Quartet No. 2

Page 82: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse TrackingTe

mpo

(BPM

)Borodin – String Quartet No. 2

Strategy: Exploit additional knowledge(e.g. rough tempo range)

Time (seconds)

Page 83: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Pulse Levels

What is the pulse level: Measure – Tactus – Tatum?

1/8

1/4

1/16

Piano Etude Op. 100 No. 2 by Burgmüller

• • • •

•••••••• •••••••• •••••••• ••••••••

• • • • • • • • • • • • • • • •

Page 84: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Pulse LevelsTe

mpo

(BPM

)

Page 85: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Pulse Levels

Time (seconds)

Switching of predominant pulse level

Tem

po (B

PM)

Page 86: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Pulse Levels

1/4 note pulse level

Time (seconds)

Tem

po (B

PM)

Page 87: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Pulse Levels

1/8 note pulse level

Time (seconds)

Tem

po (B

PM)

Page 88: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Pulse Levels

1/16 note pulse level

Time (seconds)

Tem

po (B

PM)

Page 89: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse Tracking

Brahms Hungarian Dance No. 5

Tem

po (B

PM)

Time (seconds)

Page 90: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Local Pulse Tracking

Brahms Hungarian Dance No. 5

Time (seconds)

Tem

po (B

PM)

Page 91: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Applications

Feature design (beat-synchronous features, adaptive windowing)

Digital DJ / audio editing(mixing and blending of audio material)

Music classification

Music recommendation

Performance analysis(extraction of tempo curves)

Page 92: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Application: Feature Design

Time (seconds)

Fixed window size

Page 93: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Application: Feature Design

Time (seconds)

Adaptive window size

Page 94: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Application: Feature Design

Freq

uenc

y(p

itch)

Fixed window size

Time (seconds)

Page 95: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Application: Feature Design

Freq

uenc

y(p

itch)

Time (seconds)

Adaptive window size

Page 96: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Application: Feature Design

Denoising by excluding boundary neighborhoods

Time (seconds)

Freq

uenc

y(p

itch)

Adaptive window size

Page 97: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Application: Audio Editing (Digital DJ)

http://www.mixxx.org/

Page 98: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Application: Beat-Synchronous Light Effects

Page 99: Tempo and Beat Tracking - AudioLabs - Home€¦ · time-lagged local (windowed) sections of itself Convert frequency (Hertz) into tempo (BPM) Convert time-lag (seconds) into tempo

Summary

1. Onset Detection Novelty curve (something is changing) Indicates note onset candidates Hard task for non-percussive instruments (strings)

2. Tempo Estimation Fourier tempogram Autocorrelation tempogram Musical knowledge (tempo range, continuity)

3. Beat tracking Find most likely beat positions Exploiting phase information from Fourier tempogram