Author Archives: Tom Erbe
MUS174B – Syllabus
mus 174b – audio studio techniques – winter 2018
cpmc 203/268/269 – tuesday, thursday 11:00 to 12:20
instructor – tom erbe – tre@ucsd.edu – cpmc 254
teaching assistant – jordan morton
topics
- general mix and edit principles
- editing
- filtering, eq – depth and layering
- compression, expansion, gate, limiting, signal routing for effects
- echo, delay, chorus, flange – tempo synchronization of effects
- reverb, spatialization, varispeed/doppler – use of space in mixing
- distortion, emulation, spectral effects
- mastering techniques
- midi (control & synths), tempo templates, synchronized effects, plugins
- integrating computer music software with your DAW
books
- bartlett – practical recording techniques
- tape op magazine www.tapeop.com
- bob katz – mastering audio
class requirements
- 5% attendance + participation
- 30% each of 3 assignments
- 5% extra for leading a group
assignments
- assignment one – layering and space – electronic music
- assignment two – dynamics and highlight effects – acoustic instruments
- assignment three – depth through reverb & structure through automation – mastering
MUS271A (Max w10) – digital reverb
This class is not about fully understanding digital reverb – but just enough to get comfortable with some of the ideas. The patches can be downloaded from here: 09max-reverb.
First I would like you to listen to a chain of allpass~ fillters. This allpass filter is a specially configured delay with feedback that is designed to have a flat frequency response. Though it has a flat frequency over it’s entire decay, at any moment it is pitched. Note how the combination of different delay times and gain will sound more noise-like or more metallic. We include the allpass~ filter in most reverb designs because it adds a dense group of many short echoes.
Our first reverb in this collection is the classic Manfred Schroeder reverb. This is just one of his designs, a combination of 4 delays with feedback (aka comb filters) and 2 allpass~ filters. In this example, I combined 2 of these reverbs in a matrix to create a stereo reverb. One innovation of this reverb is that the gain on each comb~ filter is set so that they all decay at the same time. You can adjust the delay time (500 in patch) to make a longer reverb. This reverb design is the basis of the free
verb~ object.
The next reverb is based on the design of Christopher Moore’s Ursa Major Spacestation. This reverb is notable for it’s use of multitap delay, time modulation, and separate delay taps for early reflections. I should note, my patch sounds similar, but nowhere near as warm and rich as the actual hardware.
This reverb starts to feedback and resonate when the gain is set too high. In this image, the gain is set to 3.2 (the maximum allowed by the patch).
Next we have Miller Puckette and John Stautner’s feedback delay network reverb. I implemented the 16 x 16 matrix reverb in this example. There are no allpass filters in this design. Instead, the diffusion comes from the feedback matrix connecting the 16 delay lines. The matrix has a unitary gain, and the reverb will nicely feedback indefinitely if the gain is set to 1.0. Many reverb designs have been based on the FDN including IRCAM’s Spat, and possibly several of the Eventide reverb designs (my guess).
The last reverb patch in this collection is Jon Dattorro’s emulation of a famous commercial reverb. This reverb design features a circle of allpass filters and delays, with many early reflection taps in the loop. Two of the allpass filters are modulated with varying time, and the sound enters the network after being diffused by a chain of allpass filters. Like the Puckette FDN, the gain can be set to 1.0 for “infinite” reverb.
MUS271A (Max w9) – ambisonics tools
Head on over to Zurich University of the Arts – Institute fo Computer Music and Sound Technology (aka ZHdK – ICST) to download some very usable tools for ambisonic encoding and decoding (the URL is https://www.zhdk.ch/en/5381). ambipanning~ can encode a signal and place it in a set speaker array. ambiencode~ will encode a number of signals at different positions into ambisonic format. ambidecode~ can take that ambisonic set of channels and decode it into a set speaker format. There are many details and sub patchers to look into and understand in each of the help files, but this is a fairly easy and powerful system to work with. To start, you need to know the location of each of your speakers, and learn the message format to specify that location.
MUS271A (Max w9) – granular with phasor and poly~
Download the patch and abstraction here: 09-phasorgrain
To enable faster granular modulation we can use phasor~ to clock the grains at audio rate rather than metro. The signal from phasor~ is multiplied by the number of voices outside of the patch to create a ramp the rises from 0 to almost 8. Also, each message to the poly~ voices is preceded by the message target 0 so that the message (a list of parameters) is passed to all voices.

Inside of each voice, the input from phasor~ * 8.0 is shifted down by the voice number. If the result of this is less than 0.0, 8.0 is added. The intention here is to open the cos~ window whenever between 0.0 and 1.0, and have each voice’s window offset an amount based on the voice number.
Finally, random numbers are generated quickly with a metro, and a gate stops frequency updates when the voice is active. That is, parameters are only updated when the grain is silent.
MUS174B – Assignment 3
1) 3-5 minute piece
– at least 10 tracks total
give a good sense of space and depth. pay attention to left-right and front-back dimensions – change the spatial relations during the piece (bigger/smaller or move the instruments for different sections)
3) use effects to both highlight and polish different tracks – all of these effects should improve the mix
use looping, time stretching, pitch shifting or varispeed
– use delay based reverb
– use convolution reverb with several spaces
4) use automation
– on volumes and pans
– on effect settings
give your piece separate sections with mix and effect changes between the sections
6) master the piece after mixing in a separate session, applying a combination of gain changes, reverb, eq, compression, fade in/out. all of these elements are required
7) present your piece in tenth or finals week
– play the piece, explaining what you did and answering questions.
– play the mastered version and show how it is improved
– hand in documentation with a paragraph describing your mix and mastering process
groups (leader first)
1 (60s) – Daniela, Chloe, Cordane, Salvador
2 (70s) – Shaan, Kenroe, Grant
3 (60s) – Yidai, Caleb, Forest
4 (70s) – Glen, Greg, Cory
5 (80s) – Francis, Camden, Chi, Kostik
6 (40s) – Crystal, Jorge, Tracy
7 (40s) – Chris, John, Matthew
ICAM160B – Syllabus
ICAM 160B – Senior Projects
Spring 2018 – CPMC 268
Instructor: Tom Erbe – tre@ucsd.edu
In this class we will refine your senior project ideas from 160A and work on the realization, presentation and documentation of these projects. We will have one critique in the middle of the quarter, and a final meeting in 10th week prior to the “Best of ICAM” show. Presentation in “Best of ICAM” is required to pass this class.
As about half of the students are working on publishing music, and the other half are working on pieces involving creative technology, we will alternate meeting in these groups from week 2 to week 9. Week 1 and week 10 will be for the entire class.
Classes
- Presentation of ideas behind planned pieces (all students)
- Expansion and critique of ideas (music)
- Expansion and critique of ideas (creative tech)
- First ideas toward realization, recording and production (music)
- First ideas toward realization, technological hurdles (creative tech)
- Critique of first implementation (music)
- Critique of first implementation (creative tech)
- Refinement of realization and first ideas of presentation (music)
- Refinement of realization and first ideas of presentation (creative tech)
- Final presentation plan (Best of ICAM), documentation (all students)
MUS271A (Max w8) – spatialization 1
Here are a few patches that use ILD (inter-aural level difference) and ITD (inter-aural time difference) for more realistic panning. Download here: 07-ILDpanning
1) This patch simply drops the ear most distant from sound (contra-lateral) by 12 dB relative to the ear closest to the sound (ipso-lateral). It uses cos and sin to turn azimuth into cartesian coordinates.
2) This second patch replaces the simple gain control with 2 cascaded lowpass filters at 1400Hz to simulate the filtering effect of the head on the contra-lateral ear. Your results may vary – a smaller head would require a higher frequency filter.
3) With the third panner we add ITD (inter-aural time difference). The difference is set at 1ms when the position is 90 degrees or 270 degrees. No difference when the sound is directly in front (0 degrees) or behind (180 degrees) the listener. Note that a quick change of azimuth can cause doppler effects due to the modulated delay time.
MUS271A (Max w8) – granular patches
Here are all the patches for this topic: 06-granular
1) this first patch demonstrates basic granular synthesis using the poly~ object and metro. “note” is prepended to the message sent to poly~ as it is typically used for polyphony.
the sine grain abstraction is a random pitch sine wave generation with a raised cosine envelope. to turn a cosine into an envelope/window, one must invert it, cut the amplitude by 1/2 and shift it up by 1/2 so that it starts at 0, goes up to 1, and ends at zero. this inverted and shifted cosine is known as a raised cosine window.
2) this example adds 2 operator FM synthesis to a granular framework. the external patch is almost identical to the previous example except that more parameters are packed together and sent to the poly~ object.
the “grain” abstraction is similar to the previous example except that for each grain a random ratio and index is generated and given to a small fm2op abstraction (below).

