Skip to content
02Guitar amp plugin & profile browser

NeuralRig

The stock Neural Amp Modeler plugin loads one capture at a time, and finding a new one means leaving the DAW to go browsing — so the two things a player actually does, chaining tones and hunting for them, both sit outside the tool.

Read the sourceDesktop plugin — build from source
Formats
VST3 / AU / AAX / Standalone
Chain stages
8
Sample type
double
Submodules
4

Context

NeuralRig is a guitar amp plugin built on Neural Amp Modeler. Where the stock plugin is a single capture, NeuralRig is a rig: a chain of NAM captures, plus a TONE3000 browser built into the plugin itself, so profiles can be searched, filtered, downloaded and auditioned without switching windows.

It ships as VST3, AU, AAX and Standalone, and is derived directly from NeuralAmpModelerPlugin — which sets the constraint the whole project is judged against.

How it works

01Tone parity is the acceptance test

A single loaded capture has to sound exactly as it does in the original plugin, or the extra features are worthless. The signal path is kept intact end to end: calibrated input trim, noise gate trigger, the NAM capture resampled to its trained rate, gate gain, tone stack, impulse response, DC-blocking high-pass, output trim. Anything added sits around that chain rather than inside it.

02A noise gate split across the model

The gate triggers on the input, so the decision to open is made on the player's clean signal — but it applies its gain after the model, so the capture's own noise floor is attenuated too. Both simpler arrangements are worse in specific ways: gating entirely before the model leaves that noise floor untouched, and gating entirely after it makes the gate stutter on the model's output rather than on what was played.

03The high-pass that isn't cosmetic

Neural models can emit a small DC offset. The DC-blocking high-pass after the impulse response looks like tidy-up and is actually load-bearing: without it, that offset accumulates through everything downstream. It is the kind of stage that is easy to drop during a refactor because removing it changes nothing audible immediately.

04One precision, all the way through

Everything runs in double, matching iPlug2's sample type and the defaults of both NAM_SAMPLE and DSP_SAMPLE. Mixed precision across a chain this long is a silent problem — no stage errors, the result is just quietly worse than it should be.

05A layout dictated by the build

The repository mirrors upstream's structure because iPlug2's project files reference dependencies by relative path and will not resolve otherwise. iPlug2, NeuralAmpModelerCore, AudioDSPTools and Eigen come in as submodules; the plugin itself is the only original tree. Linux is unsupported, which is the trade iPlug2 makes for a permissive licence and upstream parity.

Architecture

iPlug2
Plugin framework and formats (submodule).
NeuralAmpModelerCore
NAM inference engine (submodule).
AudioDSPTools
Gate, IR, filters, resampler (submodule).
Eigen
Linear algebra behind the model (submodule).
NeuralRig
Processor, editor, rig chain, TONE3000 browser.

Decisions

The choices worth defending, and what they cost.

Derive from NeuralAmpModelerPlugin rather than rebuild

Parity with the reference implementation is the product requirement. Reimplementing the chain would mean re-earning a tone people already trust, and every difference would read as a bug.

Trigger the gate before the model, apply it after

It is the only arrangement where the open/close decision is made on the player's signal and the capture's noise floor still gets attenuated. Both single-sided placements fail one of those.

Ship the profile browser inside the plugin

Auditioning a tone means hearing it in the current mix. A browser in a separate app turns that into download, install, reload, listen — which is enough friction that people stop exploring.

Accept no Linux support

iPlug2 does not target it. Swapping frameworks to gain Linux would cost the permissive licence and the upstream parity the project is built on.

Verification

The reference build is the test: a single capture through NeuralRig has to match the same capture through NeuralAmpModelerPlugin. Distribution is scripted per platform, so what gets shipped is what was built rather than an IDE's local state.

  • C++
  • iPlug2
  • NAM
  • AudioDSPTools
  • Eigen
  • VST3
  • AU
  • AAX

Next case study

SpillSense

Environmental incident platform