CS 583 - Introduction to Computational Audio

Fall, 2021


Instructor and TF Coordinates

Useful Links

Instructor:Wayne Snyder
      Email: waysnyder at gmail dot com
     Cell Phone: 617-966-(2^10 + 41)(email vastly preferred)
     Office Hours in MCS 210:T 3-5

Teaching Fellow: Mark Lemay
      Email: lemay at bu dot edu
      Office Hours: TBA


Schedule of Lectures and Events

Class
Topic and/or Event
Readings/Viewings
Lecture Slides & Code Examples
Homeworks, Tests & Optional
0
(W 9/8)

Overview of course policies; meet and greet; presentation of schedule of topics with examples.

Syllabus

Video recording of first class

 

Representative survey of Audio Processing:

CMRA

1
(M 9/13)

Overview of physical properties of sound waves: frequency, amplitude, phase, intensity, loudness.

Measuring loudness: logarithmic scales and decibels.

Basics of digital signals and sampling; quantization error, aliasing, and choice of bit depth and sample rate; dynamic range; the Nyquist Theorem.

Introductory reading on waves and digital signals: PDF

Read sections 4.1 - 4.5 thoroughly.

Sorry for the bad job with the copying!

Tutorial (with animations) of sound waves: http://www.acs.psu.edu/drussell/demos.html

Look at these animations: 

  • What is a Wave;
  • Wave Motion in Space and Time;
  • Superposition of Two Waves;
  • Phase changes upon reflection from hard, soft, and mixed boundaries;
  • Reflections from Impedance and the Standing Wave Ratio.

Lecture One: PDF

Fun video by Vi Hart on basics of sound: HTML

Cool video of visualizing sound waves: HTML

Useful summary of loudness and amplitude issues (and stereo panning): HTML

Slides from talk surveying amplitude/intensity of sound waves (a bit too much detail for us, but here if you are interested): PDF

 

2 (W 9/15)

Sinusoids created from sum of pure sine waves; time domain vs frequency domain representations.

Introduction to musical acoustics: How do guitar strings vibrate?

Basics of musical signals: Fundamental frequency, harmonic series, partials, timbre.

Musical acoustics concluded: open vs closed pipes; vibrating soundboards; the vocal tract.

 

 

Excellent reading on spectra as they relate to musical instruments: HTML

Then take a look at the following two Wiki articles, which are excellent:

Harmonic Series

Timbre

Acoustics of Strings: HTML (read first part, stop when you see "Harmonics in Music")

Acoustics of Open and Closed Pipes: HTML (read whole thing!)

Acoustics of Vocal Tract: HTML (optional)

 

Lecture Two: PDF

Beautiful Wikibook on some (not all) important topics in Sound Synthesis: HTML

Interactive applet showing how two sine waves add together--with sound! HTML

Limited but beautiful animation of Fourier Synthesis using real phasors: HTML

Phasor addition animation: HTML

Nice description of how standing waves in pipes actually work, with animation: HTML

Similar animation for traveling waves: HTML

Interesting talks at this workshop on musical timbre: HTML

 

3 (M 9/20)

Additive synthesis:

Additive Synthesis in Python

Introduction to HW 01

 

Very complete technical chapter on audio synthesis (from Musimathics): PDF

Wikibook page on Additive Synthesis: HTML

CRMA on additive synthesis: HTML

Short description of ASDR envelopes: HTML

Wikipedia article on Tremolo: HTML

Remind yourself of the definition of exponential decay by reading the Wiki article (HTML) but stop when you get to "solution of the differential equation."

Lecture 03 PDF

Intro To Audio Programming: ZIP

HW 01: ZIP

HW 01 Solution: IPYNB

A good summary of why and how Python makes a good language for audio programming: PDF

Download site for Conda (recommended for installing packages for Jupyter Notebooks): HTML

Conda cheatsheet: PDF

4
(W 9/22)

Modulation synthesis: amplitude, ring, and frequency modulation.

Wikibook page on Amplitude and Ring modulation: HTML

CMRA page on Frequency Modulation (with applet and sound samples): HTML

John Chowning's original paper on FM:: HTML

 

Lecture 4: PDF

Notebook with FM Code: IPYNB

Animation with sound for amplitude modulation: HTML

5
(M 9/27)

Conclusions on Ring and Frequency Synthesis: spectra and phase issues.

Physical Modelling Synthesis; Karplus-Strong String Synthesis

 

 

CRMA on Physical Modeling and Karplus-Strong: HTML

 

Lecture 5: PDF

Notebook with KS Code: IPYNB

Very complete summary/taxonomy of music synthesis techniques: HTML

WaveNet for speech synthesis: HTML

Here is the first paper on Karplus-Strong: PDF

Here is a more extensive examination of the Karplus-Strong Algorithm and its extensions: PDF

Nice blog post with code: HTML

6
(W 9/29)

Conclusions on Physical Modelling: Spatialization and Reverberation; Filters and Convolution

Excellent summary of Sound Spacialization and Reverberation: PDF

Wikipedia on Moving Average Filters: HTML

(just look at the basic definition and scan the rest)

Wikipedia article on convolution: HTML (just try to understand the basic definition, but do look at the animations down the page).

Here is a short tutorial on software for convolution reverb (with audio examples): HTML

Lecture 6: PDF

Notebook with Convolution and Reverb Code: IPYNB

