Course units list and requirements
Requirements
Most essential are a good quality SVGA beamer and a stereo PA system suitable for the
lecture room. I have a mini-itx Linux box which I bring along to run PureDyne, a live
distro containing everything needed for the course. Pd diagrams are quite intricate so a good projector resolution and some blackout/lighting control for the room makes everything easier on the eyes. In addition
I normally hope to get a VGA splitter and separate flatscreen monitor which means not
having to turn to the main screen when demonstrating programming. 15 - 20 is the
largest group size for practical workshops but it's more productive for everyone if
we have an extra demonstrator present for large workshop groups. If an event is not expressly
advertised as having workstations available please bring your own laptop with Pd pre-installed and a pair of headphones.
Media and sundries
It's also great if all students can bring a USB storage stick to hold their personal project work.
I usually give out a zipped folder of the lecture notes and supporting code
to anybody who wants them if we have time, anyway it is also mirrored on this site. If we are doing
a laptop session then I can hand out copies of PureDyne, 50p or a quid per disc will
help cover duplication. Students may bring USB toys they want to interface, like Wii controllers, games pads
and so on and much fun will be had in the practical sessions.
Unit: PD01L
Title:
Introduction to Puredata for complete beginners
Prereq:
None
Duration:
2 hours
Synopsis:
Gentle introduction to message domain Pd patching with a nod to audio applications
Procedural programming.
Puredata program, architecture, files and usage.
Dataflow concept.
Objects and connections.
GUI elements.
Messages, types, evaluation.
Scalars, blocks, signals, arithmetic, trigonometry.
Evaluation order, rules of precedence.
Counting and random numbers.
Routing, selection, conditionals
Playing back samples with tables.
Synthesising a beat, elementry sequences.
Unit: PD01P
Title:
Introductory Puredata exercises
Prereq:
PD01L or previous use of Pd/Max/MSP
Duration:
2 hours
Synopsis:
Practical part of introduction to Puredata. For groups of 2-4 on laptop or workstations.
Choice of graded problems to exercise message domain Pd programming skills. Requires 1 demonstrator
per 15 students.
Heads or tails? Chance and probability exercise.
Beetle race. Determinacy/stochastic study.
Roulette wheel. Intermediate probability exercise with animation and GUI
Football scores. Data processing task, averages, simple math, text I/O
Random melody generator. Intermediate sequence generation + basic audio
Unit: PD02L
Title:
Programming in Puredata
Prereq:
PD01L or previous use of Pd/Max/MSP
Duration:
2 hours
Synopsis:
Intermediate level programming in Puredata, emphasis on audio.
List operators and symbolic processing.
Boolean/Logical operators, comparison, compound conditionals.
Iteration and range.
Introduction to functions.
Tables, indexing, interpolation.
Input/output, files, text, binary.
Substitution.
Parameters, subpatching and abstractions.
System messages, built in functions, addressing objects/tables.
Pointer types and datastructures.
Intermediate I/O, sockets, network, HID.
Signal rate tables and functions.
Oscillators and wavetable sample playback.
Control modulation.
Unit: PD02P
Title:
Puredata programming exercises
Prereq:
PD02L or significant previous math/programming experience with procedural patching tools
Duration:
4 hours
Synopsis:
Exercise full range of message level Puredata programming. Choice of exercises in pairs or individually.
Wavetable synthesiser. Construct waveforms functionally.
Chat client. Route and parse network messages.
Buy low, sell high. Stock market exercise, statistical analysis and prediction of acquired data
Drum machine. Application building, simple sequencer for samples.
Theremin. Elementary synthesis and HID controllers.
Unit: PD03L
Title:
Signal synthesis with Puredata
Prereq:
Musical knowledge, GCSE/O/A level math or better
Duration:
4 hours
Synopsis:
Whistle stop tour of elementary DSP in Puredata, emphasis on synthesis rather than analysis and processing. Required for "practical synthetic sound design"
Intermediate oscillators, Nyquist, sampling theorem, band limitation.
Fourier and harmonic decomposition, impulse, noise, sinusoidal signals.
Basic shaping in signal domain, construction of sawtooth and square oscillators.
Superposition and additive synthesis, phase, harmonic structure, timbre.
Non-linearity, distortion, waveshaping, basic Chebyshev and Arfib rules.
Modulation and sidebands, constructing spectra, dynamic spectra.
Delay. Phase cancellation, filter theory, feedback, stability.
Standard filters. Subtractive synthesis, VCF, low/high/band/notch filters.
Reverberation. Delay networks, impulse responses, convolution.
Localisation. Phase manipulation, Hilbert, physical psychoacoustics.
Windowing. Granular synthesis, phase synchrony, Hanning, Garbor.
Unit: PD04L
Title:
Practical synthetic sound design with Puredata
Prereq:
PD03L, GCSE/A level math, previous experience with Puredata
Duration:
3 hours
Synopsis:
Creating sounds with Puredata
Control signals, line segments, envelopes.
Composition, decomposition, analysis.
Materials and geometry, complex filters and formants.
Models, methods, parameter currying, codependency, interfaces.
Telephone bell, additive synthesis.
Fire, compositing and subtractive synthesis, stochastic methods.
Water, waveshaping, granular synthesis, control derivatives.
Crowds, intermediate granular methods, level of detail.
Footsteps, trigonometric and polynomial functions, intermediate modelling.
Explosions, delay based pressure wave modelling, Doppler, physics.
Animals, Vocal tract model, speech, excitation, bird syrinx, lion roar.
Unit: PD05L
Title:
Music composition in Puredata
Prereq:
PD01L, PD02L, PD03L
Duration:
2 hours
Synopsis:
Musical applications of Puredata DSP for composers. Overview of traditional synth theory with practical
implementations in Puredata.
Additive methods. Risset bell synthesis. Analysing spectra.
Classic synthesiser architectures, S+S, FM/AM, Shaping, Waveguide, Granular.
Modular synthesiser construction, persistence, patch memory, GUI/interfaces.
Dynamic filter and waveshaping, practical simple synthesisers.
Sequencing. Selector and list based sequences, parsing and generating MIDI.
Comparison of methods. Brass with FM and waveshaping, waveguide physmo.
String models, Karplus-Strong, scanned, bowed vs hammered excitation.
Keyscaling and parameterisation. Tweaking code.
Working with musical scales.
Composition ideas in Puredata, building large scale compositions.
Unit: PD06P
Title:
Final practical study
Prereq:
PD01-5(L)
Duration:
30 hours (guide) non-lecture time
Synopsis:
Choice of specialised final project for assessment (40%)
GUI programming. Build an application for an audio processing task.
Synthesiser construction, build a polyphonic synthesiser with patch memory
Sequencer design, create sequencer interface with editing functions
Sound effects design, undertake a study of one interesting sound effect and develop model
Composition, write or find novel stochastic process, map and orchestrate, record and mix.
Final Project ideas and suggestions
Music signals
Beat finder using [aubio]. Extract timings from recorded audio and store/save in useful ways.
Notator/follower using [bonk] or [fiddle]. Follow live audio features to control another process.
Pianoroll, midi sequencer type note editor. Pattern/bar/song type paradigm, load and save midifiles.
Instrument. Build a realistic model of any one musical instrument, eg flute, snare drum, trumpet etc.
Build a model of an analogue or digital synthesiser, study examples PDX7 (F. Barknecht)
Draw audio. Use a tablet and tables or any other GUI device to draw control data/notation.
Atmospheric. Huge atmospheric sound generator using granular resynthesis methods for example study Particle Chamber
(D. Holzer) or Outerspace (A. Zin).
Superarpeggiator. A super-arpeggiator generates bed like compositions from a single chord or note, may use chaotic or stochastic process, for example study Mozarts Ghost/Hillagizer (A. Farnell).
Games sound, dropped object. Model the case of regular L x W x H solid bodies impacting, bouncing, rolling, for metal, wood and ceramic materials.
Physical interfacing
WiiDrummer, create a HID mapping to use Wii controler as dumsticks or control wand.
Process control. Model a simple power plant in the message domain, include at least 20 realistic variables.
Big Brother. Delocalise a stereo signal to control a camera following sounds.
Music Table. A combinatoric RFID mapper for making music with objects like Gunter Giegers Reactable.
General programming
Network audio processing server. Set up Pd to act as a network pluggable audio insert and monitor a channel for a signal.
Trouble watcher. Use autocorellation to detect the onset of chaotic behaviour.
Speech recogniser. Use any DSP approach and AI schema to recognise "yes" from "no" speaker independently.
Web browser. Implement a web browser in Pd (*note: this is a sucide mission)
State machine. Implement an interpreter for a simple language with a few data registers. Heiland-Allen
has done this for brainf*ck, a reduced BASIC would be interesting.
Graphical Puredata games. Tetris, Pacman, Pong, Space Invaders, or make up your own
Strategic Puredata games. Mathematical or dictionary game, Nim, Hangman etc.
Audio Puredata games. Sound only environments, hunter, duck shoot, audio maze etc.
Workshops
These are usually done as day two of a 2 day workshop with PD01L/P introduction as the first day.
Pd is a broad programming tool, I concentrate on doing audio DSP so often working with another Pd specialist
doing a unit on Gem/Gridflow graphics or advanced physical computing makes a complete puredata experience.
Writing music in Puredata
One day music workshop for producers and composers to teach track building in Pd. Emphasis on complete production,
multitracking using Jack, Ardour, OSC and MIDI. Sample library playback, plugins, audio processing.
Demonstration of composition and production with 64-Studio or Ubuntu Studio DAW environments with Puredata.
Practical synthetic sound design for games and film
Intense one day course on using Puredata to create procedural audio code for realtime clientside
playback in game audio engines or to accompany animation. For sound designers, games audio creators
and games programmers.
Main Page