The next version of NeuralAmpModelerPlugin is available! Download the installer from the users page.
This release is all about signal level calibration. If you've been noting the input and output calibration levels in your models as you create them (more on that in this blog post about the trainer), then this release will allow the plugin to use that information to automatically self-calibrate the model it's running to your interface. We'll get into that below.
This release is all about new features that you're going to find on the Settings page in the plugin, which you can access by clicking on the gear in the corner:
Main page of NeuralAmpModelerPlugin. Click the gear in the top-right corner to go to the Settings page.
Once you're there, you'll notice some new things!
Settings page
These new features are all about calibrating the digital input and output of the plugin to real-world analog levels. Before we talk about the plugin, I'm going to start with a brief recap of why this all matters.
Detour: Calibration 101
When you play a real amp, the amp behaves differently depending on how hard you play. In the analog world, the loudness of your [electric] guitar equates to voltage.
However, in the digital world, the signal level has been converted from voltage to a digital signal. The fundamental question is:
What's the "conversion rate" between the digital signal and the original analog voltage?
If this is known and accounted for, then the signal is "calibrated".
[This is different from gain staging. All we're trying to do is make the conversion from analog to digital "seamless". This is different from trying to make sure that the amplitude of the signal is appropriately-matched to the intended operating range of each "cable"--physical or digital--that it's traveling through.]
A nice analogy (credit to a nicely-made YouTube video by Ghost Note Audio. It's well worth a watch!) is when you scan a picture on a piece of paper into a PNG file. How many pixels are used per inch of paper? This calibration is usually expressed as dots per inch (dpi). We're just trying to do the same thing for audio: how big "in real life" is the signal on the computer?
Here, the conversion is determined by your audio interface since it's what converts the analog signal to digital. The convention NAM uses is to determine what analog loudness, in dBu RMS, corresponds to a digital level of 0dBFS peak (i.e. the clipping threshold).
You can either measure it for yourself with a multimeter, or you can read it in the manual of your audio interface. For example, Focusrite provides the Maximum input Level (at minimum gain):
To dissect this briefly, "maximum input level" means 0dBFS (any higher and it'll clip), and "(at minimum gain)" means that this is the right number when your input gain is set to zero.
Now, on the the plugin features!
Input gain calibration
If you've read Calibration 101 and want to tell the plugin how loud your signal is, then put the number in the text box, and flip the "Calibrate Input" switch to the on position:
Input level is calibrated to 12 dBu at clipping, and calibration is turned on.
After you've done this, then any NAM you use (so long as its creator provided the input level calibration in the metadata when making the model!) will automatically compensate the input signal's level so that you get the same experience as plugging into the original analog gear. [Of course, if you'd like, you can always boost or cut your input signal level to your taste using the input knob on the main page of the plugin to get the sound you really want! This is music, and there are no right answers!]
This is kind of cool: no matter who made the model you're using (and no matter how), the plugin will always make sure that your input is correctly calibrated, even if you're clicking through lots of different models made under different conditions. In the past, this would have involved looking at the "dBu" written down somewhere, doing some math with your interface's calibration, and then twisting the dial to compensate. Now, it all happens automatically behind the scenes.
[Note: By default, input calibration is turned off. This is so that people who update the plugin then load up an old project will find all of their tones preserved from before the update. Also, new instances of the plugin will default to the same calibration level. I'm working on having it persist the last value you set when you open a new instance and should have this in a future version. Once this is done, then I'll have it be on in new instances of the plugin by default!]
Output gain calibration
This part will probably be unfamiliar to people, so it's worth explaining. There will be a picture at the end of this section if this gets confusing.
Say you're modeling a pedal. You've dialed it in while playing your favorite amp, and the two together sound just the way you like it. Now, say that you want to make two NAMs--one of the pedal, and one of the amp. Think about the output of the pedal model: how loud is that digital signal, back in the analog realm? We need to know so that the output of the pedal model and the input of the amp model that's next in the signal chain are "speaking the same language"--otherwise, the gain staging won't match how you dialed things in, and you're not going to get the tone you wanted!
The solution to this is to note the calibration of the output of the pedal--when its output is at the clipping threshold digitally, how many volts is that? If we know that, then we can compensate the output level from the plugin so that it goes back to the original input calibration level (e.g. 12 dBu above) so that the next NAM plugin in your signal chain (the amp model) gets a signal with the original input calibration, regardless of which model is loaded in the "pedal" position (or if you bypass the pedal model!).
Is a calibrated output "better"?
Not necessarily. You probably don't want to use a calibrated output at the end of your NAM signal chain. At the end, you're in a DAW, and you probably want the levels of everything to "mix" together. The enemy here is when you're scrolling through models and they're all a different loudness. This is what the old Normalize mode is for--it takes all of your NAMs and tries to compensate their output level so that they're all about the same [digital] volume. This is the setting you probably want at the end of your signal chain.
[In addition, there's still the "raw" output mode, where the level of the output is exactly as the model was trained. If you're curious about how well your model nulls against your source audio, then this is the setting you'll want for that.]
Summary
To summarize, my recommendations are to use:
Calibrated output for pedal models that are going into input-calibrated amp models, and
Normalized output for amp models that are going into the rest of a digital mix.
Here's a picture to summarize how to use v0.7.12's calibration features in a multi-model signal chain:
Say your interface's gain calibration is +12 dBu (e.g. it's a Focusrite, you're plugged into the instrument input, and your gain trim is set to minimum). Write this value as the input calibration for both NAM plugin instances. The signal from your interface enters the pedal model at a level of +12 dBu at clipping, as your interface specifies. Internally, the plugin compensates the input level for the pedal model, and processes the signal. The pedal's output is set to Calibrated, so the plugin compensates the output level back to the input calibration. The signal exits the pedal plugin, enters the amp plugin instance, and that amp proceeds to do its own input compensation before processing the signal. On the output side, I've set it to "Normalize", so the digital output level of the amp plugin is nice and predictable.
Notice that I never told you what the input and output calibration of the models were--so long as the model creator measured the calibration levels of their recording setup and noted them in the models' metadata, the plugin gets the interface info from you and takes care of the rest on the fly. Easy!
Epilogue: Dear builders, this is open-source, and you can do this too
Users would appreciate the above features for any product, regardless of whether it's open-source or not. But, since Neural Amp Modeler is an open-source project, the real benefit of this is that any builder whose product supports NAM can now implement these same features into their product. For those builders, I'll be writing a separate blog post in the future that looks at the code and explains the math so that you know how. However, you can always look at the code and start today!
Enjoy!