Music 220a | Spring 2021
Fundamentals of Computer-Generated Sound
Ge Wang and Matt Wright
Barbara Nerness (TA) and Mike Mulshine (TA)

syllabus | assignments | homework showcase

Class meeting: Spring Quarter MW 4:00-5:20pm
Location: (virtual over Zoom)
Prerequisite: This is an introductory course; all are welcome.

Course Summary
This is an introductory course to computer music, covering a variety of topics including computer-based sound generation, programming tools for music creation, digital synthesis techniques, as well as technological, aesthetic, and social issues in computer music. The course uses the ChucK programming language for assignments. The format consists of lectures, discussions, code-based creative projects, studio-style critiques, and a final project. Programming experience is recommended but not required; all are welcome.

Course Topics (subject to update)
What is computer music? (we believe every student will gain a good initial grasp of these topics by beginning of Week 3)
  • What is a digital sample?
  • What is digital audio?
  • What are some common tools people use to work with digital audio?
  • Basics of time domain, frequency domain, and time-frequency domain for audio. (forming an intuition for “reading” these and “knowing what they sound like”)
  • A brief survey of some active areas in the domain of computer music
How to make computer music? Bread and butter programming elements
  • What is a unit generator?
  • How to work with control rate vs. audio rate (block-based processing vs. single-sample processing)
  • Techniques for structuring musical events occurring over time
  • Interactivity (responding to QWERTY, mouse, MIDI, OSC)
How to make computer music (part 2)? Basic techniques for sound synthesis
  • Generators: oscillators, noise, sample playback
  • Envelopes and filters
  • Processing: echo, reverb, other effects
  • Basic synthesis techniques: additive, subtractive, physical modeling, frequency modulation, and more
  • Paying attention to psychoacoustics in sound synthesis (auditory streaming, masking, critical bands, loudness curves, knowing how to use the whole frequency spectrum)
How to make computer music (part 3)? Computer music system thinking
  • Interconnectivity (getting your software to work with other software)
  • Breaking larger software into smaller chunks (procedures, subpatches, modules…)
  • Designing for the total experience (audio, musical, performative, visual, etc.)
Why make computer music? Some aesthetic questions
  • Why, indeed, make computer music?
  • What makes for “good” computer music?
  • What are the unique affordances of the computer for music making?
Who makes computer music, where and when? Some social questions
  • Historically, who makes computer music?
  • Combatting the problem of under-representation in computer music
  • Technology and the “democratization” of music production

GDoc/Glossary Log (GLOG)

  • homework #0: "Hello Computer (Music)"
    due date: Friday, 2021.4.2, 11:59:59pm
    in-class listening: Monday, 2021.4.5

  • homework #1: "Hand-Crafted Digital Audio"
    due date: Tuesday, 2021.4.13, 11:59:59pm
    in-class listening: Wednesday, 2021.4.14

  • homework #2: "Block-Rockin' Synths"
    milestone: Wednesday, 2021.4.21 (in-class)
    final due date: Monday, 2021.4.26, 11:59:59pm
    in-class listening: Wednesday, 2021.4.28 (in-class)

  • homework #3: "Composing with Perception"
    milestone: Wednesday, 2021.5.5 (in-class)
    final due date: Tuesday, 2021.5.11, 11:59:59pm
    in-class listening: Wednesday, 2021.5.12 (in-class)

  • final project: "Design Your Own"
    milestone 1: Monday, 2021.5.17 (in-class)
    milestone 2: Monday, 2021.5.24 (in-class)
    final due date: Tuesday, 2021.6.1, 11:59:59pm
    listening party: Wednesday, 2021.6.2 (in-class)

  • homework showcase

CCRMA | Music Department | Stanford University