3) the third example is a granular harmonic oscillator in which each grain generates a random harmonic of the base pitch.
The abstraction is almost identical to the original sine example except that an additional random object is added to create the harmonic frequency multiplier.

4) The final example is a granular sound file player which randomizes the playback start position. A slider in the main patch is used to set the original start position. The sound needs to be loaded with the “replace” message before this patch will work.
The playback abstraction requires a little more logic to derive the playback start, end and time from the pitch and position parameters in the main patch.
MUS271A (Max w7) – sampling
These patches should get you started with sampling. Not all techniques are shown in my examples, and many things are easier if you use the groove~ object. Also, only a few of my examples are shown in this blog entry.
Download the patches here: 05-sampling
1) This first example shows manual playback of a sample by moving a slider to move through the samples. Your slider movement is smoothed out using the line~ object.
2) In this example, line~ is again used to playback the sample, with the speed of playback controlled by setting the beginning and end playback points and the amount of time to get to the end. Reverse playback is easily achieved this way.
Also, sin and cos are used for crossfading between 2 samples.
3) An unrefined patch for stutter playback. The startms number box controls the playback position in the buffer~. The size of the stutter is controlled by the metro time. Pitch shifting is controlled by speed ratio.
A slightly more refined stutter playback patch using trapezoid~ to remove clicks on the beginning and end of each segment. Also, pitch can be controlled by MIDI note number with 69 representing normal playback speed.
4) A sound file player which uses the folder object to open all sound files in a folder, and a popup menu to list and select them. A coll object
could also be used to organize the files.
5) OLA (overlap add) sound file playback. This plays the sound in many overlapping segments, with each segment enveloped by a raised cosine window/envelope. Position and pitch can be controlled independently so that time stretching and pitch shifting are possible. A random offset can be added to each segment to avoid repetition.










