Readings
There are no required textbooks for CS203. CS203 draws from a variety of different sources, meaning that no one book perfectly matches all the topics discussed in this course. If you are considering purchasing any materials, then I would suggest the following two books:
- The SuperCollider Book by Scott Wilson, David Cottle and Nick Collins from MIT Press
- The Computer Music Tutorial by Curtis Roads from MIT Press
The former book is written by some of the creators and editors of the SuperCollider platform and offers good insights into the mechanics of SuperCollider. The latter delves into many of the topics on digital signal processing and sound synthesis. Both books contain numerous readings for various topics throughout the semester. The instructor will provide those readings when necessary but students may wish to purchase their own copy to explore other topics discussed.
We will also draw from a variety of other sources as well that are free and available online.
- SuperCollider Help Files: http://doc.sccode.org/
- Introduction to Digital Filters with Audio Applications by Julius O. Smith III: https://ccrma.stanford.edu/~jos/filters/
- The Scientist and Engineer’s Guide to Digital Signal Processing by Steven W. Smith: http://www.dspguide.com/
- The Theory and Technique of Electronic Music by Miller Puckette: http://msp.ucsd.edu/techniques/latest/book-html/
Readings for specific topics below can be found in this Google Drive. Note that you must have a Wellesley account and be logged in to access this material.
Topics
The topics below correspond to the topics found on the calendar.
CS203 Introduction
- Slides: intro.pdf
- Readings:
- A high-level overview from 1963 on Computer Music from one of the originators of the field Max Mathews: The Digital Computer as a Musical Instrument
- Optional: There is more discussion of the client/server architecture in the SC HELP Document called “Client vs. Server”.
Sclang Basics
- Slides: sclang_basics.pdf
- Code: sclang_basics_code.zip
- Notebook Solutions: sclang_basics_solns.html
- Videos:
- Course Introduction: https://youtu.be/8MoLEHKKzNU
- Sclang Basics (Part 1): https://youtu.be/_CtISv_PrOQ
- Sclang Basics (Part 2): https://youtu.be/AmC4UXUTEpo
- Readings:
- Readings from the SC Help Documents
- Getting Started With SC (in SC Help Docs): 02. First Steps and 04. Functions and Other Functionality
- Assignment Statements
- Literals
- Control Structures
- Optional: Scoping and Closures
- From the SuperColliderBook, read the Beginner’s Tutorial (pgs. 3-54). Note that there is more here that will be discussed later but provides a great introduction to the basics of sclang. Use the reading link above.
- Readings from the SC Help Documents
Introduction to Sound and Soundwaves
- Slides: sound_basics.pdf
- Code: sound_basics_code.zip
- Notebook Solutions: sound_basics_solns.html
- Readings:
- Musimathics: The Mathematical Foundations of Music (Available online through the Wellesley Library): pg. 1 - 15
- Curtis Roads’ The Computer Music Tutorial: pg. 7 - 20 (Use reading link above)
Basic Waveforms
- Slides: waves.pdf
- Code: waves_code.zip
- Notebook Solutions: waves_solns.html
- Readings: A summation of the classic waveforms discussed in class with audio examples - https://cecm.indiana.edu/etext/synthesis/chapter4_waveforms.shtml
- For Fun: Here is some code for a dubstep wobble bass. It simply uses a pulse wave that fluctuates between odd harmonics and even harmonics as the basis of its sound source. Try it out! wobble_bass.scd
SynthDefs
- Slides: synthdefs.pdf
- Code: synthdefs_code.zip
- Notebook Solutions: synthdefs_solns.html
- Readings:
- SuperCollider Documents:
- From Getting Started with SuperCollider Guide: SynthDefs and Synths, Groups, and Busses
- Mark Polishook Tutorial: 07_SynthDefs
- The SuperCollider Book: Chapter 2 (Use reading link at top)
- SuperCollider Documents:
Playing Audio Files in SuperCollider
- Slides: play.pdf
- Code: play_code.zip
- Notebook Solutions: play_solns.html
- Readings: No readings
Sound Envelopes
- Slides: envelopes.pdf
- Code: envelopes_code.zip
- Notebook Solutions: envelopes_solns.html
- Readings:
- SC Class Documents: Env, EnvGen, and Done
- Curtis Roads’ The Computer Music Tutorial: pg. 95 - 98
- The Theory and Technique of Electronic Music: Chapter 4, pg. 89-94
Patterns, Streams, and Events
- Slides: patterns.pdf
- Code: patterns_code.zip
- Notebook Solutions: patterns_solns.html
- Videos: https://www.youtube.com/playlist?list=PLas4qeRJZOhPWbp-8c8XBaqtMa-pJ3ser
- Videos: https://www.youtube.com/playlist?list=PLas4qeRJZOhN9NTbzzQqKJmQ7oCvc7oKa
- Readings:
- SuperCollider Guides: Pattern Guides and Understanding Streams, Patterns, and Events
The Digital World
- Slides: digital_representation.pdf
- Code: digital_representation_code.zip
- Notebook Solutions: digital_representation_solns.html
- Readings:
- The Scientist and Engineer’s Guide to Digital Signal Processing, Chapter 3. Note that the discussion here goes beyond the depth discussed in class. Great resource for understanding more about the digital-to-analog and analog-to-digital conversions.
- Curtis Roads’ The Computer Music Tutorial: pg. 20 - 38 and pg. 87 - 95 (Use reading link above)
- The Theory and Technique of Electronic Music, Chapter 2. A good and more complete discussion of sampling and wavetable synthesis/interpolation.
Amplitude Multiplication
- Slides: amp_multiplication.pdf
- Code: amp_multiplication_code.zip
- Notebook Solutions: amp_multiplication_solns.html
- Readings:
- The Theory and Technique of Electronic Music: Chapter 5, pg. 119-126
- Curtis Roads
Frequency/Phase Modulation
- Slides: freq_phase_modulation.pdf
- Code: freq_phase_modulation_code.zip
- Notebook Solutions: freq_phase_modulation_solns.html
- Readings:
- John Chowning’s Seminal Paper on FM
- The Theory and Technique of Electronic Music: Chapter 5, pg. 132-134
Delay
- Slides: delay.pdf
- Code: delay_code.zip
- Notebook Solutions: delay_solns.html
- Videos: https://www.youtube.com/playlist?list=PLas4qeRJZOhPw2BeUMBzXOC0i3pG9UMM6
- Readings:
- From McGill’s online materials: https://www.music.mcgill.ca/~gary/618/week1/delayline.html
- Curtis Roads’ The Computer Music Tutorial: pg. 432 - 440
Filters
- Slides: filters.pdf
- Code: filters_code.zip
- Videos: https://www.youtube.com/playlist?list=PLas4qeRJZOhMVSn4Lb1toO7eZf81CH3h9
- Readings:
- Introduction to Digital Filters with Audio Applications: The Simplest Lowpass Filter. This contains the mathematical analysis of the one-sample delay shown in class.
- A good introduction to filters from UCSD’s online materials: http://musicweb.ucsd.edu/~trsmyth/filtersDelayI/filtersDelayI.html
- Curtis Roads’ The Computer Music Tutorial: pg. 397 - 419
Reverb
- Slides: reverb.pdf
- Code: reverb.scd
- Videos: https://www.youtube.com/playlist?list=PLas4qeRJZOhN9UbRhwNU9XcWFHYUhqaiL
- Readings:
- Manfred Schroeder’s Seminal Paper on Reverb: Natural Sounding Artificial Reverberation
- Curtis Roads’ The Computer Music Tutorial: pg. 472 - 484
Dynamics
- Slides: dynamics.pdf
- Code: dynamics_code.zip
- Notebook Solutions: dynamics_solns.html
- Readings: No Readings
Creating A Musical Work
- Slides: writing_music.pdf
- Code: demo.zip
MIDI Protocol
- Slides: midi.pdf
- Code: midi.scd
- Videos: https://www.youtube.com/playlist?list=PLas4qeRJZOhPWW8DmW8H6CsQRx8PTENiY
- Readings:
- The MIDI specification: https://www.midi.org/specifications
- Curtis Roads’ The Computer Music Tutorial: pg. 972 - 1016
GUIs (Graphical User Interfaces)
- Slides: gui.pdf
- Code: gui_code.zip
- Notebook Solutions: gui_solns.html
- Readings: No readings
OSC Networking
- Slides: osc.pdf
- Code: osc_code.zip
- Notebook Solutions: osc_solns.html
- Readings:
- OSC Specification
- SuperCollider Guides: OSC Communication, Node Messaging, Server Command Reference
- Best Practices for Open Sound Control - Note that this is a scholarly article by the creators of OSC but contains some great information about OSC. Some parts of it may be inaccessible depending upon your CS/music background.
Frequency Domain Theory
- Slides: freq_domain.pdf
- Code: dotprod.py
- Videos:
- Readings:
- Guide to the DFT written by Andrew Davis: https://github.com/andrewdavis33/DFT-Guide/blob/master/dftGuide.pdf
- Curtis Roads’ The Computer Music Tutorial: pg. 1075 - 1112
- Supplemental Readings:
- Intuitive Guide to Fourier Analysis by Charan Langton and Victor Levin, Chapter 1: http://complextoreal.com/wp-content/uploads/2012/12/FFTChapter1.pdf
- Fourier Analysis by David Morin (note that this is designed for physicists but contains a proof of the Fourier Series/Transform from an arbitrary waveform): http://www.people.fas.harvard.edu/~djmorin/waves/Fourier.pdf
- An Introudction to Fourier Analysis by Arthur L. Schoenstadt: https://www.math.bgu.ac.il/~leonid/ode_9171_files/Schoenstadt_Fourier_PDE.pdf
Fast Fourier Transform
- Slides: fft.pdf
Practical Uses of FFT in SuperCollider
- Slides: fft_in_sc.pdf
- Code: sc_code.zip
Wrapping It All Up
- Slides: outro.pdf