Audio Features and Vamp Plugins » History » Version 9

« Previous - Version 9/34 (diff) - Next » - Current version
Chris Cannam, 2015-07-15 01:02 PM


Audio Features and Vamp Plugins

General outline

To be propagated to https://www.doc.gold.ac.uk/~mas01cr/teaching/dhoxss15/

  1. Introductory notes and slides on acoustics and audio (CR)
  2. Sonic Visualiser - hands on with waveform and spectrograms (CC)
  3. Introductory notes and slides on audio features (CC)
  4. Sonic Visualiser - hands on with Vamp plugins (CC)
  5. Python/IPython intro (CR)
  6. Feature Extraction using Vamp Plugins in Python (IPython Notebook) (CC)
  7. Audio Indexing and Search in Python (IPython Notebook) (CR)

Breakdown of CC sections

Sonic Visualiser - hands on with waveform and spectrograms
  • Waveform
    1. Start Sonic Visualiser and open "A Friendly Warning"
    2. Show dragging through the file using Navigate tool, and also using the overview at bottom
    3. Play from the start, just to get an idea what it sounds like
    4. Return to the start and zoom in (using the zoom wheel, but noting that the mouse wheel also works)
    5. Notice the different shapes in waveform resulting from different types of synthetic percussive sound (low-frequency kick drum / higher frequency cymbal-type sounds) - refer back to Christophe's notes about correspondence between e.g. signal voltage and speaker cone deflection
    6. Continue until the vocal starts, and observe that we can see very little that relates to e.g. sung pitch, although if we zoom in we can quite clearly see sibilance (these frequencies around 10kHz are pretty much the sweet spot for visibility in a 44.1kHz waveform)
    7. We will return to this track
  • Spectrogram
    1. New session, open piano-scale.wav and play it
    2. Some information can sort-of be perceived and measured from the waveform here: we can see when the notes start, and can get simple fundamental frequency estimate - zoom in to the first note, switch to Select mode, drag out one cycle - it's about 170 samples, so 44100/170 = 259 Hz - the note is a middle C so true value should be nearer to 261, but this is a fair approximation. (But this is a very simple example!)
    3. Now open a plain spectrogram - Pane -> Add Spectrogram (or G key). Observe full range on frequency scale; x axis is time, this is a simple time-frequency breakdown.
    4. Notice that, for each note, we can see the fundamental frequency most strongly and then the harmonic sequence. The harmonics are spaced more widely for higher notes because they are multiples of the fundamental frequency, which is larger. The noise floor is visible because we're using a dB scale, can switch to Linear to isolate only the strong frequencies. There isn't really enough detail to measure much here. (NB the default colour scheme is unhelpful to colour blind users, so it might be worth changing to Sunset scheme.)
    5. Close that pane and open a "melodic-range spectrogram" - Pane -> Add Melodic Range Spectrogram (or M key). Observe the much more limited frequency range and the fact that this spectrogram uses both Linear colour and Sunset scheme by default.
    6. Although the higher harmonics quickly disappear off the top of the scale, we can clearly see that the spacing between harmonics is now the same for each note, and that the semitones are equally-spaced (note spacing corresponding to the major scale intervals).
Introductory notes and slides on audio features
Sonic Visualiser - hands on with Vamp plugins
Feature Extraction using Vamp Plugins in Python

Materials