Expert
- Geoffroy Peeters
Objectives of this module
- Understand:
- Fourier Transform
- Filter-bank decomposition
- Onset detection function
- Periodicity estimation using the the spectral sum algorihtm
- Design an algorithm that
- estimate the tempo over time of a given audio signal
Outcomes
- Report explaining
- the algorithms used to estimate the tempo from the analysis of a given audio track
- the design decisions of the final script
- Database of music tracks and their corresponding estimated tempo
- Algorithms in Matlab/Python/Java that
- takes as input an audio file
- outputs its tempo in beat-per-minute (bpm) over time
Methodology
- Small bibliography review with resources provided by the expert
- Shared repository (brand 'algorithm')
- Test units
- Weekly meeting
Milestones
- 26/11: Soutenances PAN1 et avancement du projet
- 04/02: PAN2: Soutenances de modules, y compris GL, debrief tuteur
- Each module should be developed in a prototype language (Matlab/Python/Java)
- 18/03: Soutenances PAN3
- Each module should be developed in the targeted language (possibly in real-time)
- Report should be provided
- 13/05: Bilan PACT: séance tutorée d’évaluation de collaboration, apprentissages, confrontation au concret. Présence obligatoire.
- Each module should be integrated in the final application
- Update of the report should be provided
- Individual oral examination of each student
Evaluation
- Report quality
- Continuity of work
- Algorithm quality
- Brief oral presentation and questions (each student)
Resources
- Official PACT link: Link
1) Introduction to signal processing: see the videos introducing signal processing created by Bertrand David
- see Link
The following video at 07:08), describes a first method to estimate the onsets of the musical notes:
- see Link
2) To estimate the tempo, we will compute the energy inside several frequency bands. The frequency bands can be obtained either using
- either a filter-bank method
- or a Short-Time-Fourier-Transform (STFT)
- see wikipedia
- see Link
To compute the onsets, we will compute the temporal derivative of the energy function inside each frequency bands, apply a Hafl-Wave-Rectification function, sum over frequency bands, apply a threshold to the resulting functions and then apply a peak-picking algorithm
- see Link
3) We estimate the tempo (in beat per minute) from the onset function using the Fourier Transform
- see Link
We apply the spectral sum algorihtm to get the dominant period
We can perform this around each time to estimate the evaluation of the tempo over time (tempogram)