BOL Characterization
BOL (Bellweather Observation Lab) is our custom characterization tool that analyzes plugins from the outside—no access to internal state. Transfer curves, THD analysis, and envelope timing verification, all driven by our bol-probe runners.
What is BOL?
BOL treats plugins as black boxes. We send audio in, measure what comes out, and compare against expected behavior. This catches bugs that unit tests miss because it tests the complete signal chain, not individual components.
Think of it like measuring a hardware compressor: you don't open the chassis, you just send test signals and verify the output matches spec.
BOL Gate vs BOL Lab
BOL Gate
Pass/fail release check. Runs during rc and rc_guilanes. Verifies the plugin's behavior hasn't drifted from baseline. Binary outcome: PASS or FAIL.
BOL Lab
Extended characterization. Runs during the lab lane. Generates detailed transfer curves, THD profiles, and envelope timing data for analysis and comparison.
Characterization Modes
Transfer Curve Analysis
Sweep input level from −60dB to +12dB and plot output level. Verifies gain reduction curve matches design spec. Run via bol-probe --characterization transfer-curve.
Pass criteria: 99%+ match to committed baseline. Detects unexpected nonlinearities or compression curve drift.
Envelope Response
Send tone burst (sudden loud signal) and measure attack/release timing. Compares actual envelope to theoretical values. Run via bol-probe --characterization envelope.
Comparison policy:Timing is evaluated against the product's accepted baseline or named contract. Compressor voices intentionally use different response shapes, so there is no universal attack or release threshold.
Total Harmonic Distortion (THD)
Send pure sine wave, measure harmonic content. Verifies saturation stages introduce intended harmonics, not unwanted artifacts. Run via bol-probe --characterization thd.
Comparison policy:THD is evaluated against the product's accepted baseline or named contract. Intended harmonic profiles vary by product and compressor voice.
Baseline Policy
Baselines are committed artifacts in the repo under plugins/production/<Plugin>/tests/baselines/bol/.
We only update baselines with explicit write commands—never implicitly. This prevents accidental “normalization” of bugs. Lab runs compare by default when a baseline exists, with configurable sensitivity via --threshold.
If the comparison fails, it means the plugin's behavior changed. Could be a bug, could be an intentional improvement—either way, we investigate before updating the baseline.
Complementary Lower-Layer Characterization
BOL remains the black-box layer: audio enters the complete plugin and the resulting output is measured from the outside. Some products also publish lower-layer characterization that isolates a DSP component under controlled fixture conditions. Those measurements complement BOL, but they are not BOL runs and do not replace full-plugin validation.
Pressure's Research Notes include one such controlled engine-response snapshot, with the fixture boundary and caveats kept visible alongside the measurements.
View Pressure engine-response characterization →