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
    Used by 63 plugins
  • 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
    Used by 40 plugins
  • 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
    Used by 32 plugins
  • 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
    Used by 30 plugins

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
    Not used by a plugin yet
  • 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
    Used by 8 plugins
  • 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
    Used by 6 plugins
  • 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
    Used by 1 plugin

Categories

Sound sources

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

Music tools on your computer.

Install and manage Maru and community plugins in one app, and play them in your DAW.

Chicken Synth, a cat keyboard, effects knobs and wavetable and MIDI panels