Plugins

Host external plugins 🔌

Drop a third-party CLAP effect into the chain — a reverb, saturator, flanger, anything — or load a macOS Audio Unit amp sim to replace the built-in amp & cab, and dial it in without leaving the terminal.

CLAP effects

rusty-amp can host a third-party CLAP effect plugin as a stereo insert in the signal chain — placed after the cabinet/effects rack, just before the master bus.

Plugin hosting is enabled by default (it's in the pre-built binaries too), powered by the clack CLAP host bindings. If you want a minimal amp with no plugin dependencies or plugin-loading FFI, build with the feature turned off:

cargo run --release --no-default-features

Installing plugins

Put the plugin's .clap file (on macOS a .clap is a bundle directory) into one of the locations rusty-amp scans on startup:

Platform Scanned locations
macOS ~/Library/Audio/Plug-Ins/CLAP/, /Library/Audio/Plug-Ins/CLAP/
Linux ~/.clap/, /usr/lib/clap/, /usr/local/lib/clap/
Windows %COMMONPROGRAMFILES%\CLAP\, %LOCALAPPDATA%\Programs\Common\CLAP\

Any directory listed in the CLAP_PATH environment variable is also searched (subdirectories included). Most plugin installers place the .clap in the right folder automatically.

Loading & configuring a plugin (V)

Press V to open the plugin browser, which (re)scans the locations above.

Key Action
/ Navigate the plugin list
Enter Load the selected plugin (or None — bypass insert to clear it)
Tab Switch to the parameter editor for the loaded plugin
Esc / V Close the browser

When a plugin with parameters is loaded you drop straight into the parameter editor:

Key Action
/ Select a parameter
/ Adjust the selected parameter (by 1/20 of its range)
Tab Return to the plugin list
Esc / V Close

The loaded plugin's name appears in the header (🔌) next to the amp and cabinet. Loading, clearing, and parameter edits all take effect live — the audio stream is never interrupted (swaps happen on a lock-free handoff, and the displaced plugin is freed off the audio thread).

CLAP limitations

Audio Unit amps (macOS)

On macOS, rusty-amp can also host an Audio Unit (AU) effect — typically an amp-sim plugin such as a Marshall — as an amp-position override. This is different from the CLAP insert: rather than sitting at the end of the chain, a loaded AU replaces the built-in amp and cabinet. Your pre-amp pedal signal (gate → compressor → … → pre-EQ) is fed into the AU, and its stereo output continues through the post-cab rack (parametric EQ → flanger → chorus → delay → reverb) and the master bus. That's the correct routing for amp sims, which bring their own cabinet.

AU hosting uses the CoreAudio/AudioToolbox frameworks, so it is macOS-only and enabled by default in the macOS builds. It compiles to nothing on Linux/Windows. To build a macOS binary without it:

cargo run --release --no-default-features --features clap

rusty-amp lists every effect Audio Unit registered with the system — both Effect (aufx) and Music Effect (aumf) component types, the same units your DAW sees. Installing an AU is handled by its own installer (into /Library/Audio/Plug-Ins/Components/ or the per-user equivalent under ~/Library/…); rusty-amp discovers them automatically on open — there's no folder to manage.

Loading & configuring an AU amp (U)

Press U to open the AU amp browser, which enumerates the installed Audio Units.

Key Action
/ Navigate the AU list
Enter Load the selected AU (or None — use built-in amp to clear it)
Tab Switch to the parameter editor for the loaded AU
Esc / U Close the browser

When an AU with parameters is loaded you drop straight into the parameter editor (identical controls to the CLAP editor):

Key Action
/ Select a parameter
/ Adjust the selected parameter (1/20 of its range; one step for switches/lists)
Tab Return to the AU list
Esc / U Close

Parameter values are shown the way the plugin describes them: enum/switch parameters read as their names (e.g. Bright / Normal), and unit-bearing parameters carry a suffix (-6.0 dB, 2.50 kHz, 50 %, 12.0 ms, On/Off). Continuous params fall back to a plain number. Adjusting a switch/list param snaps one entry at a time.

Loading an AU makes it the active amp immediately: the built-in amp is bypassed, the header shows AU: NAME in place of the amp model, and the built-in tone-stack knobs and AMP selector dim to signal they no longer affect the sound. Press Z to A/B between the loaded AU and the built-in amp live — no reload.

Cab pairing (C)

By default the AU is treated as a full amp + cab — it supplies its own cabinet, so the built-in cab (and any loaded IR) is bypassed and the cabinet/mic panel reads PLUGIN CAB. If your AU is an amp-only model that expects a separate cab, press C in the AU browser to switch to amp-only: the AU's output is then run through rusty-amp's built-in cabinet (or your loaded IR), and the mic knobs / IR loader come back to life. The AU modal's status line shows the current mode (plugin cab vs built-in cab).

Latency

rusty-amp reads the AU's reported processing latency and shows it in the AU modal status line (e.g. active: NAME 5.2 ms · plugin cab). While an AU is loaded, the built-in amp path is delayed by the same amount, so switching built-in↔AU with Z stays time-coherent and recordings line up. (Processing latency itself can't be removed from a live monitoring signal — this only keeps the two amp sources aligned with each other.)

AU limitations

← Back
Presets