ChucK : Programming Guide

Unit Generators

version: 1.3.x.x (chimera)

global special unit generators:
dac  adc  blackhole 

standard ChucK unit generators:
SinOsc  PulseOsc  SqrOsc  TriOsc  SawOsc  Phasor  Noise  Impulse  Step  Gain  SndBuf  HalfRect  FullRect  ZeroX  Mix2  Pan2  GenX  CurveTable  WarpTable   LiSa 

filters:
OneZero  TwoZero  OnePole  TwoPole  PoleZero  BiQuad  Filter  LPF  HPF  BPF  BRF  ResonZ  Dyno 

STK unit generators in ChucK:
Envelope  ADSR  Delay  DelayA  DelayL  Echo  JCRev  NRev  PRCRev  Chorus  Modulate  PitShift  SubNoise  Blit  BlitSaw  BlitSquare  WvIn  WaveLoop  WvOut 

STK instruments unit generators
StkInstrument  BandedWG  BlowBotl  BlowHole  Bowed  Brass  Clarinet  Flute  Mandolin  ModalBar  Moog  Saxofony  Shakers  Sitar  StifKarp  VoicForm  FM  BeeThree  FMVoices  HevyMetl  PercFlut  Rhodey  TubeBell  Wurley 
(see unit generators under the language specification)

standard ugens
audio output

[ugen] dac

  • digital/analog converter
  • abstraction for underlying audio output device

[ugen] adc

  • analog/digital converter
  • abstraction for underlying audio input device

[ugen] blackhole

  • sample rate sample sucker
  • ( like dac, ticks ugens, but no more )
  • see examples: fm.ck

[ugen] Gain

  • gain control
  • (NOTE - all unit generators can themselves change their gain)
  • (this is a way to add N outputs together and scale them)
  • see examples: i-robot.ck
wave forms

[ugen] Noise

[ugen] Impulse

  • pulse generator - can set the value of the current sample
  • default for each sample is 0 if not set

[ugen] Step

  • step generator - like Impulse, but once a value is set,
  • it is held for all following samples, until value is set again
  • see examples: step.ck
oscillators

[ugen] Phasor

  • phasor - simple ramp generator ( 0 to 1 )
  • this can be fed into other oscillators ( with sync mode of 1 )
  • as a phase control.

[ugen] SinOsc

  • sine oscillator

[ugen] PulseOsc

  • pulse oscillators
  • a pulse wave oscillator with variable width.

[ugen] SqrOsc

  • square wave oscillator ( pulse with fixed width of 0.5 )

[ugen] TriOsc

  • triangle wave oscillator

[ugen] SawOsc

  • sawtooth wave oscillator ( triangle, width forced to 0.0 or 1.0 )

[ugen] Gen5

  • exponential line segment lookup table table generator

[ugen] Gen7

  • line segment lookup table table generator

[ugen] Gen9

  • sinusoidal lookup table with harmonic ratio, amplitude, and phase control

[ugen] Gen10

  • sinusoidal lookup table with partial amplitude control

[ugen] Gen17

  • chebyshev polynomial lookup table

[ugen] CurveTable

  • flexible curve/line segment table generator

[ugen] WarpTable

  • end-constrained mapping table
  • useful for control signal conditioning
filters

[ugen] BiQuad

  • STK biquad (two-pole, two-zero) filter class.

[ugen] OneZero

  • STK one-zero filter class.

[ugen] TwoZero

  • STK two-zero filter class.

[ugen] OnePole

  • STK one-pole filter class.

[ugen] TwoPole

  • STK two-pole filter class.
  • see examples: powerup.ck

[ugen] PoleZero

  • STK one-pole, one-zero filter class.

[ugen] Filter

  • STK filter class.

[ugen] LPF

  • resonant low pass filter. 2nd order butterworth.
  • (may be expanded to include higher orders and other types later)

[ugen] HPF

  • resonant high pass filter. 2nd order butterworth.
  • (may be expanded to include higher orders and other types later)

[ugen] BPF

  • band pass filter. 2nd order butterworth.
  • (may be expanded to include higher orders and other types later)

