DSP nodes
A DSP node is one published algorithm with a stable identity, a page and a contract: a filter, a delay line, an envelope, a reverb or a complete instrument voice. Plugins are built from nodes, and a node’s page shows what it depends on, which plugins use it, the available implementations and published performance summaries.
218 nodes in 20 categories, used by 94 plugins with a published composition. Explore every node.
Most used
The nodes the most public plugins are built with.
- Range
@maru/math-range
Audio SDK-compatible f64 range policy: signed zero follows ECMAScript Math.min/Math.max, reversed bounds select the maximum, clamp propagates NaN and bounds infinities…
Math- JavaScript: Available
- WebAssembly: Builds
- C: Builds
- Native macOS: Builds
- Native Windows: Not checked
- Native Linux: Not checked
- Rust: Not checked
- GPU: Experimental
- Cortex-M: Experimental
- Stages
@maru/voices-stages
Per-sample voice stage primitives: PolyBLEP residual and sine/saw/square/triangle oscillator samples, phase advance, one-pole envelope coefficient/step with shared stage…
Voices- JavaScript: Available
- WebAssembly: Builds
- C: Builds
- Native macOS: Builds
- Native Windows: Not checked
- Native Linux: Not checked
- Rust: Not checked
- GPU: Experimental
- Cortex-M: Experimental
- Decibels
@maru/math-decibels
Canonical f64 decibel-to-linear gain and RBJ amplitude conversions with ECMAScript edge behavior.
Math- JavaScript: Available
- WebAssembly: Builds
- C: Builds
- Native macOS: Builds
- Native Windows: Not checked
- Native Linux: Not checked
- Rust: Not checked
- GPU: Experimental
- Cortex-M: Experimental
- Levels
@maru/mixing-levels
Shared level primitives: floored f64 linear-amplitude-to-decibels conversion, f32 equal-power crossfade/pan gains, and an allocation-free note-transition audio-edge blend.
Mixing- JavaScript: Available
- WebAssembly: Builds
- C: Builds
- Native macOS: Builds
- Native Windows: Not checked
- Native Linux: Not checked
- Rust: Not checked
- GPU: Experimental
- Cortex-M: Experimental
A place to start
One node from each group of categories.
- PolyBLEP
@maru/oscillators-polyblep
PolyBLEP oscillator unit: sine/saw/square/triangle selection over the shared voice stage primitives, with octave/semitone/cent pitch offsets and an f32 phase accumulator.
Oscillators- JavaScript: Available
- WebAssembly: Builds
- C: Builds
- Native macOS: Builds
- Native Windows: Not checked
- Native Linux: Not checked
- Rust: Not checked
- GPU: Experimental
- Cortex-M: Experimental
- State variable
@maru/filters-state-variable
Trapezoidal-integrator TPT state-variable filter with seven response modes, bounded host values and f32 coefficient/state parity.
Filters- JavaScript: Available
- WebAssembly: Builds
- C: Builds
- Native macOS: Builds
- Native Windows: Not checked
- Native Linux: Not checked
- Rust: Not checked
- GPU: Experimental
- Cortex-M: Experimental
- Dattorro
@maru/reverbs-dattorro
True-stereo Dattorro network ported from the pinned Synthlet MIT/STK reference.
Reverbs- JavaScript: Available
- WebAssembly: Not checked
- C: Builds
- Native macOS: Not checked
- Native Windows: Not checked
- Native Linux: Not checked
- Rust: Not checked
- GPU: Experimental
- Cortex-M: Experimental
- Loudness meter
@maru/analysis-loudness-meter
Bounded live summed-stereo K/RMS window meter independent of matching, signal gating, or gain control.
Analysis- JavaScript: Available
- WebAssembly: Not checked
- C: Builds
- Native macOS: Not checked
- Native Windows: Not checked
- Native Linux: Not checked
- Rust: Not checked
- GPU: Experimental
- Cortex-M: Experimental
Categories
Sound sources
- Oscillators7 nodes
Band-limited, PolyBLEP, variable-shape and formant oscillators.
- Noise4 nodes
Deterministic noise generators and textures.
- Voices33 nodes
Complete instrument voices, voice pools and the performance logic around them.
- Physical models11 nodes
Modal resonators and tables, strikes, hammers and mallets.
- Tables3 nodes
Sample readers, looped regions and tape loops.
Tone and colour
- Filters15 nodes
Biquads, state-variable and one-pole filters, equalizers and convolution.
- Distortion18 nodes
Waveshapers, clippers, folders, amp stages, bit crushing and sample-rate reduction.
- Dynamics13 nodes
Compressors, limiters, gates, expanders, de-essers and transient shapers.
- Spectral6 nodes
Pitch and frequency shifting, the FFT and vocoding.
Time and space
- Delays13 nodes
Fractional and interpolated delay lines, feedback, ping-pong, tap patterns and reverse delay.
- Reverbs8 nodes
Schroeder, Dattorro, feedback delay network, hall and spring reverbs.
- Modulation15 nodes
LFOs, slew, glide, chorus, flanger, phaser, tremolo and vibrato.
- Stereo3 nodes
Panning, stereo width and fold-down to mono.
- Acoustics17 nodes
Room geometry, materials, image-source and ray-traced impulse responses, and room convolution.
Control and analysis
- Envelopes4 nodes
ADSR and attack-release envelopes and grain windows.
- Control2 nodes
Musical time and parameter macros that drive the rest of a patch.
- Analysis8 nodes
Meters and detectors: loudness, true peak, programme level and pitch.
- Mixing9 nodes
Gains, levels, constant-power panning and dry/wet mixing.
- Math13 nodes
Precision, ranges, decibels, pitch, scales and the arithmetic every node shares.
- Processors16 nodes
Composite processors: effect chains, players, MIDI timelines and neural amp models.
Publish a node
A node is a TypeScript leaf with a manifest: its parameters, ports, rate policy, dependencies, license and provenance. The validator checks the manifest, the typed numbers, the realtime claim and every target before a node is listed.
How to build and publish a node