aether-nodes
Built-in DSP nodes for the AetherDSP engine.
Nodes
| Node | Description |
|---|---|
OscillatorNode |
BLEP anti-aliased sawtooth/square/triangle/sine, tuning table support |
StateVariableFilter |
LP/HP/BP/Notch simultaneously (Cytomic SVF) |
MoogLadder |
Huovilainen model, self-oscillation, audio-rate modulation |
FormantFilter |
Vowel shaping A/E/I/O/U morph — essential for wind instruments |
AdsrEnvelope |
Sample-accurate ADSR with gate |
Lfo |
5 waveforms: sine, triangle, square, S&H, random-smooth |
Reverb |
Freeverb (8 comb + 4 allpass filters) |
DelayLine |
Feedback delay with tempo sync |
KarplusStrong |
Physically accurate plucked string synthesis |
Granular |
Grain size, density, pitch scatter, position — world music textures |
Compressor |
RMS-based dynamic range compression with soft-knee curve |
Waveshaper |
5 distortion modes: tanh, hard-clip, fold-back, bit-crush, tube saturation |
Chorus |
BBD-style modulated delay for thickening and stereo widening |
GainNode |
Smoothed gain/volume control |
MixerNode |
N-input summing mixer with per-channel gain · SIMD FMA-optimized |
ScopeNode |
Oscilloscope — writes to a shared ring buffer for UI |
RecordNode |
Captures audio to a WAV file via hound |
Usage
use OscillatorNode;
use FilterNode;
use CompressorNode;
use ChorusNode;
use DspNode;
let osc = default; // 440 Hz sine
let filt = default; // LP @ 1 kHz
let comp = default; // -12 dB threshold, 4:1 ratio
let chorus = default; // 0.5 Hz rate, 7 ms depth
All nodes implement aether_core::node::DspNode and are safe to use in the RT thread — no allocation, no locks, no I/O.
RT Safety
Every node in this crate follows the AetherDSP real-time rules:
- No heap allocation during
process() - No mutex or lock usage
- No I/O or system calls
- Bounded execution time per block
License
MIT — see LICENSE