Computational Music Synthesis

First Edition    (Online Version 1.6)

Sean Luke

Department of Computer Science
George Mason University

About the Book

This is an open set of lecture notes on topics related to building music synthesizers in software, and is intended for undergraduate-level computer scientists or those with a significant programming background. It was developed as a series of lecture notes for an undergraduate course I taught at GMU. The topics are short and light on theory. The book also contains a lot of historical background on music synthesizers to put things into context.

I am by no means an expert in this topic: as a result there are no doubt numerous errors in the text, ranging from simple typos to profound misunderstandings. I would appreciate feedback, corrections, and proposed additions: I will be gradually making improvements and fixes to the text.

Topics in the Book

  1. Introduction. Synthesizer basics, usage environments, basic history.
  2. Representations of sound. Units of measure, issues in digitization of signals.
  3. Additive synthesis. Additive implementation, monophony and polyphony.
  4. Modulation. LFOs, envelopes, sequencers and drum machines, arpeggiation, modulation matrices, MIDI modulation.
  5. Subtractive synthesis. Oscillators, antialiasing and Nyquist, wave shaping, wave folding, phase distortion, combination and amplification.
  6. Digital filters. Transfer functions, poles and zeros, magnitude and phase response, Laplace domain, Z domain and the Bilinear transform, second-order filters, filter composition, first-order filters, fourth-order ladder filters, formants.
  7. Frequency Modulation synthesis. Phase modulation, sidebands, Bessel functions and reflection, operators and algorithms.
  8. Sampling. Pulse code modulation, wavetable synthesis, granular synthesis, resampling techniques, real-time interpolation.
  9. Effects. Delays, flangers, chorus, reverb, phasers, physical modeling synthesis.
  10. Controllers. MIDI protocols.
  11. The Fourier Transform. DFT and FFT, windowing, STFT.

How to Download the Book

To download the PDF file (about 25 megabytes), please fill out the form below. To justify giving this sucker away for free, I need aggregate (and only aggregate) statistics on how many people are using it and in what way. I'm a professor, and am not in the business of abusing personal data. Help me out: fill out the form.
















Or if you are without honor, you may skip this step and simply download the text as a PDF (25MB).

Tip Jar

Like the book? I accept tips through Paypal via my email address (which you can find on the front page of the book).

Multimedia for the Book

As part of the course, I also prepared links to a variety of web pages, videos, etc. illustrating how various devices and concepts sounded. Here they are:

Related Software

I have made some pieces of software referenced in the text. They are all open source:

Feedback

This book relies on your feedback to improve it. If you have any complaints, bug-fixes, or suggestions, send email to sean@cs.gmu.edu . If you have a particularly major change to make, I can be convinced to provide you with the original LaTeX source for the document to enable you to make suggested changes freely.

How to Cite the Book

Because it's an online text, you need to be careful with your citation. The correct citation is:
Sean Luke, 2021, Computational Music Synthesis, first edition, available for free at http://cs.gmu.edu/~sean/book/synthesis/

Please always include the URL—it's the only unique identifier to the text! If you prefer BibTeX:

@Book{ Luke2021Synthesis, 
       author =    { Sean Luke }, 
       title =     { Computational Music Synthesis },
       edition =   { first },
       year =      { 2021 }, 
       note =      { Available for free at http://cs.gmu.edu/$\sim$sean/book/synthesis/ } 
     }

Open License

The text is licensed under the Creative Commons Attribution-No Derivative Works 3.0 United States License, except for certain portions of the work licensed under other licenses as mentioned in the frontmatter of the text. A quick license summary:
  1. You are free to redistribute this document.
  2. You may not modify, transform, or build upon the document except for personal use.
  3. You must maintain the author's attribution of the document at all times.
  4. You may not use the attribution to imply that the author endorses you or your document use.

This summary is just informational: if there is any conflict in interpretation between the summary and the actual license, the actual license always takes precedence.

Note that this license does not extend to the source files used to produce the document. Those are still mine (for now).