Default chugins library offering unit generators and utilities.

Soft clip saturating distortion, based on examples from Abel/Berners' Music 424 course at Stanford.

float dcOffset(float arg)

Constant linear offset applied to the signal. A small offset will introduce odd harmonics into the distoration spectrum, whereas a zero offset will have only even harmonics.

float dcOffset()

Constant linear offset applied to the signal. A small offset will introduce odd harmonics into the distoration spectrum, whereas a zero offset will have only even harmonics.

float drive(float arg)

Input gain into the distortion section, in decibels. Controls overall amount of distortion.

float drive()

Input gain into the distortion section, in decibels. Controls overall amount of distortion.

[ top ]

Third-order ambisonics panner (https://en.wikipedia.org/wiki/Ambisonics)

float azimuth(float arg)

Set horizontal angle of point source

float azimuth()

Get horizontal angle of point source

void channelMap(int[] arg)

Set the mapping of channels for the amibsonic system

float elevation(float arg)

Set vertical angle of point source

float elevation()

Get vertical angle of point source

[ top ]

Applies aliased downsampling and sample-width reduction to create a variety of distortion effects.

int bits(int arg)

Number of bits to reduce signal to [1-32].

int bits()

Number of bits to reduce signal to [1-32].

int downsample(int arg)

Factor by which to downsample signal by decimation [≥1].

int downsample()

Factor by which to downsample signal by decimation [≥1].

int downsampleFactor(int arg)

Factor by which to downsample signal by decimation [≥1].

int downsampleFactor()

Factor by which to downsample signal by decimation [≥1].

[ top ]

Elliptic implements cascaded IIR filters and a built-in elliptical filter design. It is capable of low-pass, high-pass, or bandpass filtering with very steep slopes. The atten determines how much of the signal is attenuated outside the passband. Elliptic filters come with a trade-off for their steep slopes: they have a certain amount of ripple outside the passbands. A very small ripple (0.1 or 0.2 dB) produces very little ringing, whereas a large ripple (eg. 20 dB) produces a very strong harmonic ring. The filter design algorithm sometimes can't fulfill the design criteria -- a particular combination of cutoff frequencies, ripple, and attenuation. If that happens, the user is warned that the filter is not initialized, and the filter is bypassed. This may happen, for instance, if you ask for a very steep attenuation with very low ripple.

float atten(float arg)

Set filter attenuation in dB. Default 90.0

float atten()

Get filter attenuation in dB.

void bpf(float stop, float hip, float lop)

Create a band-pass filter.

int bypass(int arg)

Set switch bypass. 1 is on, 0 is off. Default 0

int bypass()

Get switch bypass. 1 is on, 0 is off.

void hpf(float stop, float pass)

Create a high-pass filter.

void lpf(float stop, float pass)

Create a low-pass filter.

float ripple(float arg)

Set filter ripple in dB. Default 0.2

float ripple()

Get filter ripple in dB.

[ top ]

Feedback delay at exponentially changing delay times.

float ampcurve(float ampcurve)

Set steepness of amplitude decay [0.0001-inf].

float ampcurve()

Get steepness of amplitude decay [0.0001-inf].

dur delay(dur delay)

Set duration of delay.

dur delay()

Get duration of delay.

float durcurve(float durcurve)

Set steepness of delay curve [0.0001-inf]: 1 = steady <1 = starts fast and slows down >1 = starts slow and speeds up

float durcurve()

Get steepness of delay curve [0.0001-inf].

dur max(dur max)

Set maximum possible delay duration.

dur max()

Get maximum possible delay duration.

float mix(float mix)

Set dry/wet mix [0-1].

float mix()

Get dry/wet mix [0-1].

int reps(int reps)

Set number of repetitions.

int reps()

Get number of repetitions.

[ top ]

ChucK Simple Decaying Exponential Envelope UGen Simple single time constant exponential decay, applied to any signal passed through it. Obeys: value, T60, radius, and keyOn Especially useful for Modal synthesis. One of these for each mode: SinOsc s => ExpEnv e => dac; Also useful for noise excitation pulse, using it like: Noise n => ExpEnv e => dac;

dur T60(dur arg)

Set T60 delay time (time for sounds to decay by 60dB

dur T60()

Get T60 delay time (time for sounds to decay by 60dB

int keyOn(int arg)

No description available

float radius(float arg)

No description available

float radius()

No description available

float value(float arg)

No description available

float value()

No description available

[ top ]

Yo! This here is a ChugIn for ChucK. It's a general-purpose FIR filter. You make a new one: FIR myFilter; Then specify order: N => myFilter.order;

int bpHetero(float freq)

Cosine modulate lowpass filter to freq.

float coeff(int idx, float coeff)

Set filter idx's coefficient to coeff.

float coeff(int idx)

Set filter idx's coefficient.

int gaussian(float cutoff_freq)

Create a gaussian lowpass filter with cutoff cutoff_freq.

int hpHetero()

Cosine modulate lowpass filter to 1/2 the sample rate.

int order(int arg)

Set filter's order.

int order()

Get filter's order.

int sinc(float cutoff_freq)

Create a sinc lowpass filter with cutoff cutoff_freq.

[ top ]

Foldback saturator that inverts a signal and multiplies it by an index as it passes a threshold.

float index(float arg)

The index that the signal is multiplied by after it is inverted against the threshold. Defaults to 2.0

float index()

The index that the signal is multiplied by after it is inverted against the threshold. Defaults to 2.0

float makeupGain(float arg)

The amount of makeup gain applied to the signal after processing, multiplied against the reciprocal of the threshold. Defaults to 1.0

float makeupGain()

The amount of makeup gain applied to the signal after processing, multiplied against the reciprocal of the threshold. Defaults to 1.0

float threshold(float arg)

The threshold (positive and negative) that the signal is inverted against as it is passed. Defaults to 0.6

float threshold()

The threshold (positive and negative) that the signal is inverted against as it is passed. Defaults to 0.6

[ top ]

GVerb is a very smooth reverberator with the ability to produce very long reverb times. GVERB is based on the original "gverb/gigaverb" by Juhana Sadeharju (kouhia at nic.funet.fi). The code for this version was adapted from RTcmix (http:rtcmix.org), which in turn adapted it from the Max/MSP version by Olaf Mtthes (olaf.matthes at gmx.de).

float bandwidth()

Get the input bandwidth [0 - 1]. Same as damping control, but on the input signal. Default 0.5.

float bandwidth(float arg)

Set the input bandwidth [0 - 1]. Same as damping control, but on the input signal. Default 0.5.

float damping()

Get high frequency rolloff [0 - 1]. 0 damps the reverb signal completely, 1 not at all. Default 0.

float damping(float arg)

Set high frequency rolloff [0 - 1]. 0 damps the reverb signal completely, 1 not at all. Default 0.

float dry()

Get the amount of dry signal [0 - 1]. Default 0.5.

float dry(float arg)

Set the amount of dry signal [0 - 1]. Default 0.5.

float early()

Get the early reflection level [0 - 1]. Default 0.4.

float early(float arg)

Set the early reflection level [0 - 1]. Default 0.4.

dur revtime(dur arg)

Set reverberation time. Default 5::second.

dur revtime()

Get reverberation time.

float roomsize(float arg)

Set room size [1.0 - 300.0]. Default 30.0.

float roomsize()

Get room size [1.0 - 300.0].

float tail()

Get the tail level [0 - 1]. Default 0.5.

float tail(float arg)

Set the tail level [0 - 1]. Default 0.5.

[ top ]

Under-sampling-based resonant lowpass filter, based on two sample & holds with a cosine crossfading between them. Each S&H samples at the moment it's faded out. The frequency of the crossfading and sampling of the input sets the cutoff. This leads to a infinitely steep cutoff, at the price of aliasing. Negative feedback is used for resonance at the cutoff frequency, a technique that I believe is new here. In addition to the traditional modulation options waveshaping of the crossfading signal is provided. This leads to distortion at the cutoff frequency. At extreme values (and assuming no feedback is used) that makes the effect closer to traditional under-sampling. Linear interpolation is used on the input signal to avoid the S&Hs being quantised to ChucK's sample rate; This technique causes quite a few interesting artifacts that result from the ratio between the frequency of the input and the cutoff frequency. To emphasise those it makes sense to try to minimise artifacts induced by the digital environment itself. Thanks to Rob Hordijk for sharing his insights there.

float accent(float arg)

Sets the amount of waveshaping on the crossfading sine [0 - 1]. 1 is close to regular under-sampling (if no resonance is used).

float accent()

Gets the amount of waveshaping on the crossfading sine [0 - 1]. 1 is close to regular under-sampling (if no resonance is used).

float freq(float arg)

Sets the cutoff frequency. This sets both the frequency at which the two sample & holds sample the input signal and the frequency of the sine that crossfades between them.

float freq()

Gets the cutoff frequency. This sets both the frequency at which the two sample & holds sample the input signal and the frequency of the sine that crossfades between them.

float resonance(float arg)

Sets the resonance, which is implemented as negative feedback [0 - 0.95].

float resonance()

Gets the resonance, which is implemented as negative feedback [0 - 0.95].

[ top ]

Fast, recursive sine wave generator using the so-called "magic circle" algorithm (see https://ccrma.stanford.edu/~jos/pasp/Digital_Sinusoid_Generators.html). Can be 30-40% faster than regular SinOsc. Frequency modulation will negate this performance benefit; most useful when pure sine tones are desired or for additive synthesis.

float freq(float arg)

Oscillator frequency [Hz].

float freq()

Oscillator frequency [Hz].

[ top ]

No description available

int controlChange(int ctrl, float value)

No description available

float decay(float value)

No description available

float energy()

No description available

float inputPosition(float xval, float yval)

No description available

float noteOff(float value)

No description available

float noteOn(float note, float vel)

No description available

int nx(int value)

No description available

int nx()

No description available

int ny(int value)

No description available

int ny()

No description available

[ top ]

Multiple simultaneous comb filters randomly chosen within a specified frequency range and spread across the stereo field.

float maxfreq(float maxfreq)

Set max frequency. Default 880.

float maxfreq()

Get max frequency. Default 880.

float minfreq(float minfreq)

Set low frequency. Default 220.

float minfreq()

Get low frequency. Default 220.

int num(int num)

Set number of comb filters. Default 5.

int num()

Get number of comb filters. Default 5.

dur revtime(dur revtime)

Set total ring time. Default 1::second.

dur revtime()

Get total ring time. Default 1::second.

void set(float minfreq, float maxfreq)

Set both low and high frequencies.

[ top ]

Four-channel equal-power panner.

float pan(float arg)

Set pan position [0-4].

float pan()

Get pan position [0-4].

[ top ]

Eight-channel equal-power panner.

float pan(float arg)

Set pan position [0-8].

float pan()

Get pan position [0-8].

[ top ]

Sixteen-channel equal-power panner.

float pan(float arg)

Set pan position [0-16].

float pan()

Get pan position [0-16].

[ top ]

PitchTrack is a monophonic autocorrelation pitch tracker with a fast response and extremely high accuracy, even at low frequencies. It is adapted from [helmholtz~] for Pd by Katja, documented at http://www.katjaas.nl/helmholtz/helmholtz.html

float bias(float arg)

Set the bias. Katja's pitch tracker introduces a small bias to help with the tracking. See the link above.

float bias()

Get the bias. Katja's pitch tracker introduces a small bias to help with the tracking. See the link above.

float fidelity(float arg)

Set the threshold for certainty about the result. A highly periodic signal (i.e. one that has a strong pitch center) should produce a result with a high fidelity, which a non-periodic signal (eg noise) will have a very low fidelity. Setting this parameter close to 1 should reduce the number of inaccurate reports. [0-1], default 0.95.

float fidelity()

Get the threshold for certainty about the result. A highly periodic signal (i.e. one that has a strong pitch center) should produce a result with a high fidelity, which a non-periodic signal (eg noise) will have a very low fidelity. Setting this parameter close to 1 should reduce the number of inaccurate reports. [0-1], default 0.95.

int frame(int arg)

Set size of FFT frame for analysis. Smaller values result in lower latency and high responsiveness but less accuracy. Higher values result in considerably greater CPU load. Values that aren't powers of 2 get rounded up to the next power of 2. Recommend 512, 1024, or 2048. [128-?], default 2048.

int frame()

Get size of FFT frame for analysis. Smaller values result in lower latency and high responsiveness but less accuracy. Higher values result in considerably greater CPU load. Values that aren't powers of 2 get rounded up to the next power of 2. Recommend 512, 1024, or 2048. [128-?], default 2048.

float get()

Get calculated frequency.

int overlap(int arg)

Set how much to overlap successive analysis frames. Higher values should produce smoother values, at the cost of an increase of CPU load. [1-?], default 2.

int overlap()

Get how much to overlap successive analysis frames. Higher values should produce smoother values, at the cost of an increase of CPU load. [1-?], default 2.

float sensitivity(float arg)

Set the minimum RMS value to trigger a pitch calculation. Setting this parameter low forces PitchTrack to attempt to find the pitch of even very quiet sounds. Higher values will cause it to trigger only on louder notes. [0-1], default 0.003.

float sensitivity()

Get the minimum RMS value to trigger a pitch calculation. Setting this parameter low forces PitchTrack to attempt to find the pitch of even very quiet sounds. Higher values will cause it to trigger only on louder notes. [0-1], default 0.003.

[ top ]

ADSR envelope that uses a power function to create curved envelope phases. In general, curves under 1.0 are sharp, while curves over 1.0 are soft.

dur attack(dur attackDuration)

Sets duration of the attack phase.

float attackCurve(float attackCurve)

Sets envelope curve of the attack phase.

float attackCurve()

Gets the attack curve.

dur attackTime(dur attackDuration)

Sets duration of the attack phase.

dur attackTime()

Gets the attack duration.

dur decay(dur decayDuration)

Sets duration of the decay phase.

float decayCurve(float decayCurve)

Sets envelope curve of the decay phase.

float decayCurve()

Gets the decay curve.

dur decayTime(dur decayDuration)

Sets duration of the decay phase.

dur decayTime()

Gets the decay duration.

int keyOff()

Begins the release phase of the envelope.

int keyOff(int keyOff)

Begins the release phase of the envelope.

int keyOn()

Begins the attack phase of the envelope.

int keyOn(int keyOn)

Begins the attack phase of the envelope.

dur release(dur releaseDuration)

Sets duration of the release phase.

float releaseCurve(float releaseCurve)

Sets envelope curve of the release phase.

float releaseCurve()

Gets the release curve.

dur releaseTime(dur releaseDuration)

Sets duration of the release phase.

dur releaseTime()

Gets the release duration.

void set(dur attackDuration, dur decayDuration, float sustainLevel, dur releaseDuration)

Sets duration of the attack, decay, and release phases; as well as the sustain level (ADSR order).

void setCurves(float attackCurve, float decayCurve, float releaseCurve)

Sets envelope curves of the attack, decay, and release phases.

int state()

Gets current state.

float sustainLevel(float sustainLevel)

Sets sustain level.

float sustainLevel()

Gets sustain level.

float value()

Gets current envelope value.

[ top ]

Sinusoidal analysis & pitch tracking. Adapted from Miller Puckette’s sigmund~ Max object.

float amp(int amp)

Report amplitude of nth sinusoundal peak sorting depends on parameter "tracks."

void clear()

Clear buffers and reset.

float env()

Get reported RMS value (in dB) of input signal.

float freq()

Get reported frequency of input signal.

float maxfreq(float arg)

Set maximum frequency of sinusoidal peaks to look for. This can be useful in situations where background noise creates high-frequency, spurious peaks...

float minpower(float arg)

Set the minimum dB level to report a pitch. Signals quieter than this will be assumed to be crosstalk and ignored. default: 50

int npeak(int npeak)

Set the maximum number of sinusoidal peaks to look for. The computation time is quadratic in the number of peaks actually found (this number only sets an upper limit). Use it to balance CPU time with quality of results.

int npts(int npts)

Set the number of points used in analysis. Must be a power of 2, at least 128. The minimum frequency that can be tracked is about 2 * samplerate / npts. Default: 1024.

float param1(float arg)

Mysterious setting...

float param2(float arg)

Mysterious setting...

float param3(float arg)

Mysterious setting...

float peak(int peak)

Report freq of nth sinusoundal peak sorting. Depends on parameter "tracks."

dur stabletime(dur stabletime)

Set period of stability needed for note. Not implemented.

int tracks(int tracks)

Toggle whether peak and amp are sorted in order of amplitude or organized into tracks. Default false.

[ top ]

FFT-based spectral delay and EQ by John Gibson. Inspired by the totally awesome Spektral Delay plug-in by Native Instruments.

int bands(int arg)

Set number of frequency bands, [1 - 512], default 64

int bands()

Get number of frequency bands, [1 - 512], default 64

void clear()

Reset Spectacle.

dur delay(dur delay)

Set the same delay duration for all bands.

dur delayMax(dur delay)

Set maximum delay time.

dur delayMax()

Get maximum delay time.

dur delayMin(dur delay)

Set minimum delay time.

dur delayMin()

Get minimum delay time.

float eq(float eq)

Set the same EQ value for all bands (value is +/- dB).

float feedback(float feedback)

Set the same feedback value for all bands [-1.0 - 1.0].

int fftlen(int arg)

Set FFT frame size (power of 2).

int fftlen()

Get FFT frame size (power of 2).

float freqMax(float arg)

Set maximum frequency processed by Spectacle.

float freqMax()

Get maximum frequency processed by Spectacle.

float freqMin(float arg)

Set minimum frequency processed by Spectacle.

float freqMin()

Get minimum frequency processed by Spectacle.

int hold(int arg)

Set hold. True to suppress input, false disables.

int hold()

Get hold. True to suppress input, false disables.

float mix(float mix)

Set mix of processed and unprocessed signal [0 - 1].

float mix()

Get mix of processed and unprocessed signal [0 - 1].

int overlap(int arg)

Set frame overlap; best between 2 and 6.

int overlap()

Get frame overlap; best between 2 and 6.

int posteq(int arg)

Set posteq to true to apply EQ after delay, rather than before.

int posteq()

Get posteq. True applies EQ after delay, rather than before.

void range(float arg1, float arg2)

Set both min and max freqs in one command.

int table(string table, string type)

Set "delay", “eq”, or "feedback" tables to the types "random", "ascending", or "descending." Example: table("delay", "random");

[ top ]

WinFunEnv is an Attack/Release envelope built around window functions!

dur attackTime(dur attackDuration)

Set duration of the attack phase.

int keyOff()

Start release phase.

int keyOff(int keyOff)

Start release phase.

int keyOn()

Start attack phase.

int keyOn(int keyOn)

Start attack phase.

dur releaseTime(dur releaseDuration)

Set duration of the release phase.

void setBlackman()

Set Blackman Window Envelope with default value (0.16).

void setBlackman(float a)

Set Blackman Window Envelope with a custom value.

void setBlackmanDerivative(float a0, float a1, float a2, float a3)

Set a custom Blackman Derivative Envelope with custom values.

void setBlackmanHarris()

Set BlackmanHarris Window Envelope.

void setBlackmanNutall()

Set BlackmanNutall Window Envelope.

void setExponential()

Set Exponential Function Envelope with default value (8.69/60.0).

void setExponential(float a)

Set Exponential Function Envleope with a custom value.

void setHann()

Set Hann (Hanning) Window Envelope.

void setHannPoisson()

Set Hann-Poisson Window Envelope with default value (0.5).

void setHannPoisson(float a)

Set Hann-Poisson Window Envelope with a custom value.

void setNutall()

Set Nutall Window Envelope.

void setParzen()

Set Parzen Window Envelope.

void setPoisson()

Set Poisson Window Envelope with default value (6.0).

void setPoisson(float a)

Set Poisson Window Envelope with a custom value.

void setTukey()

Set Tukey Window Envelope with default value (0.5).

void setTukey(float a)

Set Tukey Window Envelope with a custom value.

void setWelch()

Set Welch Window Window.

float windowValue()

Get current window value.

[ top ]

Virtual analog low pass filter based on Will Pirkle's Diode Ladder application notes

float cutoff(float arg)

Cuttoff is in Hz [0..Nyquist).

float cutoff()

Get cuttoff frequency in Hz [0..Nyquist).

int nlp_type(int arg)

Set to 1 to normalize non-linear output.

int nlp_type()

Get non-linear output setting. 1 is normalized.

int nonlinear(int arg)

Enable non linear saturator.

int nonlinear()

Get non-linear saturator setting. 1 is enabled.

float resonance(float arg)

Resonance goes between [0...17].

float resonance()

Get resonance [0 - 17].

float saturation(float arg)

Saturation is a scalar gain, and can be used to drive the non-linearity.

float saturation()

Get saturation. Saturation is a scalar gain, and can be used to drive the non-linearity.

[ top ]

Virtual analog low pass filter based on Will Pirkle's Korg35 application notes

float cutoff(float arg)

Cuttoff is in Hz [0..Nyquist).

float cutoff()

Get cutoff in Hz [0..Nyquist).

int nonlinear(int arg)

Enable non linear saturator.

int nonlinear()

Get non-linear saturator setting. 1 is enabled.

float resonance(float arg)

Resonance goes between [0...2).

float resonance()

Get resonance [0 - 2).

float saturation(float arg)

Saturation is a scalar gain, and can be used to drive the non-linearity.

float saturation()

Get saturation. Saturation is a scalar gain, and can be used to drive the non-linearity.

[ top ]