Repository navigation
fix(cli): a render says when it lowered the whole mix, and how to keep the level - #6938
Merged
Merged
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
Contributor
Edit accuracy: accurate 271 (base branch 271), smooth 120 of thoseThe gate passes. Quarantined, measured but not gated (0) Unstable (2)
|
Contributor
There was a problem hiding this comment.
Approving at a36890ac. I found no blocker.
- Fails without the fix: I put
main'srender.tsback and the named testrenderLocal browser GPU config › warns that the whole mix was lowered, and the render still completesfailed (expected "warn" to be called…). With the PR,render.test.tsandaudioLoweredWarning.test.tsboth pass (116/116). - Contract: the producer sets
audioLoweredDbonly when it actually applied a cut (enforceAacTruePeakreturnsloweredDbonly on the corrected path), so renders with no cut print nothing.outcomestayscompleted, and nothing in the CLI reads the returnedwarningsin a way that would flip exit status or--no-best-effort. - Docs: the -1 dBTP claim matches
AAC_DELIVERY_TRUE_PEAK_DBFS = -1, and thetruepeakceilingrange (−24–0) allows the suggested -3.
Nit (non-blocking): a cut between 0 and 0.05 dB would print as "0.0 dB". The correction headroom probably makes that unreachable.
4 tasks done
7 of 8 tasks
This branch was successfully deployed
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.
What
hyperframes rendernow warns when it lowered the whole mix, and says how to keep the level. The render still completes as before.Why
Export keeps the delivered file under -1 dBTP. If a peak passes that, it lowers the whole file by one flat amount, quiet passages included. On the CLI the only trace was an INFO log line among the render's output, so a mix several dB quieter looked like a limiter bug.
A
limiternode makes this easy to hit: it compares a smoothed level with its ceiling, so a fast peak can pass untouched and the delivery step then cuts everything. In real exports with a -2 dB limiter, a quiet steady tone with short loud bursts came out lowered by 1.2 dB with one clip and 7.3 dB with two overlapping clips. Atruepeaknode at -3 on the same two clips caused no cut.Related work
The Studio export panel already shows this cut from the same
audioLoweredDb; this brings the CLI level with it. Replacing the flat cut with a true-peak limit is a follow-up PR.How
audioLoweredWarning(inpackages/cli/src/utils/) words the cut as anaudio_loweredwarning.renderLocalprints it and adds it to the result'swarnings.outcomestayscompleted, so--no-best-effortdoes not start failing these renders.docs/reference/audio-effects.mdxnow says what export does above the ceiling, and points totruepeakrather thanlimiterfor holding the sum.Test plan
audioLoweredWarning.test.ts, andwarns that the whole mix was lowered, and the render still completesinrender.test.ts.packages/cli: both test files passed 3 runs in a row (116 tests);tsc --noEmitclean;oxlintandoxfmton the changed files.hyperframes renderruns on Linux. A film whose mix was cut printed[audio_lowered] Audio lowered 7.3 dB across the whole mix…and exited 0. A film with no cut printed nothing new.