Nodes

The 67 types a clone ships, grouped the way the palette groups them. Parsed from the node manifests in the goofi repository, so this page cannot drift from them.

A type id names the family a node belongs to and then the node, as signal:Psd or audio:Osc. The family is the engine it runs on, and it carries a colour the editor paints on the node's header, so a patch says at a glance which engine each part of it runs on.

Core

The engines' own node sets. They are built into the binary at goofi's build time, so they are in the palette of every clone with nothing to install.

audio 14 nodes rust

The same node interface at audio rate: oscillators, filters, envelopes, gates and feedback.

Delay rs

An echo, one line per channel, at a delay that may move while it sounds.

input out
transform 3 params
Env rs

An ADSR in [0, 1] over `gate`, one voice per channel of it.

out
transform 5 params
Feedback rs

Its input one block late: the one way a loop closes. It runs first each block, reading what its producer left in the last one.

input out
transform 0 params
Filter rs

A resonant state-variable filter, low, band or high, at audio-rate cutoff.

input out
transform 3 params
FreqShift rs

Every partial moved by the same number of hertz, which no interval survives.

input out
transform 2 params
Gain rs

Its input times `gain`; the wires into `input` sum.

input out
transform 1 params
Limiter rs

One gain across every channel, so nothing leaves above the ceiling and the picture holds.

input out
transform 3 params
Mixdown rs

Many channels become few, each one placed across the field it lands in.

input out
transform 2 params
Noise rs

Noise in [-1, 1], white or pink, on as many channels as are asked for.

out
generator 2 params
Osc rs

An oscillator in [-1, 1], one channel per channel of `pitch`.

out
generator 2 params
Quantize rs

A pitch in volts pulled to the nearest note of a scale.

input out
transform 2 params
Reverb rs

A room around the sound: eight delay lines fed back through each other, out in stereo.

input out
transform 6 params
SignalIn rs

The in-order crossing: a `[C, T]` signal frame with `sfreq` enters as `C` audio channels, resampled to the rate. A frame with no `sfreq` enters one sample per sample, so a control value is held until the next.

input out
control 0 params
Slew rs

Its input with a rate limit: a step becomes a ramp, a gate an envelope, a knob a glide.

input out
transform 2 params
signal 38 nodes python + rust

Frames of array data: the sources, the analyses, and the arithmetic that reshapes, combines and routes them.

Buffer rs

Rolling window along one axis: keeps the most recent `size` entries, rank unchanged.

input out
transform 5 params
Constant rs

A number, given a shape: the way a scalar becomes an array of the size a node downstream wants.

out
generator 5 params
Delay rs

The stream as it was a moment ago, counted in samples, seconds or updates.

input out
transform 7 params
Eigen py

The eigenvalues and eigenvectors of a square symmetric matrix, or of its Laplacian.

input valuesvectors
analysisconnectivity 5 params
Emd rs

Pull a frame apart into the oscillations it is made of, fastest first.

input out
transform 6 params
Fft rs

The spectrum both ways: samples into one-sided bins, and those bins back into samples.

input out
analysis 7 params
Filter rs

Keep one band of the spectrum, run both ways so nothing comes out shifted in time.

input out
transform 9 params
Format rs

Several strings become one, joined in order or placed into a template.

input out
transformtext 6 params
FreqShift rs

Move a signal up or down the spectrum by a fixed number of hertz, without changing its speed.

input out
transform 6 params
FromJson rs

The first object in a piece of text becomes a table.

input out
transformtext 3 params
Function rs

One elementwise function over the frame, chosen by name. Shape and metadata are untouched.

input out
transform 4 params
Hilbert rs

How big a signal's swing is, where in its cycle it stands, and how fast that is turning.

input envelopephasefrequency
analysis 4 params
Join rs

Lay several frames end to end along one axis, or stack them onto a new axis named after their senders.

input out
transform 5 params
LFO rs

A low-frequency oscillator: one sample per update to modulate a param, or a block of samples to feed a signal.

out
generator 12 params
LslIn py

Receive an LSL stream: [channels, samples] per tick, with its labels and rate.

out
input 5 params
LslOut py

Publish a frame as an LSL stream, with the labels and rate it arrived with.

input
output 5 params
Math rs

Scale and shift every value, then map one range onto another. Shape and metadata are untouched.

input out
transform 11 params
Meta rs

Write the sample rate or the channel names onto a frame, for a source that does not carry its own.

input out
transform 6 params
MidiIn py

Receive MIDI: the velocity of every held note, and the value of every controller.

notescc
inputmidi 5 params
MidiOut py

Send MIDI: note-on for a number that appears, note-off for one that goes.

notesvalue
outputmidi 7 params
Noise rs

Uniform, normal or pink noise, one independent stream per channel.

out
generator 10 params
Normalize rs

Put a signal on a common scale, from statistics over a window of its own past.

input out
transform 9 params
Operation rs

Combine several frames: arithmetic folded left with numpy broadcasting, a matrix product, or a correlation.

input out
transform 6 params
OscIn py

Receive OSC messages: one table entry per address, the latest value each.

out
input 6 params
OscOut py

Send a table as OSC messages, one address per entry.

input
output 7 params
Psd rs

How much power sits at each frequency, in Hz, over the last axis.

input out
analysis 12 params
Reduce rs

Collapse one axis to a single value per position on the others: a mean, a spread, an extreme or a total.

input out
transform 5 params
Resample py

Change a signal's sample rate, filtering as it goes so nothing folds back.

input out
transform 5 params
Reshape rs

Reorder the axes of a frame, then re-cut the entries into a new shape.

input out
transform 5 params
Select rs

Keep part of one axis, named by label, by position, or by the coordinate range it carries.

input out
transform 8 params
Smooth rs

Take the edge off a signal, as a running mean or as an exponential decay.

input out
transform 8 params
Switch rs

Let one of several wires through, chosen by number, so a signal can pick the route.

input out
control 4 params
Table rs

Several wires become one table, each under a key.

arraysstringstables out
transform 4 params
TableSelect rs

One field out of a table, on the output that matches what the field holds.

input arraystringtable
transform 4 params
Text rs

A string, which an expression can build out of anything else in the patch.

out
generatortext 4 params
Threshold rs

Turn a signal into a decision: one where it is past the level, zero where it is not.

input out
control 8 params
ToJson rs

A table becomes JSON text: an object, with arrays as lists and strings as strings.

input out
transformtext 5 params
Wavelet rs

How a signal's frequencies come and go across the frame, which one spectrum cannot show.

input outphase
analysis 10 params
compiled in 3 nodes

Device nodes, compiled into the engine. Each owns an OS handle, so there is no source file to show.

Bundles

Optional packs: a directory of Python nodes and a requirements.txt naming what they import. They ship with goofi as well, but they depend on those packages, so a node here is listed unavailable when its packages are missing, and it names them. How a bundle is put together →

complexity 9 nodes python

Nonlinear measures over a window, from the antropy package.

eeg 3 nodes python

EEG-specific work: recorded playback, band power, and a FOOOF fit.

What is not here

goofi also hosts VST3 plugins as nodes. An instance scans the plugin directories on the machine it runs on, and each plugin joins the palette as a family of its own under its vendor, with its parameters as node params. Which plugins appear depends on what is installed on that machine, so they are not listed here.

This reference describes goofi 3.1.0(537cd394), generated from a running instance on 2026-09-06.