Here is a brief tutorial on convolution with examples in 1D and 2D: HTML; skip the stuff on impulse response and linear, time-invariant systems and just concentrate on the examples as a way of understanding the algorithm

Here is a nice interactive animation of convolution in the continuous case: HTML

Informative article about collecting impulse responses for convolution reverb: HTML

Collection of impulse responses from around the USA: HTML

Nice tutorial on Panning Laws: HTML

7
(M 10/4)

Introduction to Digital Signal Processing; sliding-window-based analysis of musical signals.

What happens when we multiply (or square) sine waves? Correlation and auto-correlation.

Algorithms for determining fundamental frequency: Zero-crossing rate, correlation, and auto-correlation

Nice explanation of the basic formula for multipling sine waves: HTML

Correlation

Auto-Correlation, especially the section on Signal Processing, and especially Formula 7 here, with the understanding that we are dealing with real signals, so y = y bar -- so you can ignore the bar in the formula. Essentially, convolution, correlation and auto-correlation are variations of the same idea, and all are just another use of the dot product.

Lecture 7: PDF

Lecture 7 Notebook: IPYNB

8
(W 10/6)

Determination of fundamental frequency using auto-correlation with "peak picking,"  using interpolation to improve the accuracy; upsampling; other methods (zero-crossing, histograms); general problems  (which peak is F0?). 

Here is a short survey of F0 determination algorithms: HTML

More extensive survey: PDF

.
Lecture 8: PDF

Lecture 8 Notebook: IPYNB

Very complete blog post on quadratic interpolation and its characteristics: HTML (the first part is well worth reading, then it gets wonky./td>
9 (T 10/11)

The Discrete Sin  Transform; Using complex numbers to bundle together frequency, amplitude, and phase; The Discrete Fourier Transform and the Fast Fourier Transform

 

Very general overview of applications of the FT in digital music: HTML

Reasonably simple explanation of the basic concepts, with fun animations: HTML

Here is a short, intuitive explanation of the Discrete Fourier Transform in the complex-number case: HTML

Fun animation video on YT: HTML

Interesting summary of FFT techniques, including sliding window analysis, applied to bird songs: PDF

Lecture 9: PDF
10 (W 10/13)

Issues with the FFT: Resolution in time and frequency, "leakage" and "spray," Hann Windows.

Reading on using the FT, windowing, leakage, etc.: PDF Lecture 10: PDF

Intro To Audio Programming: ZIP

HW 02 (Due 11/24): ZIP

11 (M 10/18)

FFT concluded: Interpreting and using spectra; Varieties of spectrograms; The Inverse Fourier Transform,

Here is a nice summary of the FFT: HTML

Lecture 11 Slides: PDF

Lecture 11 Notebook: IPYNB

12 (W10/20) One more look at synthesis: summarizing spectra; wavetable synthesis

Here is a fun video introducing the topic of wavetable synthesis on a hardware synthesizer: HTML

The Wikipedia article is also worth reading: HTML

Lecture 12 Notebook: IPYNB

 

13 (M 10/25)

Changing time (and therefore pitch): 1D interpolation and resampling;

Unlocking pitch and time: The phase vocoder

The wiki articles are useful: HTML1, HTML2

Here is a fairly readable introduction to the basic principles: PDF

Two short, readable summaries: HTML1, HTML2

Here is a short tutorial on phase vocoders used for pitch shifting: HTML

The Wiki article is good, and has the basic references to the literature: HTML

Lecture 13 Notebook: IPYNB

Tutorial (with references) on T/P modification: HTML

A very complete survey of techniques for Pitch and Time Scale Modification: PDF

One of the most important improvements to Phase Vocoder for Pitch/Time Scale Mod is here: PDF

14 (W 10/27) Introduction to Music Information Retrieval; Onset detection

 

Short overview of Onset Detection in Librosa: HTML

Book chapter on onset detection and rhythm analysis: PDF

Tutorial paper on onset detection: PDF

Survey and comparison of Onset Detection methods: PDF

Lecture 14: PDF

Lecture 14 Notebook: IPYNB

15 (M 11/1) Onset detection using spectral energy; Beat detection

 

Book chapter on onset detection and rhythm analysis: PDF

Lecture 15: PDF
16 (W 11/3)

Beat detection; Discussion of Final Projects

  Lecture 16: PDF

Lecture 16 Notebook: IPYNB

 
17 (M 11/8) Conclusions on Rhythm Analysis, 3D Periodograms; Self-similarity matrices, alignment, structure analysis

The Wikipedia article on Self-Similarity Matrices is short but useful: HTML

Here is a relatively readable early paper on structure detection, with some nice diagrams: PDF

Lecture 17: PDF
18 (W 11/10) Chord identification by template matching; Chroma spectrograms

Book chapter on Chord Recognition: PDF

Lecture 18: PDF

Lecture 16 Notebook: IPYNB

19 (M 11/15) Content-based Retrieval

Book chapter on Content-based Retrieval: PDF

Lecture 19: PDF
20 (W 11/17) Introduction to Deep Learning for Audio Analysis   Lecture 20: PDF  
21 (M 11/22) Instrument Identification   Lecture 21: PDF
22 (W 11/24) Genre Classification   Lecture 22: PDF
(M 11/29 - F 12/10) Work on Projects  
(Sat 12/18) End of exam period