Skip to content

probeNoiseFloor anchors to the quietest window, which on an assembled render finds 4 pauses where 19 exist #65

Description

@Railly

Found while implementing #63, and it means the deadAir warning shipped in 0.22.0 is underreporting on every render.

The defect

probeNoiseFloor anchors to the quietest window in the media. On a raw source that is the room. On an assembled render it is an artefact of the assembly: the quietest 2s of a cut is whatever the tightest splice left behind, not the noise floor the speech sits on.

Measured on run9.wav (374.9s, a real shipped render):

threshold pauses over 0.8s total
probeNoiseFloor derived, -68.7dB 4 6.8s
median-anchored, -40.83dB 19 33.9s

A human listening to that render flagged three long silences by ear. The probeNoiseFloor threshold misses all three. The median-anchored one finds them, and its 19 spans / 33.9s independently match a manual -40dB sweep (19 / 34.4s).

Blast radius

findSurvivingDeadAir is what commit prints as its deadAir block since 0.22.0, so every round since then has been told there were 4 pauses when there were 19. That is the check whose entire purpose is to catch dead air surviving into the output, and it has been reporting a fifth of it.

#63's auto-cut pass already uses the median-anchored threshold and says so in its own report; this issue is about the warning path, which still uses the minimum-anchored one.

Direction

Anchor the floor to a robust statistic of the quiet portion rather than its minimum. Report both numbers where they disagree, since a large gap between them is itself evidence that the media is an assembly rather than a raw take.

Related: #43 (where the calibration was introduced), #63 (which routed around it).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions