Gain Levelling Guide
This guide explains how input and output levels are handled in the app — from your guitar through the audio interface, into NAM models, and out to your speakers. The goal is consistent levels without big volume jumps when switching models or presets.
Current Signal Path (Level Handling)
Guitar
└─→ Audio Interface (hardware gain)
└─→ App Input
└─→ User Input Calibration (active profile gain, or 0 dB)
└─→ Global pre-chain (gate, transpose, etc.)
└─→ Preset signal graph
└─→ [First NAM node only]
├─→ calibrationInputLevel (global dBu) + model input_level_dbu
├─→ User inputGain
├─→ NAM model
├─→ User outputGain
└─→ Auto output gain (from model output_level_dbu)
└─→ ... other nodes ...
└─→ Global post-chain
└─→ Master gain
└─→ Final limiter / Output Protection Ceiling
Key points:
- User Input Calibration applies a single fixed gain very early (global).
- NAM dBu calibration is applied inside the first NAM node only (when enabled).
- Manual gains (
inputGain/outputGainon nodes, global input/output, preset mix) are the primary creative controls. - The final protection ceiling is a safety hard clip, not an automatic leveller.
Main Controls
1. User Input Calibration (Profiles)
Where: Toolbar (input meter area) or Settings
Settings keys: audio.userInputCalibration.profiles, audio.userInputCalibration.activeProfileId
This is the recommended way to compensate for different guitars or interface input gain positions.
- You "train" a profile by playing loudly while the app watches your raw input peak.
- It computes a fixed dB offset that targets approximately −12 dBFS peak.
- The gain is applied once, early in the mixer, before any processing or presets.
- While the training modal is open, the active calibration gain is bypassed so you capture an honest peak.
- No profile active = 0 dB (pass-through).
Use it for: Matching multiple guitars/interfaces without constantly tweaking hardware knobs. Set once per setup.
See also the calibration toolbar in the main UI for quick profile switching and training.
2. NAM Auto Input Calibration + Interface Calibration Level
Where: Settings → (equipment / performance tabs)
Keys:
audio.nam.autoInputCalibration(global toggle, default on)audio.nam.interfaceCalibrationLevelDbu(default 12.0 dBu, range 0–24)
These two work together:
-
The Interface Calibration Level tells the app the analogue reference level of your audio interface in dBu (what 0 dBFS corresponds to on your interface input).
-
When NAM Auto Input Calibration is enabled, the app injects the calibration level into the first NAM (amp or FX model) in your signal chain.
-
Inside the NAM effect, if the loaded model has
input_level_dbu/output_level_dbumetadata (from training), the app computes automatic corrections:autoInputGain (dB) = clamp( calibrationDbu - model.input_level_dbu , -24, +24 )
autoOutputGain (dB) = clamp( model.output_level_dbu - calibrationDbu , -24, +24 ) -
These auto gains are multiplied with the node's manual Input and Output gain knobs.
-
Only the first NAM receives the interface calibration value. Later NAMs in the chain receive already-processed digital signal and do not get re-calibrated.
The per-node Use Calibration advanced toggle (defaults to on) can be turned off on a specific NAM node to disable the automatic dBu corrections for that node only (leaving only your manual input/output gains).
Typical values:
- Most consumer/prosumer USB interfaces: 12 dBu (the default)
- Professional interfaces: 18 dBu
- Some consumer line-level: 2–4 dBu
Set this once for your interface. The auto toggle is on by default for new sessions.
3. Per-NAM Node Gain Controls
Every NAM node (standard amp, optimized, or blend) exposes:
| Control | Range | Notes |
|---|---|---|
| Input | −24…+24 dB | User drive into the model (boost for more saturation) |
| Output | −24…+24 dB | User level out of the model (level matching) |
| Use Calibration (Advanced) | toggle | On = apply dBu auto gains (when global settings allow). Off = manual gains only. |
The auto corrections are never stored inside your preset files (they are injected at runtime from the global settings).
4. Output Protection Ceiling
Where: Settings (Advanced DSP Level Targets)
Key: audio.dsp.outputProtectionCeilingDbfs
Default: −1 dBFS
Range: −6 … 0 dBFS
A final hard safety limiter/clipper after all mixing and master gain. Any sample that would exceed the ceiling is clamped.
This is not a levelling or loudness tool — it is a backstop to avoid sending digital clipping to your interface. Under normal playing the default −1 dBFS ceiling is essentially invisible.
Only change it if you are deliberately pushing hot signals and want a different safety margin.
5. Other Level Controls
- Global input gain / output gain (in the mixer controls area)
- Per-preset Mix and Pan (in multi-preset mixer)
- Manual Gain stages, Drive/Level/Makeup on effects
- Master gain
These are all explicit — if volume changes, it's usually because one of these was adjusted.
How NAM Calibration Works (Current)
- Model metadata read at load:
input_level_dbuandoutput_level_dbu(if present). - Global interface calibration dBu is sent only to the first NAM node.
- When Use Calibration is active:
- Input auto-gain makes the model "see" the level its trainer used.
- Output auto-gain reconstructs a consistent real-world output level for downstream effects (cabs, other pedals, etc.).
- User Input/Output knobs on the node are always applied on top.
Loudness values and the Nominal Operating Level setting are present in some model metadata and the app settings, but current NAM auto-gain logic does not use loudness-based normalization. Level consistency between models comes from the dBu input/output metadata + the calibration level.
IR Cabinet Levels
IR cabinet nodes (convolution) apply L2-norm unity-gain normalization at load time (when enabled, which it is by default for most uses). This makes the convolution preserve broadband energy regardless of how loud or quiet the original IR WAV file was mastered.
Result: swapping IRs rarely causes large unexpected level jumps.
Quick Troubleshooting
A NAM model is much quieter/louder than others
- Check that the model contains
input_level_dbu/output_level_dbumetadata (visible in debug snapshots or model files). - Confirm NAM Auto Input Calibration is enabled and your Interface Calibration Level matches your interface.
- Use the node's manual Input/Output to fine-tune.
- Disable Use Calibration on that node if you want purely manual control.
Level jumps when switching presets or models
- Different models have different embedded dBu levels — that's normal. The calibration is trying to make them behave like the original amp did on the trainer's interface.
- Use User Input Calibration profiles for guitar/interface differences.
- Level-match using the Output knob on NAM nodes or a Gain stage after the cab.
Everything seems too quiet or too hot overall
- Train or select a User Input Calibration profile.
- Check your interface hardware gain and the global input gain.
- Verify the Interface Calibration Level is not set extremely low or high for your hardware.
Occasional digital clipping
- Lower the Output Protection Ceiling a little (e.g. −1.5 or −2 dBFS) for more safety margin, or back off drive/output gains.
Settings That Currently Matter for Levels
audio.userInputCalibration.*(profiles)audio.nam.autoInputCalibrationaudio.nam.interfaceCalibrationLevelDbuaudio.dsp.outputProtectionCeilingDbfs
(Nominal operating level is still configurable in the backend but the UI control is currently disabled and it is not used by the active NAM calibration path.)
Related Reading
- Signal Chain Editor
- Neural Amp Model
- Settings (User Input Calibration section)