Skip to content

Fix FxChain setup#20

Open
RomanPudashkin wants to merge 1 commit into
musescore:mainfrom
RomanPudashkin:fix_fx_chain
Open

Fix FxChain setup#20
RomanPudashkin wants to merge 1 commit into
musescore:mainfrom
RomanPudashkin:fix_fx_chain

Conversation

@RomanPudashkin
Copy link
Copy Markdown
Contributor

@RomanPudashkin RomanPudashkin commented May 12, 2026

Resolves: musescore/MuseScore#33371

  1. avoid assigning the first FX node as the chain input so the mixer can be used as the input at a higher level
  2. fix FX processing order in the chain
  3. avoid repeated rebuild() calls during chain construction

1. avoid assigning the first FX node as the chain input
   so the mixer can be used as the input at a higher level
2. fix FX processing order in the chain
3. avoid repeated rebuild() calls during chain construction
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 29, 2026

Review 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: Pro

Run ID: b676e84d-f729-4eb0-875c-97e41ae81a4e

📥 Commits

Reviewing files that changed from the base of the PR and between 751bd9c and f95b03d.

📒 Files selected for processing (5)
  • framework/audio/engine/internal/audiofactory.cpp
  • framework/audio/engine/internal/nodes/eventaudionode.cpp
  • framework/audio/engine/internal/nodes/fxchain.cpp
  • framework/audio/engine/internal/nodes/fxchain.h
  • framework/audio/engine/internal/nodes/fxnode.cpp

📝 Walkthrough

Walkthrough

This PR refactors the FxChain effect processor container to accept a complete processor list via setFxList() instead of incrementally adding wrapped nodes. The FxChain header declares the new public method and two private overrides (rebuild() and doSelfProcess()) that manage internal node connections and audio processing. The implementation clears existing state, constructs FxNode wrappers in reverse order, attaches state change handlers, and rebuilds node connections. AudioFactory methods are updated to call setFxList(fxlist) when constructing master and track chains. Minor name formatting fixes remove trailing spaces from FxNode and EventAudioNode generated names.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ❓ Inconclusive The PR description clearly addresses the issue, lists 3 concrete changes, but does not follow the provided template structure with checkboxes and build configuration. Follow the repository's PR template by including the CLA checkbox, checklist items, and build configuration sections to ensure compliance with contribution guidelines.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Fix FxChain setup' directly relates to the main objective of refactoring FxChain initialization and fixing the FX processing setup.
Linked Issues check ✅ Passed The code changes directly address all three objectives from issue #33371: refactoring FxChain initialization to avoid first node assignment as input, fixing FX processing order through rebuild(), and eliminating repeated rebuilds via setFxList().
Out of Scope Changes check ✅ Passed All changes are scoped to FxChain setup, node naming consistency, and FX processing mechanics—directly supporting the three stated objectives and issue resolution.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 and usage tips.

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.

No sound during playback after loading Audio FX plugin (5.0 nightly master)

2 participants