Skip to content

decide how to read two same-named voices on a staff that meet without a backup in mx::impl #506

Open

Description

@webern

Written on behalf of the user by AI...

#492 (for #425) taught the reader that a change of <voice> text between two notes, with no <backup>, starts another voice. Within one staff, between two <backup>s, notes are split into voices by their <voice> text.

One case is left open: two voices with the same <voice> text on one staff that meet without a <backup> are read as one voice. The text is the only thing the reader uses to tell voices apart there, so the notes of both end up in a single VoiceData.

The writer avoids producing this. It only writes a voice into another voice's rests when every voice on the staff has its own <voice> text, so a score built through mx::api with two voices of the same name on a staff is still written with a <backup> between them and reads back as two voices. The open question is about files from elsewhere, and about whether mx should do more than it does now.

What needs to be decided:

  • Whether one voice is the right reading. The XML gives nothing else to go on, so this may be the answer, in which case the work is to document it (for example on VoiceData::label) and close.
  • If not, what in the file could tell the two voices apart. No such signal is known yet.

Related: #492, #425, #422

Activity

  1. added
    implAffects the mx::impl layer
    aiIssues opened by, or through, a coding agent.
    designNot a simple fix. Requires design decisions.
    on Nov 7, 2026
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.designNot a simple fix. Requires design decisions.implAffects the mx::impl layerquestion

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions