Skip to content

Map tremolo to the tremolo strings preset on single string instruments - #263

Open
manolo wants to merge 1 commit into
musescore:mainfrom
manolo:fix-tremolo-string-instruments
Open

Map tremolo to the tremolo strings preset on single string instruments#263
manolo wants to merge 1 commit into
musescore:mainfrom
manolo:fix-tremolo-string-instruments

Conversation

@manolo

@manolo manolo commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Resolves: musescore/MuseScore#21122

A tremolo on a solo violin, viola, cello or double bass plays the plain arco sound: the solo VIOLIN, VIOLA, VIOLONCELLO and CONTRABASS articulation maps carry no tremolo entry, so the note stays on the standard channel. This adds the four tremolo articulations to each of them, on the same bank and program the section variants already use. Those solo maps already take every one of their articulations from that same bank, pizzicato is literally the same program in both, so tremolo was the only one left out. When a soundfont has no such bank, FluidSynth substitutes bank 0 with the same program number before giving up, so a third party font carrying a tremolo preset at program 44 is reached as well.

This replaces musescore/MuseScore#30951, which made the same change while the file still lived in the MuseScore repository, where it can no longer be rebased because the path it edits is gone from that tree.

  • I signed the CLA as manolo:
  • The title of the PR describes the problem it addresses.
  • Each commit's message describes its purpose and effects, and references the issue it resolves. If changes are extensive, there is a sequence of easily reviewable commits.
  • The code in the PR follows the coding rules.
  • I understand all aspects of the code I'm contributing and I'm able to explain it if requested.
  • The code compiles and runs on my machine, preferably after each commit individually. I have manually tested and verified that my changes fulfil their intended purpose.
  • No prior attempts to resolve this problem exist, or if they do, I listed them in my PR description and described how I avoided repeating past mistakes.
  • There are no unnecessary changes.
  • I created a unit test or vtest to verify the changes I made (if applicable).

The section variants already select program 44 on their own bank, so a
plain violin, viola, cello or double bass fell back to the arco sound.
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown

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 Plus

Run ID: 2150bc71-11ea-4ebe-8509-78064c1faae8

📥 Commits

Reviewing files that changed from the base of the PR and between be3bd19 and 954128e.

📒 Files selected for processing (1)
  • framework/audio/engine/internal/synthesizers/fluidsynth/soundmapping.h

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


📝 Walkthrough

Walkthrough

Added Tremolo8th, Tremolo16th, Tremolo32nd, and Tremolo64th mappings to the violin, viola, violoncello, and contrabass articulation maps. Each instrument uses its existing program family. Mute mappings remain unchanged.

Merge Risk: ⚪ Minimal · up to 95412

The change routes tremolo articulations for four solo string instruments to their intended tremolo presets without adding new interfaces, dependencies, permissions, or deployment behavior. No actionable merge-blocking risk remains beyond normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The changes satisfy issue #21122 by adding tremolo mappings for solo violin, viola, violoncello, and contrabass. The mappings use the corresponding section instrument bank and program so tremolo can s…
Out of Scope Changes check ✅ Passed The changes are limited to articulation mappings in the FluidSynth soundmapping file and directly support the linked playback fix. No unrelated code changes are identified.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Title check ✅ Passed The title clearly describes the main change: mapping tremolo playback to tremolo presets for single-string instruments.
Description check ✅ Passed The description identifies the issue, explains the technical change and motivation, references the replaced pull request, and completes the required checklist. The optional build configuration section…
Full details: Linked Issues check

Explanation

The changes satisfy issue #21122 by adding tremolo mappings for solo violin, viola, violoncello, and contrabass. The mappings use the corresponding section instrument bank and program so tremolo can select the intended SF2 preset instead of the default arco sound.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1 files.

Full details: Description check

Explanation

The description identifies the issue, explains the technical change and motivation, references the replaced pull request, and completes the required checklist. The optional build configuration section is omitted without affecting completeness.

✨ 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.

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.

Multichannel instruments don't select correct midi preset for tremolo on SF2 fonts

1 participant