Files
bass-foundry/docs/resonance-compressor.md
T

4.8 KiB
Raw Blame History

Resonance Compressor 0.1

A mixing effect for controlling local spectral peaks while retaining the intended sound. Independently designed in Rust; no claim of matching Soothe or Quance.

Resonance Compressor

Install on Windows

Download the Windows artifact from the GitLab pipeline's windows job and extract the ZIP. Copy Resonance Compressor.clap into C:\Program Files\Common Files\CLAP\. In FL Studio 2024.1 or newer, open Options → Manage plugins, enable Verify plugins, and Find installed plugins. Load Resonance Compressor in a mixer effect slot. Keep the font license with redistributed packages.

Work with it

Loop a troublesome passage in context. Restrict Low/High frequency, then adjust Amount and Max cut. Sensitivity is a prominence threshold: lower catches more. Neighborhood defines the spectral reference; Cut width smooths the attenuation. Attack and Release smooth gain changes; Transient guard briefly relaxes cuts.

Double-click the plot to add one of four focus points. Positive sensitivity makes the detector more eager; negative values protect the region by raising the threshold. Drag a point, wheel to change width, or use its numeric fields. Range boundary handles constrain where processing may act. Focus is detector weighting, not a static EQ boost and not an absolute protection guarantee.

Cyan shows spectral input energy, coral the attenuation, violet detector focus. The left scale is calibrated per-bin spectral power; the right scale is cut dB. Delta plays delayed dry minus wet before output trim. Use it to inspect changes, then return to normal monitoring to decide whether the music improved. Mix is a linear blend of aligned signals. Bypass keeps the same latency. Use Output for matched-level comparison. Spectral attenuation is not a limiter: sample peaks can increase even when frequency gains never exceed unity.

Four starting presets and A/B comparison help explore alternatives. All controls are visible. The instrument-style sidebar holds Amount, Mix, and Output; the spectrum includes filled energy traces, cut overlays, meter rails, and range handles, using the plugin’s cyan/coral/violet palette. Host parameters and window size persist; Delta does not. The editor supports numeric entry, keyboard focus, and direct graph editing.

Timing and limits

Mixing only: 4096-sample analysis windows at 44.1/48 kHz, 8192 at 88.2/96 kHz, 16384 at 176.4/192 kHz, with eight overlaps. Delay is one window, about 85–93 ms. The plugin reports it for host compensation. Supported layouts are mono and linked stereo; supported rates are those six standard rates.

The engine uses complex RustFFT with supplied scratch buffers, WOLA reconstruction, a log-frequency prominence detector, bounded soft-knee cuts, and temporal/frequency smoothing. Original bin phases are retained. This is not a minimum-phase filter bank, a live monitoring effect, a limiter, or an automatic separation of tone and unwanted resonance. No external sidechain, Learn, M/S, or pitch detector in v0.1.

Build and offline evaluation

cargo test --workspace --locked
cargo run --release -p resonance-render -- input.wav processed.wav
cargo run --release -p resonance-render -- input.wav delta.wav --delta
cargo run --release -p resonance-render -- --demo /tmp/resonance-demo.wav
cargo run --release -p resonance-render -- --benchmark
python scripts/build-plugin.py --plugin resonance-compressor --target x86_64-pc-windows-gnu

The renderer accepts mono/stereo PCM16/24/32 and float32 RIFF/WAVE, capped at 256 MiB; WAV extensible/RF64 are not accepted. It writes float32 WAV, compensates the processing delay, retains original duration, and refuses existing output. An optional settings JSON uses the core's Settings structure.

CI and acceptance

The root GitLab pipeline runs checks in a Linux Docker executor and cross-builds Windows binaries only using MinGW. It needs an available untagged Docker runner, outbound access to Debian/Rust/Cargo/Git dependencies, and no Windows runner. The Windows job produces both CLAPs, setup guides, licenses, checksums, and a ZIP. Runner execution must be verified on the actual GitLab instance; local verification is not a remote pipeline run.

Before calling host support complete, test FL Studio discovery as an effect, automation, plugin delay compensation, parallel dry/wet alignment, repeated loading, project restoration, mono/stereo, all supported sample rates, and render tails. Judge through real patches with matched listening levels: preserve vowel motion, snare punch, bass body, and stereo placement. Synthetic tests do not establish artistic usefulness.

Local benchmark: AMD Ryzen 7 PRO 3700U, optimized build, stereo 48 kHz, FFT 4096/hop 512: five seconds processed in 0.233 seconds (about 4.7% of one core in that run). This is not a worst-case multi-instance guarantee.