Supplement to CMP 422 Syllabus

If you choose to spend some of your time exploring sound synthesis procedures by creating PD patches, the following patches are recommended for study during the first six weeks of the semester. The patches within each weekly group illustrate synthesis techniques that correspond roughly with procedures that we will examine with Csound examples during the corresponding week. You need not look at all of the examples within each weekly group. Rather, look at four or five of the example patches within each the collection for each week and use them as models in constructing your own patches.

For further help, consult (1) Designing Sound by Andy Farnell, (2) the online PD Manual and, especially, (3) Miller Puckette's Theory and Techniques of Electronic Music, a text in which many of these patch examples are discussed.

PD patches in the Audio Examples directory: /usr/lib/pd-extended/doc/

Week 1: Oscilators, Tables, Phasors

A01.sinewave.pd : sine wave oscillator A02.amplitude.pd : time varying amplitude control of sine wave A06.frequency.pd : frequency to pitch conversion; controlling oscillator pitch B01.wavetables.pd : arbitrary audio waveforms with tabosc4~ and table10 B02.two-wavetables.pd : time-varying pitch: one oscillator controls the pitch of another B03.tabread4.pd : control of oscillator phase with tabread3~ B04.tabread4.interpolation.pd : finer oscillator phase control with interpolation B06.table.switching.pd : switching between wave tables C01.nyquist.pd : foldover example C02.sawtooth-foldover.pd : another foldover example K04.even.odd.pd : separating odd and even harmonics of a source waveform K05.bandlimited.pd : limiting the bandwidth of sawtooth waves

Week 2: Envelopes and Control Signals

A03.line.pd : the line~ object used for simple amplitude envelopes A02.amplitude.pd : graphicaldisplay of amplitude envelopes A05.output.subpatch.pd : a subwindow is used to control and mute amplitude C03.zipper.noise.pd : line object controls amplitude : vline~ controls amplitude with greater precision C08.analog.sequencer.pd : emulation of analog sequencer and envelope generator D01.envelope.gen.pd : envelope generator for overlapping sounds D02.adsr.pd : adsr (attack-decay-sustain-release) envelope generator D03.envelope.dB.pd : logarithmic envelope generator D04.envelope.quartic.pd : comparison of linear & quartic amplitude envelopes D05.envelope.pitch.pd : creation of pitch envelopes D06.envelope.portamento.pd : pitch glissandi J03.qlist.pd : additive synthesis oscillator bank instrument controlled by a qlist J04.more.adsr.pd : logarithmic (quartic) ADSR amplitude envelope J05.vibrato.pd : vibrato and pitch envelope example J06.adsr.sequenced.pd : qlist text file used to provide sequences of pitches

Week 3


E01.spectrum.pd : graphing frequency spectra of audio signals : converting between audio and control signals C09.sample.hold.pd : pitch control with a sample-and-hold object A07.frequency.mod.pd : classical Chowning frequency modulation algorithm B05.tabread.FM.pd : frequency modulation by means of a wavetable E02.ring.modulation.pd : ring modulator for synthetic signals E03.octave.divider.pd : ring modulator shifts pitch down an octave E04.difference.tone.pd : waveshaping to create difference tones between sinusoids E05.chebychev.pd : waveshaping with Chebychev polynomials E06.exponential.pd : waveshaping with exponential functions E07.evenodd.pd : step sequencer controls a waveshaping instrument E08.phase.mod.pd : classical phase modulation (similar to FM) E10.complex.FM.pd : frequency modulation with 2 modulating oscillators F05.ring.modulation.pd : ring modulating pulse trains F10.sweepable.FM.pd : two cosines applied to FM synthesis F11.anharmonic.FM.pd : fairly complex 2 cosine FM example F12.paf.pd : 2 cosines used as ring modulators H07.ssb.modulation.pd : frequency shifter (single sideband balanced modualtion)

Soundfile Inputs

B07.sampler.pd : tabread4~ reads in samples from a soundfile B08.sampler.loop.pd : a simple (probably TOO simple) looping sampler algorithma B09.sampler.loop.smooth.pd : patch for smooth looping of samples B10.sampler.scratch.pd : sampler with variable loop points B11.sampler.nodoppler.pd : more sophisticated implementation of B10 B12.sampler.transpose.pd : pitch transposition of audio samples B13.sampler.overlap.pd: overlapping sampling of synthetic signal B14.sampler.rockafella.pd : time compression/expansion of samples C05.sampler.oneshot.pd : avoiding clicks when reading in audio samples

Week 4: Pulse Train Waveforms and Random Number Generators

F01.pulse.pd : pulse train oscillator F03.pulse.spectrum.pd : graphing the spectrum of pulse trains F06.packets.pd : windowing functions synthesize enveloped sinusoids (complex example) F08.two.cosines.pd : summing cosines to create controllable complex spectra H05.filter.noise.pd : white noise generator K01.pulse.width.mod.pd : pulse width modulation K02.stereo.pd : stereo pulse width modulation example

Week 5

Filters, Envelope Followers

C07.envelope.follower.pd : an amplitude envelope follower algorithm H01.intro.filters.pd : high-pass, low-pass and band-pass filters H02.bandpass.pd : 2 bandpass filters used to accentuate selected partial frequencies H03.filter.sweep.pd : bandpass filer with time-varying center frequency H04.filter.floyd.pd : another filter sweep example

Delay Lines, Reverberators

G01.delays.pd : delay of oscillator signal with simple delay line G02.delay.loop.pd : delay line with feedback tocreate resonant frequency G03.delay.variable.pd : variable delay time G04.delay.pitchshift.pd : pitch shifting with 2 delay lines G05.delay.reverb.pd : multiple delay lines used for reverberation J07.execution.order.pd : controlling execution order in delay read/write pairs J08.control.blocksize.pd: feeback of a delay line is controlled in a subpatch

Week 6: Complete Instruments

C10.monophonic.synth.pd : MIDI-controlled monophonic synth D07.additive.pd : additive synthesis instrument (Risset bell) D08.table.spectrum.pd : frequency spectra controlled graphically D09.shepard.tone.pd : shepard tone example D10.sampler.notes.pd : sampler with pitch,duration, amplitude control D11.sampler.poly.pd : 8 voice polyphonic version of D10 D12.sampler.bis.pd : MIDI controlled polyphonic sampler J10.waveshaping.pd : emulation of an analog step sequencer K03.envelope.mod.pd : enveloping a sampler loop point to protect against clicks