Computer Music (G6002): Workshop Materials
Also available as a downloadable zip of RTF, HTML and text files:
sccourse.zip
Shortcuts:
1. Introduction and Overview
2. Sound Synthesis 1: Additive, Subtractive, Modulation
3. Sequencing
4. Interaction 1
5. Sound Synthesis 2: Sample-based, Granular
6. Effects
7. Interaction 2
8. Timing and Psychology of Rhythm
9. Algorithmic Composition
10. Open Sound Control, Server Messaging, Network Music
11. Sound Synthesis 3 - Physical Modelling
12. Sound Analysis
Extra exercises and SC technicalities: from arrays to classes
1.1 Getting Started.scd
1.2 Getting Around in SC3.scd
1.3 Obtaining SC3.scd
Week 1 exercise: Explore SuperCollider!
2.1 Subtractive and Additive Synthesis.scd
2.2 Mul and add.scd
2.3 Controlling Synths.scd
2.4 Modulation Synthesis.scd
2.5 More Synthesis Examples.scd
Week 2 exercise: explore the materials thoroughly, looking up
anything you don't understand; create additive, subtractive and
modulation synthesis patches of your own
3.1 Envelopes.scd
3.2 SynthDefs.scd
3.3 Sequencing.scd
3.4 Server-side Sequencing and Triggers.scd
3.5 Nested Scheduling.scd
Week 3 exercise: Practice creating some SynthDefs (which should have a
doneAction:2 in them), and make simple sequences where you schedule
Synths over time in an entertaining way
4.1 Interaction 1.scd
4.2 Graphical User Interfaces.scd
4.3 Further GUI Example.scd
GUI WarmUp and Revision Exercise.scd
Week 4 exercise: If you haven't already, look at task 1 for the
course. Mock up a simple prototype GUI that can be a starting point, and
connects to control some simple sound synthesis. If you're stuck for
ideas, make a subtractive synthesizer with GUI controls for the filter.
Or convert any of your existing sound synthesis patches for GUI control
5.1 Buffers and Sound Files.scd
5.2 Granular Synthesis.scd
5.3 GUI+Loop Example.scd
5.4 Granular Bonus Examples.scd
Week 5 exercise: Explore processing sound files in SuperCollider; create a simple granular synthesizer with some GUI controls.
6.1 Buses.scd
6.2 Control Buses.scd
6.3 Nodes.scd
6.4 Effects 1.scd
6.5 Effects 2.scd
Week 6 exercise: Build an example patch with a global effects unit
(such as a reverb or distortion). You should construct the effects unit
using a separate Synth; this effect should be applied to any other
Synths (which might use any of the SynthDefs you've built so far on the
course). Execution order is critical here and you will need to
understand 6.3 to achieve this.
7.1 Interaction 2.scd
Week 7 exercise: Try out MIDI control of sound using lab keyboards,
or audio input feature control. You might trigger new short-lived Synths
based on input, or modulate parameters of an existing sustained Synth
8.1 Precise Timing in SC.scd
8.2 Some Time and Rhythm Demoes.scd
Week 8 exercise: explore, and vary, the examples of psychology of
rhythm. Can you also implement any of the more advanced compositional
rhythmic structures (such as multiple simultanous tempi, or metric
modulation) discussed in the lecture?
9.0 tuning systems.scd
9.2 Patterns.scd
9.2a PatternPractice.scd
9.1 Algorithmic Strategies.scd
9.2 Patterns.scd
9.3 Probability Distributions (optional).scd
Week 9 exercise: If you haven't already, look at task 2 for the
course. Plan an algorithmic composition, deciding upon style, and
algorithmic structuring. What aspects of the work could change with each
run of the program?
10.1 Open Sound Control.scd
10.2 Messaging Style.scd
10.3 Network Music Lab.scd
10.4 Mouse To Lang.scd
Week 10 exercise: You should review and consolidate all the work
we've covered so far. We'll also try out networking in the lab class.
11.1 Physical Modelling.scd
11.2 Analogue Modelling.scd
Week 11 exercise: Explore physical modelling synthesis, creating
patches of your own especially using the source (excitation signal) +
filter (body resonator) model
12.1 FFT.scd
12.2 Singing Voice Synthesis.scd
Week 12 exercise: Try out the FFT based UGens to do spectral processing
SC Programming Exercises.scd
Patterns Exercises.scd
01 Programming.scd
02 Arrays.scd
03 Plotting.scd
04 Global Variables and Environments.scd
05 Clocks and Scheduling.scd
06 Routines and Tasks.scd
07 Dealing with Large Projects.scd
08 Writing Classes.scd
You will need these two class files:
NastySynth.sc
SuperMario.sc
09 Programming (advanced).scd
10 Extending SuperCollider.scd
Classes exercise: Convert one of your existing programs into a class
and client code; how does this neaten and clarify your work? Consider
how to use classes to tidy up your portofolio- is there any reusable
code you can factor into classes? After you've done this, explore third
party libraries galore!
Some links to extensions:
SourceForge sc3-plugins project (including many third party library projects)
The Swiki open resource site has links to many SC extensions