Skip to content

[4.7.0] MuseSampler: send breath marks#32932

Merged
RomanPudashkin merged 1 commit intomusescore:4.7from
RomanPudashkin:musesampler_send_breath_marks_470
Apr 8, 2026
Merged

[4.7.0] MuseSampler: send breath marks#32932
RomanPudashkin merged 1 commit intomusescore:4.7from
RomanPudashkin:musesampler_send_breath_marks_470

Conversation

@RomanPudashkin
Copy link
Copy Markdown
Contributor

@RomanPudashkin RomanPudashkin commented Apr 7, 2026

No description provided.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 7, 2026

📝 Walkthrough

Walkthrough

This PR introduces support for Breath articulations across the playback system, including parsing breath marks from chords, defining the articulation type in the MPE framework, mapping it to string representations, adding profile patterns for voice and winds, and integrating with the MuseSampler sequencer for audio synthesis.

Changes

Cohort / File(s) Summary
Articulation Type Core
src/framework/mpe/mpetypes.h, src/framework/mpe/internal/articulationstringutils.h
Added Breath enum value to ArticulationType and registered corresponding string mapping "Breath" in articulation name lookup.
Chord Playback Parsing
src/engraving/playback/metaparsers/chordarticulationsparser.h, src/engraving/playback/metaparsers/chordarticulationsparser.cpp
Added parseBreath private method to extract breath marks from chords, compute playback timestamps, convert pause duration to articulation metadata, and append to articulation map.
Articulation Profile Resources
src/framework/mpe/resources/general_voice_articulations_profile.json, src/framework/mpe/resources/general_winds_articulations_profile.json
Added Breath pattern entries defining arrangementPattern (durationFactor: 9900), dynamic expression ramp (0→5000→0), and static pitch offsets for both voice and winds.
Audio Sequencer Integration
src/framework/musesampler/internal/apitypes.h, src/framework/musesampler/internal/musesamplersequencer.cpp
Added ms_NoteArticulation2_BreathMark flag and registered mapping from ArticulationType::Breath to the MuseSampler articulation constant.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request description is entirely missing. The template requires a description with motivation, issue reference, and confirmation of various checks. Add a complete pull request description following the provided template, including issue reference, motivation for changes, and checklist confirmations.
Docstring Coverage ⚠️ Warning Docstring coverage is 11.11% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: adding breath mark support to MuseSampler playback functionality.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 74b5903d-1e15-4f99-9ca9-b1a374b50053

📥 Commits

Reviewing files that changed from the base of the PR and between a601bfc and 062d3b4.

📒 Files selected for processing (8)
  • src/engraving/playback/metaparsers/chordarticulationsparser.cpp
  • src/engraving/playback/metaparsers/chordarticulationsparser.h
  • src/framework/mpe/internal/articulationstringutils.h
  • src/framework/mpe/mpetypes.h
  • src/framework/mpe/resources/general_voice_articulations_profile.json
  • src/framework/mpe/resources/general_winds_articulations_profile.json
  • src/framework/musesampler/internal/apitypes.h
  • src/framework/musesampler/internal/musesamplersequencer.cpp

@RomanPudashkin RomanPudashkin merged commit 6366079 into musescore:4.7 Apr 8, 2026
13 checks passed
@RomanPudashkin RomanPudashkin deleted the musesampler_send_breath_marks_470 branch April 8, 2026 12:44
@github-project-automation github-project-automation bot moved this from In Progress to Needs porting in MuseScore Studio 4.7 Apr 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

MuseSounds playback General playback issue

Projects

Status: Needs porting

Development

Successfully merging this pull request may close these issues.

3 participants