JUCE-based VST3 + Standalone plugin for loading and running Neural Amp Modeler (.nam) models,
including parametric NAM models via nam_core_parametric.
- Mono input/output processing path.
- Host-automatable parameters:
Input Gain(-12 dBto+12 dB)Output Gain(-12 dBto+12 dB)
- Model load via file chooser (
.nam). - Dynamic model parameters are generated in the plugin UI and applied at runtime.
- Dynamic model parameters are not exposed as host automation parameters in v1.
- Plugin state persists:
- APVTS state
modelPath(absolute path)- dynamic model parameter values by ordered index and name
- Sample-rate mismatch between DAW and model is handled via AudioDSPTools resampling.
Source/: plugin processor/editor and NAM integration layer.external/JUCE: JUCE submodule.external/nam_core_parametric: NAM core with parametric support.external/AudioDSPTools: resampling container dependency.
- macOS toolchain (Xcode command line tools)
- CMake
>= 3.22 - Ninja
clang-format(for local formatting consistency)
Initialize submodules (required):
git submodule update --init --recursiveDebug build:
cmake --preset mac-debug
cmake --build --preset mac-debug -j 8Release build:
cmake --preset mac-release
cmake --build --preset mac-release -j 8The smoke-test executable loads one ConcatWaveNet and one HyperWaveNet model, renders at a
mismatched host sample rate with a non-power-of-two block size, applies alternate full parameter
vectors, and checks for finite, non-silent, parameter-dependent output:
./build/mac-debug/nam_model_smoke_test /path/to/concat.nam /path/to/hyper.namTo register the same check with CTest, configure with model paths and then run CTest:
cmake --preset mac-debug \
-DNAM_CONCAT_TEST_MODEL=/path/to/concat.nam \
-DNAM_HYPER_TEST_MODEL=/path/to/hyper.nam
ctest --test-dir build/mac-debug --output-on-failureAfter a debug build, launch:
./build/mac-debug/NamParametricPlugin_artefacts/Debug/Standalone/NAM\ Parametric\ Plugin.app/Contents/MacOS/NAM\ Parametric\ PluginVST3 output path (debug):
build/mac-debug/NamParametricPlugin_artefacts/Debug/VST3/NAM Parametric Plugin.vst3
- Open plugin.
- Click
Load .nam Model. - Choose a
.namfile. - If the model is parametric, dynamic controls appear under
Model Parameters. - Adjust
Input Gain/Output Gainas needed (bounded to-12/+12 dB).
Run these checks before merging major changes:
- Build succeeds with
cmake --preset mac-debugandcmake --build --preset mac-debug. - Plugin loads with no model and processes audio safely (pass-through + gains).
- Gains are bounded to
-12/+12 dBand audible as expected. - Non-parametric model loads; dynamic section shows no controls.
- Parametric model loads; continuous sliders and switch menus appear and audibly affect output.
- Model sample-rate mismatch still processes audio without failure (resampling active).
- Save/reload session restores gains,
modelPath, and dynamic values by name. - Missing/broken stored
modelPathdoes not crash and plugin remains usable.
- Dynamic model parameters are UI-only (no host automation IDs).
- Mono-only internal processing.
- Model load is chooser-only (no drag/drop).
- AU format is currently out of scope.
- macOS-first validated path.