-
Notifications
You must be signed in to change notification settings - Fork 0
Stimulus defaults run up to 0 dBFS: plot ir defaults to -6 dBFS, level ramps end at 0 dBFS #459
Copy link
Copy link
Closed
Labels
agent:architectArchitect agent acted on itArchitect agent acted on itagent:devDeveloper agent acted on itDeveloper agent acted on itagent:triageTriage agent acted on itTriage agent acted on itbugSomething isn't workingSomething isn't workingdrive-pathStimulus/drive safety checklist applies (qa.md)Stimulus/drive safety checklist applies (qa.md)in-reviewQA reviewed, awaiting human mergeQA reviewed, awaiting human mergeready-to-implementSpec complete, developer can pick upSpec complete, developer can pick upsoftwareac Python/Rust codebaseac Python/Rust codebasetier-1ac-core/measurement/ — QA runs the standards checkac-core/measurement/ — QA runs the standards check
Description
Activity
Metadata
Metadata
Assignees
Labels
agent:architectArchitect agent acted on itArchitect agent acted on itagent:devDeveloper agent acted on itDeveloper agent acted on itagent:triageTriage agent acted on itTriage agent acted on itbugSomething isn't workingSomething isn't workingdrive-pathStimulus/drive safety checklist applies (qa.md)Stimulus/drive safety checklist applies (qa.md)in-reviewQA reviewed, awaiting human mergeQA reviewed, awaiting human mergeready-to-implementSpec complete, developer can pick upSpec complete, developer can pick upsoftwareac Python/Rust codebaseac Python/Rust codebasetier-1ac-core/measurement/ — QA runs the standards checkac-core/measurement/ — QA runs the standards check
problem
Every emitting CLI command falls back to a hardcoded level when none is typed, and several of those defaults are far above anything this project runs on real hardware. Operator, 2026-09-15:
For scale: the standing rig ceiling is −40 dBFS, and the speaker path on the dedicated rig is held at −50 dBFS because a −40 dBFS sweep through a Genelec 1083 is already "surprisingly loud".
Defaults on
main(read at298f77dc, PR #352's tip, which carries main):ac plot irac-cli/src/parse/plot.rs:47ac plot levelac-cli/src/parse/plot.rs:11,14ac generate levelac-cli/src/parse/generate.rs:24,27ac calibrateac-cli/src/parse/calibrate.rs:32ac plotac-cli/src/parse/plot.rs:87ac generate frequencyac-cli/src/parse/generate.rs:51The server-side backstop does not close this.
drive_max_dbfsdefaults to −10 dBFS (ac-core/src/config.rs:18), so on a machine without a hand-edited config a bareac plot iris clamped to −10 dBFS, not refused, and a bare level ramp reaches −10. #360 madeplot_irandcalibratehonour the clamp. Whetherplot_level/sweep_levelramps do was not verified for this issue.why it matters
A default is the level a user gets by not deciding. Typing
ac plot irwith no arguments is the natural first try, and here it puts a full-band sweep 34 dB above the rig ceiling into whatever is connected — amplifier, loudspeaker, DUT, or someone's headphones. The only thing standing between that and the hardware is a −10 dBFS clamp that is itself louder than any consented run so far.This is the silent-default shape: nothing warns, the command succeeds, and the level was never chosen by anyone.
acceptance criteria
unwrap_orliterals.plot level,generate level) do not default to ending at 0 dBFS.drive_max_dbfs's default is reconsidered together with the CLI defaults, so the backstop is not louder than the defaults it backs up.Choosing the actual numbers, and whether some commands should instead require an explicit level, is a design decision — not settled here.
related
#360 (clamp coverage for
plot_ir/calibrate), #442 (it_loopback_irclamping at the −10 dBFS default).