Skip to content

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 and phase offset, with output ranging from min to max.
  • SawOscillator: Produces a (non-band-limited) sawtooth wave, with the given frequency and phase offset. When a reset or trigger is received, resets the phase to zero.
  • SineLFO: Produces a sinusoidal LFO at the given frequency and phase offset, with output ranging from min to max.
  • SineOscillator: Produces a sine wave at the given frequency.
  • SquareLFO: Produces a pulse wave LFO with the given frequency and pulse width, ranging from min to max, where width of 0.5 is a square wave and other values produce a rectangular wave.
  • SquareOscillator: Produces a pulse wave with the given frequency and pulse width, where width of 0.5 is a square wave and other values produce a rectangular wave.
  • TriangleLFO: Produces a triangle LFO with the given frequency and phase offset, ranging from min to max.
  • TriangleOscillator: Produces a triangle wave with the given frequency.
  • Wavetable: Plays the wavetable stored in buffer at the given frequency and phase 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 and dry inputs, and outputs a mix determined by wetness.
  • 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 to max_delay_time.
  • CombDelay: Comb delay, with feedback between 0 and 1. delay_time must be less than or equal to max_delay_time.
  • OneTapDelay: Single-tap delay line. delay_time must be less than or equal to max_delay_time.
  • Stutter: Stutters the input whenever a trigger is received on clock. Generates stutter_count repeats, with duration of stutter_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 above threshold, compresses the amplitude with the given ratio, following the given attack_time and release_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 of 0 is unchanged, -1 is hard left, and 1 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. When width = 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 given factor. factor must be an integer greater than or equal to 1.
  • Counter: Count upwards from min to max, driven by clock.
  • Euclidean: Euclidean rhythm as described by Toussaint, with sequence_length (n) and num_events (k), driven by clock.
  • FlipFlop: Flips from 0/1 on each clock.
  • ImpulseSequence: Each time a clock or trigger is received, outputs the next value in sequence. At all other times, outputs zero.
  • Index: Outputs the value in list corresponding to index.
  • Latch: Initially outputs 0. When a trigger is received at set, outputs 1. When a trigger is subsequently received at reset, outputs 0, until the next set.
  • Sequence: Outputs the elements in sequence, incrementing position on each clock.

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