LUMA
Node Reference

Audio Nodes

Nodes for audio processing -- stem splitting, frequency filtering, and rhythmic envelope generation.

Audio Nodes

Audio processing nodes transform audio signals: splitting stems, filtering frequencies, and extracting rhythmic envelopes.


Stem Splitter

FieldValue
Type IDstem_splitter
CategoryAudio Processing
DescriptionSeparates audio into 4 stems using pre-computed Demucs htdemucs results.

Inputs

PortTypeRequired
audio_inAudioYes

Outputs

PortType
drums_outAudio
bass_outAudio
vocals_outAudio
other_outAudio

Parameters

None.

Behavior

  • Stems are cached in memory (Arc<Vec<f32>>). First access loads from the database.
  • Each stem is converted to mono and cropped to match the input's time range.
  • Uses pre-computed Demucs htdemucs separation results; no real-time ML inference occurs during graph evaluation.

Frequency Amplitude

FieldValue
Type IDfrequency_amplitude
CategoryAudio Processing
DescriptionExtracts amplitude in selected frequency bands via FFT analysis.

Inputs

PortTypeRequired
audio_inAudioYes

Outputs

PortType
amplitude_outSignal (N=1, T=FFT frames, C=1)

Parameters

NameTypeDefaultDescription
selected_frequency_rangesJSON array--Array of [min_hz, max_hz] pairs defining frequency bands

Behavior

  • Uses the FFT service for spectral analysis.
  • Multiple frequency ranges are averaged into a single amplitude value per frame.
  • Useful for isolating specific instrument ranges (e.g., [20, 200] for kick drum, [2000, 8000] for hi-hats).

Lowpass Filter

FieldValue
Type IDlowpass_filter
CategoryAudio Processing
DescriptionIIR lowpass filter applied to audio signal.

Inputs

PortTypeRequired
audio_inAudioYes

Outputs

PortType
audio_outAudio

Parameters

NameTypeDefaultDescription
cutoff_hzfloat200.0Cutoff frequency in Hz (clamped to [1, Nyquist])

Behavior

  • Preserves sample rate, crop info, and track metadata from the input.
  • Cutoff frequency is clamped to the valid range [1 Hz, Nyquist frequency].

Highpass Filter

FieldValue
Type IDhighpass_filter
CategoryAudio Processing
DescriptionIIR highpass filter applied to audio signal.

Inputs

PortTypeRequired
audio_inAudioYes

Outputs

PortType
audio_outAudio

Parameters

NameTypeDefaultDescription
cutoff_hzfloat200.0Cutoff frequency in Hz

Behavior

  • Behaves identically to the lowpass filter in terms of metadata preservation, but passes frequencies above the cutoff.

Beat Envelope

FieldValue
Type IDbeat_envelope
CategoryAudio Processing
DescriptionGenerates ADSR envelopes triggered at beat positions. The core rhythmic driver for most patterns.

Inputs

PortTypeRequired
gridBeatGridYes
subdivisionSignalNo (overrides the subdivision parameter if connected)

Outputs

PortType
outSignal (N=1, T=SIMULATION_RATE x duration, C=1)

Parameters

NameTypeDefaultDescription
subdivisionfloat1.0Beat subdivision: 0.25=sixteenth, 0.5=eighth, 1=quarter, 2=half, 4=whole
only_downbeatsboolfalseOnly trigger on downbeats (bar starts)
offsetfloat0.0Beat fraction offset
attackfloat0.1Attack phase weight
decayfloat0.3Decay phase weight
sustainfloat0.3Sustain phase weight
releasefloat0.3Release phase weight
sustain_levelfloat0.7Sustain floor (0-1)
attack_curvefloat0.0Attack shape: -1=snappy/instant, +1=slow swell
decay_curvefloat0.0Decay shape: -1=snappy, +1=slow
amplitudefloat1.0Output scale (0-1)

Behavior

  • Weights (attack + decay + sustain + release) are normalized to the inter-beat duration.
  • Multiple overlapping pulses are summed, which can produce values greater than 1.0.
  • The subdivision input port, when connected, overrides the subdivision parameter.
  • Common subdivisions: 0.25 (sixteenth notes), 0.5 (eighth notes), 1.0 (quarter notes), 2.0 (half notes), 4.0 (whole notes).

On this page