Skip to content

[FEATURE] output calibration #529

@sdatkinson

Description

@sdatkinson

Summary

"Calibrate" the output of a model that has both metadata for both its input and output dBu levels.

  • Functionality
  • Controls style and layout
  • Disable unavailable options depending upon the model that's loaded

The math

Suppose...

  • Model was trained with a send level of X dBu @ 0 dBFS
  • The return calibration is Y dBu @ 0 dBFS
  • The plugin host's input is calibrated so that 0 dBFS is Z dBu.

Then, the behavior should be:

  1. Increase the gain at the input by (Z-X) dB to calibrate the input.
  2. Process
  3. Increase the gain of the output by (Y-Z) dB.

(1) achieves input calibration. Because of (3), if the output of the model were a sine wave with 0 dBFS peak, then we know that it is Z dBu.

Example: X=19 Bu (nice and hot send to the amp), Y=10 dBu (e.g. a Focusrite Scarlett with the input gain turned up a tad), and Z=12 dBu (playing through a Focusrite Scarlett with the input trim at minimum). Before the model, the signal is reduced by 7 dB, and after the model the gain is reduced by 2 dB.

This way, if a second NAM is put behind this, then its input calibration can (also) be set to Z dBu and it will be correct to the output of this block.

[Within a plugin that holds two NAMs, the gain-staging between two models with (X1 dBu send, Y1 dBu return) and (X1 send, Y2 return) would be to increase the gain by Y1-X2 dB; this is the same as the two-plugin solution: (Y1-Z) - (Z-X2), Z's cancel. And so on...]

Controls

In short, change the "normalize" switch to a ternary switch "Output level" with states:

  • "Raw" (cf normalize switch off)
  • "Normalized" (cf Normalize switch on)
  • "Calibrated" (cf this new feature).

Technically, setting it to "Calibrated" would be most "sensible" if the input is also calibrated, but it doesn't need the input to be calibrated--that's just like having a signal boost (or cut) hitting the front of the model--just like you'd get if you moved the input level knob on the main page. Besides, having the input calibration switch interact with the output level control would be messy, especially when paging through models if some of them are missing certain metadata. These are things that someone building a product might want to think through, though.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions