Skip to content

a <chord/> note after <backup> or <forward> marks the note before it as a chord #441

Description

@webern

MeasureReader decides whether a note belongs to a chord by peeking at the next note, and the peek
skips every non-note sibling, including <backup> and <forward>
(src/private/mx/impl/MeasureReader.cpp:189-194). Given

<note>...<duration>4</duration></note>
<backup><duration>4</duration></backup>
<note><chord/>...</note>

the first note is marked isChord and does not advance time (MeasureReader.cpp:427-433). The
backup then moves before the measure start and is clamped to 0 (MeasureReader.cpp:586-590), so
the time positions that follow are wrong. The peek should stop at a <backup> or <forward>.

Related: #425. Found while auditing silent recoveries for #432 (#439).

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    aiIssues opened by, or through, a coding agent.bugsoftware defectimplAffects the mx::impl layernon-breakingfixes or implementation that do not require breaking changes

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions