[MusicXML import] assert fails in TDuration::TDuration(...)

• Feb 8, 2022 - 20:08
Reported version
3.6
Type
Functional
Frequency
Once
Severity
S4 - Minor
Reproducibility
Always
Status
active
Regression
No
Workaround
No
Project

Importing the attached file using a debug build of 3.x results in a failed assert:
libmscore/durationtype.cpp:unknown: ASSERT: "truncate || (fraction() - l).numerator() == 0"

In 3.x (commit f7639dc of May 29, 2021) this is caused by the TDuration constructor call in file importmxmlpass2.cpp line 4465. An invalid duration for an aborted tuplet leads to a missing duration that cannot be represented as a single note value. Similar code is still present in today's master.

This issue as described may only concern only debug builds, but on production builds it may lead to invalid note timing (still to be investigated).

Relates to #270643: [EPIC] MusicXML import/export issues

Attachment Size
tuplet_double_start.xml 3.48 KB

Comments