Skip to content

Fix aux channels not decaying - #289

Open
mathesoncalum wants to merge 1 commit into
musescore:mainfrom
mathesoncalum:34534-aux_channel_decay
Open

mathesoncalum wants to merge 1 commit into
musescore:mainfrom
mathesoncalum:34534-aux_channel_decay

Conversation

@mathesoncalum

Copy link
Copy Markdown
Contributor

Resolves: musescore/MuseScore#34534

The problem here is that aux.processed can only ever flip to true in writeTrackToAuxBuffers which, since 7e9e6ed, doesn't get called if all of its senders are silent. The result is that aux channels are cut off abruptly once the senders go silent because processAuxChannels won't write anything to the buffer when aux.processed is false.

The solution proposed here is to continue writing to the buffer in processAuxChannels if the aux itself is not silent (due to reverb ringing out, etc.)

@coderabbitai

coderabbitai Bot commented Sep 11, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: d1dd2da4-1ce6-4737-b96e-d7042a910c9e

📥 Commits

Reviewing files that changed from the base of the PR and between b17807d and 330939b.

📒 Files selected for processing (1)
  • framework/audio/engine/internal/mixer.cpp

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The mixer adds isChainSilent to centralize chain silence checks. process skips silent main tracks before writing to output or auxiliary buffers. processAuxChannels continues processing auxiliary chains that may still produce audio, such as reverberation tails, and skips silent auxiliary chains during output mixing.

Priority: ⬇️ Low

Severity of issue fixed: Low

Merge Risk: ⚪ Minimal · up to 33093

The auxiliary processing change preserves non-silent effect tails while continuing to suppress silent chains; no actionable merge risk remains.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description states the linked issue, explains the regression, and describes the proposed fix. However, it omits the required checklist and build configuration from the repository template, includi… Complete the required template sections. Mark each applicable checklist item, provide the contributor username for the CLA, describe manual or automated testing, and retain or explicitly address the build configuration section.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 1 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the primary change: preventing aux channels from stopping their decay when their senders become silent.
Linked Issues check ✅ Passed The change addresses #34534. processAuxChannels now processes an aux channel when it received input or its chain is not silent. This allows reverb output to decay and keeps writing non-silent aux ou…
Out of Scope Changes check ✅ Passed The diff changes only framework/audio/engine/internal/mixer.cpp. The helper, processing changes, and comments directly support the aux-channel decay fix in #34534. No unrelated behavior or files are…
Full details: Description check

Explanation

The description states the linked issue, explains the regression, and describes the proposed fix. However, it omits the required checklist and build configuration from the repository template, including CLA status, testing, coding guidelines, unnecessary-change review, and test coverage.

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mathesoncalum

Copy link
Copy Markdown
Contributor Author

/build

@github-actions

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Aux channel level meter doesn't decay

3 participants