[ugen] BRF

  • band reject filter. 2nd order butterworth.
  • (may be expanded to include higher orders and other types later)

[ugen] ResonZ

  • resonance filter. BiQuad with equal-gain zeros

[ugen] Dynamics

  • dynamics processor
  • includes limiter, compressor, expander, noise gate, and ducker (presets)
  • see examples:
basic signal processing

[ugen] HalfRect

  • half wave rectifier
  • for half-wave rectification.

[ugen] FullRect

  • full wave rectifier

[ugen] ZeroX

  • zero crossing detector
  • emits a single pulse at the the zero crossing in the direction of the zero crossing.
  • (see examples: zerox.ck)
file i/o

[ugen] SndBuf

  • sound buffer ( now interpolating )
  • reads from a variety of file formats
  • see examples: sndbuf.ck
stereo < -- > mono

[ugen] Mix2

  • mix from stereo signal to mono

[ugen] Pan2

  • spread mono signal to stereo
STK
stk - instruments

[ugen] StkInstrument

  • Super-class for STK instruments.

[ugen] BandedWG

  • Banded waveguide modeling class.

[ugen] BlowBotl

  • STK blown bottle instrument class.

[ugen] BlowHole

  • STK clarinet physical model with one

[ugen] Bowed

  • STK bowed string instrument class.

[ugen] Brass

  • STK simple brass instrument class.

[ugen] Clarinet

  • STK clarinet physical model class.

[ugen] Flute

  • STK flute physical model class.

[ugen] Mandolin

[ugen] ModalBar

  • STK resonant bar instrument class.
  • see examples: modalbar.ck

[ugen] Moog

  • STK moog-like swept filter sampling synthesis class.
  • see examples: moogie.ck

[ugen] Saxofony

  • STK faux conical bore reed instrument class.

[ugen] Shakers

[ugen] Sitar

  • STK sitar string model class.

[ugen] StifKarp

  • STK plucked stiff string instrument.
  • see examples: stifkarp.ck

[ugen] VoicForm

stk - fm synths

[ugen] FM

  • STK abstract FM synthesis base class.

[ugen] BeeThree

  • STK Hammond-oid organ FM synthesis instrument.

[ugen] FMVoices

  • STK singing FM synthesis instrument.

[ugen] HevyMetl

  • STK heavy metal FM synthesis instrument.

[ugen] PercFlut

  • STK percussive flute FM synthesis instrument.

[ugen] Rhodey

  • STK Fender Rhodes-like electric piano FM
  • see examples: rhodey.ck

[ugen] TubeBell

  • STK tubular bell (orchestral chime) FM

[ugen] Wurley

  • STK Wurlitzer electric piano FM
  • see examples: wurley.ck
stk - delay

[ugen] Delay

  • STK non-interpolating delay line class.
  • see examples: comb.ck

[ugen] DelayA

  • STK allpass interpolating delay line class.

[ugen] DelayL

  • STK linear interpolating delay line class.
  • see examples: i-robot.ck

[ugen] Echo

  • STK echo effect class.
stk - envelopes

[ugen] Envelope

[ugen] ADSR

  • STK ADSR envelope class.
  • see examples: adsr.ck
stk - reverbs

[ugen] JCRev

  • John Chowning's reverberator class.

[ugen] NRev

  • CCRMA's NRev reverberator class.

[ugen] PRCRev

  • Perry's simple reverberator class.
stk - components

[ugen] Chorus

  • STK chorus effect class.

[ugen] Modulate

  • STK periodic/random modulator.

[ugen] PitShift

  • STK simple pitch shifter effect class.

[ugen] SubNoise

  • STK sub-sampled noise generator.

[ugen] Blit

  • STK band-limited impulse train.

[ugen] BlitSaw

  • STK band-limited sawtooth wave.

[ugen] BlitSquare

  • STK band-limited square wave.
stk - file i/o

[ugen] WvIn

  • STK audio data input base class.

[ugen] WaveLoop

  • STK waveform oscillator class.

[ugen] WvOut

  • STK audio data output base class.

much more to come!