Neural Amp Modeler trains a WaveNet-style network to imitate a guitar amp or pedal. A trained model is a snapshot of one setting of the knobs: turn any of them, and you capture and train again.
Knobs as inputs
I extended the network to take knob positions as a conditioning input, adding a control-derived bias to every layer. The number of knobs is not fixed: one model covers the continuous range of however many controls the device has.
I ran ablations against FiLM conditioning, which also scales each channel. For this task the additive bias alone matched FiLM, so I kept the simpler and cheaper model.
Capturing the data
A model that learns knobs needs recordings across many knob positions. A computer-controlled rig sweeps the physical controls and records each setting, so data collection is repeatable and needs no hand-turning.
On a real analogue pedal with three controls moving together, the model was close to indistinguishable from the hardware in listening tests.
Running it on a phone
The iOS app (Swift, AVFAudio, vDSP) runs the full signal chain in real time: the neural model, cabinet simulation with impulse responses, reverb, multi-band EQ and a noise gate. Convolving long impulse responses directly is too slow for an audio callback, so I implemented non-uniform partitioned convolution from the research literature, spread across cores.