Skip to content
@dnam-project

dnam-project

Dynamic Neural Audio Modeler (DNAM)

Dynamic Neural Audio Modeler (DNAM) is a real-time true-stereo neural audio modeling, differentiable DSP, and parametric system-identification platform co-designed for embedded ARMv8.2-A NEON processors (Rockchip RK3582 / Darkglass Anagram), desktop VST3/CLAP/AU audio plugins, and browser/Node.js WebAssembly (AudioWorklet) runtimes.

It unifies nonlinear amplifier/preamp drive, selective state-space filters (Wah, Phaser, Uni-Vibe, power-amp sag), modulated delay-line effects (Through-Zero Flanger, Stereo Chorus, Tape Echo, Spring Reverb Drip, Lush Hall Reverb, Leslie Rotary), and user-definable continuous (range) and discrete (switch) controls trained from multi-stem captures—running 2.6× faster than NAM A2 in Full (C=8, ~4,625 MACs/sample vs. 12,146 MACs/sample) and 1.22× faster with 50% more channels in Ultra (C=12, ~9,950 MACs/sample), with 0 extra MACs/sample at 48 kHz when user knobs are static.


Core Repository: dnam-project/dnam

Component Path in dnam Description
Canonical Specifications docs/ Single-Source-of-Truth (SSOT) mathematical, DSP, training, clamp registry (CL-01..CL-18), and .dnam container specifications.
Rust SIMD Engine Core packages/engine/ Zero-allocation, 16-byte SIMD-aligned (C=4 Lite / C=8 Full / C=12 Ultra), FTZ/DAZ-enabled pure Rust engine (dnam-engine) with zero FSQRT or FDIV instructions at 48 kHz and 3 kHz.
Packaged Python Engine Library packages/python/ Standalone PyO3 / maturin Python wheel wrapping packages/engine for zero-copy NumPy audio inference, .dnam validation, 3-Phase control clamping, and canonical Reference DSP primitives.
Packaged Node.js / WebAudio Library packages/nodejs/ Standalone TypeScript / npm package wrapping packages/engine via WebAssembly SIMD128 & N-API bindings + WebAudio DnamAudioWorkletProcessor.
PyTorch Differentiable Trainer packages/trainer/ PyTorch 4-stage deterministic trainer, .dnam-ckpt factorized Kronecker iterative stem expansion, Non-Stop 3-Phase Control-Space Clamping Audit, and 8-suite verification tests.
Real-Time Audio Plugin packages/plugin/ VST3/CLAP/Standalone audio plugin wrapping packages/engine with lock-free atomic parameter binding for dynamic .dnam controls_schema (range & switch) and ZOH sample-rate rescaling (44.1–96 kHz).
Web Docs & React WASM Studio packages/web/ Astro + Starlight documentation website mounting docs/*.md with interactive React/Canvas DSP visualizers + live React WASM (AudioWorklet SIMD128) Modeler Plugin.

Hardware & DSP Benchmark (NAM A2 vs. DNAM)

Hardware / DSP Metric NAM A2 Lite (Mono) DNAM Lite (Stereo) NAM A2 Full (Mono) DNAM Full (Stereo) DNAM Ultra (Stereo)
Channels (C) / FDN Lines (M) C = 3 (Unaligned) C = 4 (1 NEON reg), M = 4 C = 8, No FDN C = 8 (2 NEON regs), M = 8 C = 12 (3 NEON regs), M = 8
Core 1 Architecture 23 Dilated Conv 8 Conv + 4 Selective RG-LRU 23 Dilated Conv 8 Conv + 4 Selective RG-LRU 8 Conv + 4 Selective RG-LRU
User Controls (range & switch) None (Static Snapshot) Unlimited (0 MACs @ 48 kHz static) None (Static Snapshot) Unlimited (0 MACs @ 48 kHz static) Unlimited (0 MACs @ 48 kHz static)
48 kHz FSQRT / FDIV Instructions 0 0 (100% FMAX/FMIN/FMLA) 0 0 (100% FMAX/FMIN/FMLA) 0 (100% FMAX/FMIN/FMLA)
NEON SIMD Lane Utilization 75% (3/4 lanes) 100% (4/4 lanes) 100% (8/8 lanes) 100% (8/8 lanes) 100% (12/12 lanes, 8+4 tiled)
Core 1 L1 Cache State RAM 76.2 KB 3.7 KB (-95%) 203.1 KB 7.5 KB (-96%) 11.2 KB (-94%)
Core 2 Delay Ring Buffer RAM 0 KB 96 KB (fp16) 0 KB 208 KB (fp16) 208 KB (fp16)
Effective Receptive Field 132.2 ms (Hard cutoff) ∞ (Core 1 SSM + Core 2 FDN) 132.2 ms (Hard cutoff) ∞ (Core 1 SSM + Core 2 FDN) ∞ (Core 1 SSM + Core 2 FDN)
Total Compute (MACs / Sample) 1,871 MACs ~1,245 MACs (1.5× faster + 33% wider) 12,146 MACs ~4,625 MACs (2.6× faster) ~9,950 MACs (1.22× faster + 50% wider)
Sample-Rate Support Fixed 48 kHz Native 44.1–96 kHz (ZOH) Fixed 48 kHz Native 44.1–96 kHz (ZOH) Native 44.1–96 kHz (ZOH)
Audio I/O Topology Mono (1 → 1) True Stereo (1 → 2 or 2 → 2) Mono (1 → 1) True Stereo (1 → 2 or 2 → 2) True Stereo (1 → 2 or 2 → 2)

Comparison with GuitarML PROTEUS & NAM ParametricOD

Capability GuitarML PROTEUS NAM ParametricOD DNAM ("Tri-Physics")
Backbone 1-layer LSTM (hidden=40) Conditional WaveNet / LSTM Core 1 (PolyADAA + Selective RG-LRU) + Core 2 (M-UFDN)
Control Schema 1–2 continuous knobs Hardcoded pedal layout Unlimited user-defined range knobs & switch selectors
Control Rate & Static Overhead 48 kHz (∝ P MACs/sample) 48 kHz (∝ P MACs/sample) 3 kHz Lobatto HDMR-FM (0 MACs/sample @ 48 kHz when static)
Anti-Aliasing None (tanh at 1× rate) None (tanh/ReLU at 1× rate) 1× B-Spline Division-Free Algebraic PolyADAA (38.87 dB reduction)
Time-Varying Delay / Reverb / LFOs No (double-echo ghosting) No (FIR < 30 ms) Yes (Autonomous Chebyshev LFO + Order-Statistic Transport on M-UFDN)
Control-Space Safety & Clamping None Hardcoded plugin bounds Non-Stop 3-Phase Clamping (RANGE, SWITCH, STABILITY, DYNAMIC)
Iterative Stem Addition Retrain from scratch Retrain from scratch Single .dnam-ckpt Factorized-Kronecker Resume (< 5 s, 0.00 old-stem drift)

Licensing & OEM Inquiries

Distributed under the DNAM Source-Available & Branding License 1.0.0:

  • Hardware & Closed-Source Plugin Linking Allowed: Hardware manufacturers and software developers may link dnam-engine (and packages/python, packages/nodejs) into commercial hardware firmware and closed-source audio plugins without open-sourcing their own host or plugin code.
  • Mandatory DNAM Branding & Format Integrity: Products linking dnam-engine or loading .dnam models must retain user-facing "DNAM" ("Dynamic Neural Audio Modeler" / "Powered by DNAM") branding and unmodified .dnam container compatibility.

For bespoke OEM or commercial licensing inquiries, contact Peter Nguyen (peter@phn.dev).

Pinned Loading

  1. dnam dnam Public

    Dynamic Neural Audio Modeler (DNAM) — Real-time stereo neural audio modeling, differentiable DSP, and parametric system-identification platform

    Rust 1

Repositories

Showing 2 of 2 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…