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.

    Home Main Page