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 aclock
signal is received, rewinds to thestart_time
. Setclock
to0
to prevent the buffer from being triggered immediately. - BufferRecorder: Records the input to a buffer. feedback controls overdub.
- FeedbackBufferReader: Counterpart to FeedbackBufferWriter.
- FeedbackBufferWriter: Counterpart to FeedbackBufferReader.
- HistoryBufferWriter: Writes a rolling history buffer of a given duration. At a given moment in time, the contents of the buffer will be equal to the past N seconds of the audio generated by
input
. This is useful for (e.g.) a visual display of a rolling waveform or LFO window.downsample
can be used to downsample the input; for example, withdownsample
of 10, a 1-second buffer can be used to display 10 seconds of historical audio. - SegmentPlayer: Trigger segments of
buffer
at the given list ofonsets
positions, in seconds.index
determines the index of the onset to play back at, which can also be passed as an argument to trigger().rate
determines the playback rate, andclock
can be used to retrigger based on the output of another Node. Ifcontinue_after_segment
is non-zero, playback will continue after the subsequent onset.
Buffer: Granulation
- SegmentedGranulator: Segmented Granulator.
- Granulator: Granulator. Generates a grain from the given buffer each time a trigger is received on the
clock
input. Each new grain uses the givenduration
,amplitude
,pan
andrate
values presented at each input at the moment the grain is created. The input buffer can be mono or stereo. Ifwrap
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
- Accumulator: Accumulator with decay.
- 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.
- FFTBufferPlayer: FFTBufferPlayer. Plays from a buffer of audio spectra in mag/phase format.
- FFTContrast: FFT Contrast. Requires an FFT* input.
- FFTCrossFade: FFT FFTCrossFade. Requires two FFT* inputs.
- FFTLFO: FFT LFO. Requires an FFT* input.
- FFTMagnitudePhaseArray: Fixed mag/phase array.
- FFTRandomPhase: Randomise phase values.
- FFTScaleMagnitudes: 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
- Bus: Bus is a node with a fixed number of input channels and arbitrary number of inputs, used to aggregate multiple sources. It is similar to Sum, but with a defined channel count that does not adapt to its inputs.
- 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.
- ChannelOffset: Offsets the input by a specified number of channels. With an N-channel input and an offset of M, the output will have M+N 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).
- SelectInput: Pass through the output of one or more
inputs
, based on the integer input index specified inindex
. UnlikeChannelSelect
, inputs may be multichannel, andindex
can be modulated in real time. - 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: Simulation of the Moog ladder low-pass filter.
cutoff
sets the cutoff frequency;resonance
should typically be between 0..1. - 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
. - TriggerMult: Distribute any triggers to all output nodes.
- TriggerRoundRobin: Relay trigger() events to a single node from the list of connected outputs, with
direction
determining the direction: 1 (or above) = move forwards by N, -1 = move backwards by N, 0 = stationary.
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-09-11
Created: 2021-06-08
Created: 2021-06-08