{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"FMP\"\n", "\"AudioLabs\"\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"C5\"\n", "

Chapter 5: Chord Recognition

\n", "
\n", "\n", "
\n", "\n", "

\n", "In Chapter 5 of [Müller, FMP, Springer 2015], we consider the problem of analyzing harmonic properties of a piece of music by determining a descriptive progression of chords from a given audio recording. We take this opportunity to first discuss some basic theory of harmony including concepts such as intervals, chords, and scales. Then, motivated by the automated chord recognition scenario, we introduce template-based matching procedures and hidden Markov models—a concept of central importance for the analysis of temporal patterns in time-dependent data streams including speech, gestures, and music. \n", " \n", "

\n", "\n", "

\n", "5.1 Basic Theory of Harmony
\n", "5.2 Template-Based Chord Recognition
\n", "5.3 HMM-Based Chord Recognition
\n", "5.4 Further Notes\n", "

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Notebooks\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "
TopicRelation to [Müller, FMP, Springer 2015] & DescriptionHTMLIPYNB
Intervals[Section 5.1.1]
Semitone; cent; equal-tempered scale; enharmonic equivalence; harmonic series; interval; unison; octave; fifth; pure interval; just interval; consonance; dissonance; sinusoid examples\n", "
[html][ipynb]
Chords[Section 5.1.2]
Chord; dyad; triad; tetrad; major; minor; diminished; augmented triad; root; inversion; seventh chord; sinusoid examples
[html][ipynb]
Musical Scales and Circle of Fifths[Section 5.1.2]
Musical scale; scale step; chromatic scale; half step; whole step; major scale; minor scale; scale degree; tonic; dominant; subdominant; diatonic scale; circle of fifths; musical key; sinusoid examples
[html][ipynb]
Template-Based Chord Recognition[Section 5.2.1]
Prefiltering; postfiltering; major triad; minor triad; chroma feature; template; chord label; time–chord representation; Beatles example (Let it be)
[html][ipynb]
Chord Recognition Evaluation[Section 5.2.2]
Ground truth; label; correct; incorrect; accuracy; true positive; false positive; false negative; chord ambiguity; major–minor confusion; tuning issue; segmentation ambiguity; chroma feature type; Bach example (BWV 846, Prelude)
[html][ipynb]
Hidden Markov Model (HMM)[Section 5.3.1, Section 5.3.2]
Markov chain; state; Markov property; state transition probability; discrete HMM; observation symbol; emission probability; evaluation problem; uncovering problem; estimation problem
[html][ipynb]
Viterbi Algorithm[Section 5.3.3.2]
Uncovering problem; dynamic programming; Viterbi algorithm; implementation; logarithmic domain; toy example
[html][ipynb]
HMM-Based Chord Recognition[Section 5.3.4]
Discrete HMM; codebook; self-transition; transposition-invariant transition matrix; uniform transition matrix; Bach example (BWV 846, Prelude);
[html][ipynb]
Experiments: Beatles Collection[Chapter 5]
Beatles collection; annotation; reference; chord label reduction; chroma feature (STFT, CQT); template-based approach; HMM-based approach; Viterbi decoding; postfiltering; prefiltering; smoothing; self transition probability; class imbalance; dull chord recognizer; triad reduction; non-chord reduction; evaluation; tuning; cross validation; Beatles examples (Let It Be, Here Comes the Sun, Ob-La-Di, Penny Lane)
[html][ipynb]
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "
\"C0\"\"C1\"\"C2\"\"C3\"\"C4\"\"C5\"\"C6\"\"C7\"\"C8\"
" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.16" } }, "nbformat": 4, "nbformat_minor": 1 }