Tour of UGens:
Guides | UGens | Server > Nodes

Tour of UGens

Signal Processing in SuperCollider
1. A Tour of available Unit Generators.
SuperCollider has over 250 unit generators. If you count the unary and binary operators, there are over 300. This tour covers many, but not all of them.

categories of unit generators:

  • sources: periodic, aperiodic
  • filters
  • distortion
  • panning
  • reverbs
  • delays and buffer ugens
  • granular synthesis
  • control: envelopes, triggers, counters, gates, lags, decays
  • spectral
2. Techniques
  • artificial space - decorrelation, beat frequencies, delays.
  • series and parallel structures.

Note: The category browser contains a category for UGens, which provides another useful way to get an overview of the available UGens, including those which were created since this tour was written.

Periodic Sources: Oscillators.

LF - "Low Frequency" Unit Generators.

LFPar, LFCub, LFTri, Impulse, LFSaw, LFPulse, VarSaw, SyncSaw - has geometric waveforms, not band limited. will cause aliasing at higher frequencies.

LFPar, LFCub, LFTri, LFSaw, Impulse
arguments: frequency, phase, mul, add

LFPulse, VarSaw
arguments: frequency, phase, width, mul, add

arguments: syncFreq, sawFreq, mul, add

Band Limited Oscillators

SinOsc, FSinOsc, Blip, Saw, Pulse - will not alias.

SinOsc, FSinOsc
arguments: frequency, phase, mul, add

arguments: frequency, numHarmonics, mul, add
arguments: frequency, mul, add
arguments: frequency, width, mul, add
Klang - sine oscillator bank
arguments: `[ frequencies, amplitudes, phases ], mul, add

Table Oscillators

Osc, COsc, VOsc, VOsc3 - uses a buffer allocated on the server.

arguments: buffer number, frequency, phase, mul, add
COsc - two oscillators, detuned
arguments: buffer number, frequency, beat frequency, mul, add
VOsc - multiple wave table crossfade oscillators
arguments: buffer number, frequency, phase, mul, add
VOsc3 - three VOscs summed.
arguments: buffer number, freq1, freq2, freq3, beat frequency, mul, add

Aperiodic Sources: Noise.

LF "Low Frequency" Noise Generators.

LFNoise0, LFNoise1, LFNoise2, LFClipNoise
arguments: frequency, mul, add

Broad Spectrum Noise Generators

ClipNoise, WhiteNoise, PinkNoise, BrownNoise, GrayNoise
arguments: mul, add

Impulse Noise Generators

Dust, Dust2
arguments: density, mul, add

Chaotic Noise Generators

arguments: chaosParam, mul, add


Low Pass, High Pass

LPF, HPF - 12 dB / octave
arguments: in, freq, mul, add

Band Pass, Band Cut

BPF, BRF - 12 dB / octave
arguments: in, freq, rq, mul, add

rq is the reciprocal of the Q of the filter, or in other words: the bandwidth in Hertz = rq * freq.

Resonant Low Pass, High Pass, Band Pass

RLPF, RHPF - 12 dB / octave
arguments: in, freq, rq, mul, add
Resonz - resonant band pass filter with uniform amplitude
arguments: in, freq, rq, mul, add
Ringz - ringing filter.
arguments: in, frequency, ring time, mul, add

Internally it is the same as Resonz but the bandwidth is expressed as a ring time.

Simpler Filters

OnePole, OneZero - 6 dB / octave

NonLinear Filters

Median, Slew

Formant Filter

Formlet - A filter whose impulse response is similar to a FOF grain.
Klank - resonant filter bank
arguments: `[ frequencies, amplitudes, ring times ], mul, add


abs, max, squared, cubed
distort, softclip, clip2, fold2, wrap2,
waveshaping by phase modulating a 0 Hz sine oscillator
(currently there is a limit of 8pi)
Shaper - input is used to look up a value in a table.
Chebyshev polynomials are typically used to fill the table.


Pan2 - equal power stereo pan a mono source
arguments: in, pan position, level

pan controls typically range from -1 to +1

LinPan2 - linear pan a mono source (not equal power)
arguments: in, pan position, level
Balance2 - balance a stereo source
arguments: left in, right in, pan position, level
Pan4 - equal power quad panner
PanAz - azimuth panner to any number of channels
arguments: num channels, in, pan position, level, width
XFade2 - equal power cross fade between two inputs
arguments: in1, in2, crossfade, level
PanB2 and DecodeB2 - 2D ambisonics panner and decoder
Rotate2 - rotate a sound field of ambisonic or even stereo sound.



Delays and Buffer UGens

DelayN, DelayL, DelayC - simple delays
  • N - no interpolation
  • L - linear interpolation
  • C - cubic interpolation

arguments: in, maximum delay time, current delay time, mul, add

CombN, CombL, CombC - feedback delays
arguments: in, maximum delay time, current delay time, echo decay time, mul, add
AllpassN, AllpassL, AllpassC - allpass delay
arguments: in, maximum delay time, current delay time, echo decay time, mul, add
PlayBuf - buffer playback
arguments: numChannels, buffer number, rate, trigger, start pos, loop

Granular Synthesis.

TGrains - granulation of a buffer
arguments: numChannels, trigger, buffer number, rate, center pos, dur, pan, amp, interpolation
GrainSin - sine grain
arguments: numChannels, trigger, dur, freq, pan, envbufnum

see also GrainFM, GrainBuf and GrainIn


Filters for Controls

Decay - triggered exponential decay
arguments: in, decay time, mul, add
Decay2 - triggered exponential attack and exponential decay
arguments: trigger, attack time, decay time, mul, add
arguments: trigger, duration
Integrator - leaky integrator


Trig, Trig1 - timed duration gate
arguments: trigger, duration
TDelay - delays a trigger. only delays one pending trigger at a time.
arguments: trigger, delay time
Latch - sample and hold
arguments: in, trigger
Gate - pass or hold
arguments: in, trigger
PulseCount - count triggers
arguments: trigger, reset
arguments: trigger, div, start
EnvGen - envelope generator
envelope is specified using an instance of the Env class.


FFT, IFFT and the phase vocoder ugens.

FFT calculates the spectrum of a sound, puts it into a buffer, and outputs a trigger each time the buffer is ready to process. The PV UGens process the spectrum when they receive the trigger. IFFT converts the spectrum back into sound.


Artificial Space

Building a sense of space into a sound by setting up phase differences between the speakers.

Parallel Structures

Serial structures