Supplement to ECMC syllabus for CMP 422 : Advanced Computer Music Techniques
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 the online PD manual
in /usr/lib/pd/doc/1.manual/index.htm
and, especially, Miller Puckette's Theory and Techniques of Electronic
Music at http://www-crca.ucsd.edu/~msp/techniques/latest/book-html/,
a text in which many of these patch examples are discussed.
PD patches in the Audio examples directory: /usr/lib/pd/doc/3.audio.examples
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
C04.control.to.signal.pd : 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 : Modulation:
E01.spectrum.pd : graphing frequency spectra of audio signals
C06.signal.to.control.pd : 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)
Week 3 : 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
a
Week 5 : 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