Repository navigation
Conversation
…off and keep lego stem gain The addon rescaled every non-edit result to a 0.9 peak before the int16 quantisation, whatever normalizeLoudness said, and did the same to lego stems. The engine normalizes neither, so the flag only switched off its percentile pass and a stem lost its gain relative to the source. The gain decision moves to OutputGain.hpp, where it is unit-tested.
Review StatusCurrent Status: ✅ APPROVED |
License compliance — cleanNo new dependency license findings in this PR. Warn-only (shadow) mode — this check does not block merges yet. Updated automatically by the canonical license compliance workflow. NOTICE presence (advisory)Missing NOTICE (advisory, does not block):
|
[Medium impact] The PR appears safe to merge; no new actionable issues were found. SummaryACE-Step now keeps the engine's gain when
Review checks were based on source inspection; no native build or audio generation was run. Reviews (4) · Last reviewed commit: "Merge branch 'main' into fix/QVAC-27588-..." · Reviewed by Greptile |
…lane The lane built the addon, printed a stub notice and ran only the fuzz target, so audiogen_ggml_tests never ran in CI. It now runs test:cpp after the native build's caches are saved and before the fuzz build reconfigures the tree.
Workflow security (shadow mode)zizmor found 782 finding(s) in Findings are annotated inline on the changed files and listed in the job summary. Reproduce locally: pipx run zizmor==1.27.0 --offline .github/ |
Keeps the new gain test beside the tests #5495 added and expects the C++ test step in the workflow policy test.
🎯 What problem does this PR solve?
normalizeLoudness: falsedid not return raw output. The option reaches the engine, but the addon then rescaled every non-edit result to a 0.9 peak before the int16 conversion, whatever the option said. The flag only switched off the engine's percentile pass.legostems. The engine never normalizes a stem, so that it keeps its mix gain relative to the source; the addon raised or lowered each stem to a 0.9 peak.📝 How does it solve it?
AcestepModel::generateintoaddon/src/model-interface/acestep/OutputGain.hpp. It follows the engine's rule: only a generation that asked for normalization is rescaled.normalizeLoudness: false, edit plans and lego stems keep gain 1.0.[-1, 1]now saturate at int16 full scale. That is what raw output means at an int16 boundary; the README and the option's doc comment say so.cpp-testslane now runsnpm run test:cpp(the addon's own gtests, this one and the budget and runtime-option tests) after the native build's caches are saved and before the fuzz build; it only printed a stub before. The workflow policy test expects the new step.index.d.tsis regenerated for the doc comment. CHANGELOG entry under Unreleased, no version bump (package is at 0.10.0, released today).Scope note: QVAC-27588 also lists ACE-Step
backend/lmBackendand MiniMaxcoremlConditionerPath. Those are already implemented in #5495, so this PR leaves them alone. It touches a different part ofAcestepModel.cppand should merge cleanly on either side of it.🧪 How was it tested?
addon/tests/test_output_gain.cpp(6 cases: normalized generation, normalization off, lego stem, edit, near-silent and empty input, quiet input), added toaudiogen_ggml_tests. Compiled and run locally together with the existing budget tests against an existing vcpkg tree: 11/11 pass.AcestepModel.cppsyntax-checked with the package's compile flags against the engine header at the pinnedspeech-cppcommit;clang-formatclean.npm run lint:js,npm run lint:ts,npm run test:types(typecheck, d.ts, generated-wrapper check) pass; JS unit tests 185/185;test:node47/47.test:packagewas not completed locally (it downloads model files).