feat(sa3): spread denoise changes across the product dial - #321
Draft
ryanontheinside wants to merge 1 commit into
Draft
Conversation
Keep the upstream-corrected monotonic schedule, but map the product dial to entry sigma using the inverse of the measured change curve. This spreads useful movement across the control instead of concentrating it near the top. The mapping is deliberately presented as a product choice, not another sampler fix: its referee is validated for ordering rather than equal perceptibility, and one global curve moves different material at different rates. DEMON_SA3_DENOISE_MAPPING=identity bypasses it while retaining the upstream schedule correction.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Product decision, intentionally separate
Map the public
sa3_denoisecontrol onto entry sigma using the inverse of the measured audio-change curve, so useful change is spread across the dial instead of concentrated near the top.This is deliberately not presented as another sampler fix. DEMON #320 / Stability-AI/stable-audio-3#94 contain the mathematical monotonicity correction. This PR is an opinionated product mapping layered on top, isolated so we can decide whether we actually want that opinion.
Behavior
The measured knots are:
Endpoints retain their existing meaning:
0.0: preserve the source1.0: generate from pure noiseIntermediate positions interpolate linearly between measured knots. The manifest description now describes the knob as measured audio-change amount rather than raw
init_noise_level.Set this to bypass only the product mapping:
Identity mode still uses the corrected monotonic upstream schedule.
Evidence and limits
The curve comes from a 41-entry-sigma sweep over nine clips. Less than one fifth of the measured available change occurred below sigma 0.70, which explains why the corrected raw-sigma control still felt mostly inactive until its upper range.
The referee combines harmonic and rhythmic change and reproduced two independent listening-order judgments that a loudness-based metric did not.
Important limitations are kept in the source documentation:
Verification
Focused coverage checks monotonicity, exact endpoints, measured knots, interpolation, clamping, default calibrated behavior, identity rollback, and invalid configuration.
Integration with the corrected upstream builder was checked in both modes at dial
0.5:Both produced monotonic, bounded schedules with exact entry and zero endpoints.
Dependencies and merge instructions
Depends on:
Do not merge this into
mainbefore the two DEMON parent PRs. After #320 merges, retarget/rebase this PR ontomain; the final diff should contain only the mapping helper, call-site mapping, manifest copy, and tests.This PR is intentionally draft until Product accepts the nonlinear default. If the mapping is rejected, #319 and #320 remain independently useful and unaffected.