Node reference library
Analysis
- CrossCorrelate: Outputs the cross-correlation of the input signal with the given buffer. If hop_size is zero, calculates the cross-correlation every sample.
- NearestNeighbour: Nearest Neighbour.
- OnsetDetector: Simple time-domain onset detector. Outputs an impulse when an onset is detected in the input. Maintains short-time and long-time averages. An onset is registered when the short-time average is threshold x the long-time average. min_interval is the minimum interval between onsets, in seconds.
- VampAnalysis: Feature extraction using the Vamp plugin toolkit.
Buffer
- BeatCutter: Cuts a buffer into segment_count segments, and stutters/jumps with the given probabilities.
- BufferLooper: Read and write from a buffer concurrently, with controllable overdub.
- BufferPlayer: Plays the contents of the given buffer. start_time/end_time are in seconds. When a clock signal is received, rewinds to the start_time.
- BufferRecorder: Records the input to a buffer. feedback controls overdub.
- FeedbackBufferReader: Counterpart to FeedbackBufferWriter.
- FeedbackBufferWriter: Counterpart to FeedbackBufferReader.
- SegmentPlayer: Trigger segments of a buffer at the given onset positions.
Buffer: Granulation
- SegmentedGranulator: Segmented Granulator.
- Granulator: Granulator. Generates a grain from the given buffer each time a clock signal is received, with the given duration/rate/pan parameters. The input buffer can be mono or stereo. If
wrap
is true, grain playback can wrap around the end/start of the buffer.
Control
- MouseX: Outputs the normalised cursor X position, from 0 to 1. Currently only supported on macOS.
- MouseY: Outputs the normalised cursor Y position, from 0 to 1. Currently only supported on macOS.
- MouseDown: Outputs 1 if the left mouse button is down, 0 otherwise. Currently only supported on macOS.
Envelope
- ADSREnvelope: Attack-decay-sustain-release envelope. Sustain portion is held until gate is zero.
- ASREnvelope: Attack-sustain-release envelope.
- DetectSilence: Detects blocks of silence below the threshold value. Used as an auto-free node to terminate a Patch after processing is complete.
- Envelope: Generic envelope constructor, given an array of levels, times and curves.
- Line: Line segment with the given start/end values, and duration (in seconds). If loop is true, repeats indefinitely. Retriggers on a clock signal.
- RectangularEnvelope: Rectangular envelope with the given sustain duration.
FFT
- FFTContinuousPhaseVocoder: Continuous phase vocoder. Requires an FFT* input.
- FFTConvolve: Frequency-domain convolution, using overlap-add. Useful for convolution reverb, with the input buffer containing an impulse response. Requires an FFT* input.
- FFTContrast: FFT Contrast. Requires an FFT* input.
- FFTMagnitudePhaseArray: Fixed mag/phase array.
- FFTRandomPhase: Randomise phase values.
- FFTTransform: Transforms the FFT magnitude spectrum in the X axis. Requires an FFT* input.
- FFT: Fast Fourier Transform. Takes a time-domain input, and generates a frequency-domain (FFT) output.
- FFTFindPeaks: Find peaks in the FFT magnitude spectrum. Requires an FFT* input.
- IFFT: Inverse Fast Fourier Transform. Requires an FFT* input, generates a time-domain output.
- FFTLPF: FFT-based brick wall low pass filter. Requires an FFT* input.
- FFTNoiseGate: FFT-based noise gate. Requires an FFT* input.
- FFTPhaseVocoder: Phase vocoder. Requires an FFT* input.
- FFTTonality: Tonality filter. Requires an FFT* input.
- FFTZeroPhase: Remove phase information from a frequency-domain input. Requires an FFT* input.
Operators
- Add: Add each sample of a to each sample of b. Can also be written as a + b
- AmplitudeToDecibels: Map a linear amplitude value to decibels.
- DecibelsToAmplitude: DecibelsToAmplitude
- ChannelArray: Takes an array of inputs and spreads them across multiple channels of output.
- ChannelCrossfade: Given a multichannel input, crossfades between channels based on the given position within the virtual array, producing a single-channel output.
- ChannelMixer: Downmix a multichannel input to a lower-channel output. If num_channels is greater than one, spreads the input channels across the field. If amplitude_compensation is enabled, scale down the amplitude based on the ratio of input to output channels.
- ChannelSelect: Select a subset of channels from a multichannel input, starting at offset, up to a maximum of maximum, with the given step.
- Equal: Compares the output of a to the output of b. Outputs 1 when equal, 0 otherwise. Can also be written as a == b
- NotEqual: Compares the output of a to the output of b. Outputs 0 when equal, 1 otherwise. Can also be written as a != b
- GreaterThan: Compares the output of a to the output of b. Outputs 1 when a > b, 0 otherwise. Can also be written as a > b
- GreaterThanOrEqual: Compares the output of a to the output of b. Outputs 1 when a >= b, 0 otherwise. Can also be written as a >= b
- LessThan: Compares the output of a to the output of b. Outputs 1 when a < b, 0 otherwise. Can also be written as a < b
- LessThanOrEqual: Compares the output of a to the output of b. Outputs 1 when a <= b, 0 otherwise. Can also be written as a <= b
- Modulo: Outputs the value of a modulo b, per sample. Supports fractional values. Can also be written as a % b
- Abs: Outputs the absolute value of a, per sample. Can also be written as abs(a)
- If: Outputs value_if_true for each non-zero value of a, value_if_false for all other values.
- Divide: Divide each sample of a by each sample of b. Can also be written as a / b
- FrequencyToMidiNote: Map a frequency to a MIDI note (where 440Hz = A4 = 69), with floating-point output.
- MidiNoteToFrequency: Map a MIDI note to a frequency (where 440Hz = A4 = 69), supporting floating-point input.
- Multiply: Multiply each sample of a by each sample of b. Can also be written as a * b
- Pow: Outputs a to the power of b, per sample. Can also be written as a ** b
- RoundToScale: Given a frequency input, generates a frequency output that is rounded to the nearest MIDI note. (TODO: Not very well named)
- Round: Round the input to the nearest integer value.
- ScaleLinExp: Scales the input from a linear range (between a and b) to an exponential range (between c and d).
- ScaleLinLin: Scales the input from a linear range (between a and b) to a linear range (between c and d).
- Subtract: Subtract each sample of b from each sample of a. Can also be written as a - b
- Sum: Sums the output of all of the input nodes, by sample.
- TimeShift: TimeShift
- Sin: Outputs sin(a), per sample.
- Cos: Outputs cos(a), per sample.
- Tan: Outputs tan(a), per sample.
- Tanh: Outputs tanh(a), per sample. Can be used as a soft clipper.
Oscillators
- Impulse: Produces a value of 1 at the given
frequency
, with output of 0 at all other times. If frequency is 0, produces a single impulse. - SawLFO: Produces a sawtooth LFO at the given
frequency
andphase
offset, with output ranging frommin
tomax
. - SawOscillator: Produces a (non-band-limited) sawtooth wave, with the given
frequency
andphase
offset. When areset
or trigger is received, resets the phase to zero. - SineLFO: Produces a sinusoidal LFO at the given
frequency
andphase
offset, with output ranging frommin
tomax
. - SineOscillator: Produces a sine wave at the given
frequency
. - SquareLFO: Produces a pulse wave LFO with the given
frequency
and pulsewidth
, ranging frommin
tomax
, wherewidth
of0.5
is a square wave and other values produce a rectangular wave. - SquareOscillator: Produces a pulse wave with the given
frequency
and pulsewidth
, wherewidth
of0.5
is a square wave and other values produce a rectangular wave. - TriangleLFO: Produces a triangle LFO with the given
frequency
andphase
offset, ranging frommin
tomax
. - TriangleOscillator: Produces a triangle wave with the given
frequency
. - Wavetable: Plays the wavetable stored in buffer at the given
frequency
andphase
offset.sync
can be used to provide a hard sync input, which resets the wavetable's phase at each zero-crossing. - Wavetable2D: Wavetable2D
Processors
- Clip: Clip the input to
min
/max
. - Fold: Fold the input beyond
min
/max
, reflecting the excess back. - Smooth: Smooth the input with a given smoothing coefficient. When
smooth
= 0, applies no smoothing. - WetDry: Takes
wet
anddry
inputs, and outputs a mix determined bywetness
. - Wrap: Wrap the input beyond
min
/max
.
Processors: Delays
- AllpassDelay: All-pass delay, with
feedback
between 0 and 1.delay_time
must be less than or equal tomax_delay_time
. - CombDelay: Comb delay, with
feedback
between 0 and 1.delay_time
must be less than or equal tomax_delay_time
. - OneTapDelay: Single-tap delay line.
delay_time
must be less than or equal tomax_delay_time
. - Stutter: Stutters the input whenever a trigger is received on
clock
. Generatesstutter_count
repeats, with duration ofstutter_time
.
Processors: Distortion
- Resample: Resampler and bit crusher.
sample_rate
is in Hz,bit_rate
is an integer between 0 and 16. - SampleAndHold: Samples and holds the input each time a trigger is received on
clock
. - Squiz: Implementation of Dan Stowell's Squiz algorithm, a kind of downsampler.
- WaveShaper: Applies wave-shaping as described in the WaveShaperBuffer
buffer
.
Processors: Dynamics
- Compressor: Dynamic range compression, with optional
sidechain
input. When the input amplitude is abovethreshold
, compresses the amplitude with the givenratio
, following the givenattack_time
andrelease_time
in seconds. - Gate: Outputs the input value when it is above the given
threshold
, otherwise zero. - Maximiser: Gain maximiser.
- RMS: Outputs the root-mean-squared value of the input, in buffers equal to the graph's current buffer size.
Processors: Filters
- BiquadFilter: Biquad filter. filter_type can be 'low_pass', 'band_pass', 'high_pass', 'notch', 'peak', 'low_shelf', 'high_shelf'. Not recommended for real-time modulation; for this, use SVFilter.
- DCFilter: Remove low-frequency and DC content from a signal.
- EQ: Three-band EQ.
- MoogVCF: Moog ladder low-pass filter.
- SVFilter: State variable filter.
filter_type
can be 'low_pass', 'band_pass', 'high_pass', 'notch', 'peak', 'low_shelf', 'high_shelf'.resonance
should be between[0..1]
.
Processors: Panning
- AzimuthPanner: Pan input around an equally-spaced ring of
num_channels
speakers.pan
is the pan position from -1..+1, where 0 = centre front.width
is the source's width, where 1.0 spans exactly between an adjacent pair of channels. - ChannelPanner: Pan the input between a linear series of channels, where
pan
0 = channel 0, 1 = channel 1, etc. No wrapping is applied. - SpatialPanner: Implements a spatial panning algorithm, applied to a given SpatialEnvironment. Currently, only DBAP is supported.
- StereoBalance: Takes a stereo input and rebalances it, where
balance
of0
is unchanged,-1
is hard left, and1
is hard right. - StereoPanner: Pans a mono input to a stereo output.
pan
should be between -1 (hard left) to +1 (hard right), with 0 = centre. - StereoWidth: Reduces the width of a stereo signal. When
width
= 1, input is unchanged. Whenwidth
= 0, outputs a pair of identical channels both containing L+R.
Sequencing
- ClockDivider: When given a
clock
input (e.g., an Impulse), divides the clock by the givenfactor
. factor must be an integer greater than or equal to 1. - Counter: Count upwards from
min
tomax
, driven byclock
. - Euclidean: Euclidean rhythm as described by Toussaint, with
sequence_length
(n) andnum_events
(k), driven byclock
. - FlipFlop: Flips from 0/1 on each
clock
. - ImpulseSequence: Each time a
clock
or trigger is received, outputs the next value insequence
. At all other times, outputs zero. - Index: Outputs the value in
list
corresponding toindex
. - Latch: Initially outputs 0. When a trigger is received at
set
, outputs 1. When a trigger is subsequently received atreset
, outputs 0, until the nextset
. - Sequence: Outputs the elements in
sequence
, incrementing position on eachclock
.
Stochastic
- Logistic: Logistic noise.
- PinkNoise: Pink noise, with specified low/high cutoffs.
- RandomBrownian: Outputs Brownian noise between min/max, with a mean change of delta between samples. If a clock is passed, only generates a new value on a clock tick.
- RandomChoice: Pick a random value from the given array. If a clock is passed, only picks a new value on a clock tick.
- RandomCoin: Flip a coin with the given probability. If a clock is passed, only picks a new value on a clock tick.
- RandomExponentialDist: Generate an random value following the exponential distribution. If a clock is passed, only picks a new value on a clock tick.
- RandomExponential: Generate an random exponential value between min/max. If a clock is passed, only picks a new value on a clock tick.
- RandomGaussian: Generate an random Gaussian value, with given mean and sigma. If a clock is passed, only picks a new value on a clock tick.
- RandomImpulseSequence: Generates a random sequence of 0/1 bits with the given length, and the given probability each each bit = 1. The position of the sequence is incremented on each clock signal. explore and generate are trigger inputs which cause the sequence to mutate and re-generate respectively.
- RandomImpulse: Generate random impulses at the given frequency, with either uniform or poisson distribution.
- RandomUniform: Generates a uniformly random value between min/max. If a clock is passed, only picks a new value on a clock tick.
- WhiteNoise: Generates whitenoise between min/max. If frequency is zero, generates at audio rate. For frequencies lower than audio rate, interpolate applies linear interpolation between values, and random_interval specifies whether new random values should be equally-spaced or randomly-spaced.
Last update:
2024-02-18
Created: 2021-06-08
Created: 2021-06-08