auxide-dsp 0.2.0

Comprehensive DSP node library for Auxide audio graphs. Includes oscillators, filters, effects, envelopes, and modulators for real-time audio synthesis.
Documentation

auxide-dsp

Crates.io Documentation License: MIT

Crates.io Documentation CI License: MIT

💝 Support Auxide's Growth

🚀 If Auxide helps you build amazing audio tools, consider sponsoring — 100% of support goes to keeping it free forever.

• $5/month: Coffee tier ☕ - Eternal gratitude + sponsor badge • $25/month: Bug prioritizer 🐛 - Priority support + name in SPONSORS.md • $100/month: Corporate backer 🏢 - Logo placement + monthly office hours • $500/month: Infrastructure partner 🚀 - Direct support + roadmap input

🎯 Become a Sponsor | See our amazing sponsors 🙏

DSP utilities and trait-based nodes for Auxide 0.2. This crate supplies helper functions, wavetable and window generators, and NodeDef-based DSP blocks that plug into the Auxide kernel via NodeType::External.

  • RT-safe: no allocations in process paths; all buffers preallocated during init.
  • Helpers: dB/linear conversions, phase increments, ms-to-samples, polyblep, interpolation.
  • Tables: sine/saw/square/triangle wavetables, Hann/Hamming/Blackman windows.
  • Nodes: Oscillators, Filters, Envelopes, LFO, Effects, Dynamics, Shapers, Pitch/Time, Utility.
  • Builders: SynthBuilder, EffectsChainBuilder for easy graph construction.

Auxide Ecosystem

Crate Description Version
auxide Real-time-safe audio graph kernel 0.3.0
auxide-dsp DSP nodes library 0.2.0
auxide-io Audio I/O layer 0.2.0
auxide-midi MIDI integration 0.2.0

Status

  • ✅ Architecture: Clean trait-based design with proper separation of concerns
  • ✅ RT-Safety: Verified zero allocations in process_block paths (dhat profiler tests)
  • ✅ Test Coverage: Basic functionality tests for all nodes
  • ✅ RT Allocation Tests: Comprehensive heap profiling validates RT guarantees
  • 📋 Node Coverage: ~40 nodes implemented, missing ~10 for full synthesis toolkit

See AUDIT_REPORT.md for detailed analysis.

Usage

Add to your Cargo.toml:

[dependencies]
auxide = "0.2"
auxide-dsp = { path = "../auxide-dsp" }

Example

use auxide_dsp::builders::SynthBuilder;
use auxide_dsp::nodes::oscillators::SawOsc;
use auxide_dsp::nodes::filters::SvfFilter;
use auxide_dsp::nodes::filters::SvfMode;

let graph = SynthBuilder::new()
    .add_oscillator(SawOsc { freq: 440.0 })
    .add_filter(SvfFilter {
        cutoff: 1000.0,
        resonance: 0.5,
        mode: SvfMode::Lowpass,
    })
    .build_graph();

See examples/ for more usage.

Community & Support

• 🐛 Bug Reports: GitHub Issues • 💬 Discussions: GitHub Discussions • 📖 Documentation: docs/ • 💝 Sponsorship: GitHub Sponsors • 🤝 Contributing: CONTRIBUTING.md • 📜 Governance: GOVERNANCE.md • 🔒 Security: SECURITY.md

License & Philosophy

MIT License - forever and always.

Philosophy: DSP infrastructure should be invisible. Auxide is infrastructure.

Testing Philosophy: Reliability through comprehensive validation and property-based testing.

Forever maintainer: Michael A. Kuykendall
Promise: This will never become a paid product
Mission: Making real-time audio DSP simple and reliable