Skip to content

the writer drops tuplet position, midi-unpitched and accidental marks #443

Description

@webern

These are read into mx::api but never written back:

  • TupletStart::positionData: read at src/private/mx/impl/TupletReader.cpp:28, but the tuplet
    writer (NotationsWriter.cpp:215-276) sets no position attributes. Done in fix: write back tuplet position data, midi-unpitched and accidental marks #462.

  • MidiData::unpitched: read at PartReader.cpp:348, but PartWriter.cpp never writes
    <midi-unpitched>. Done in fix: write back tuplet position data, midi-unpitched and accidental marks #462.

  • MarkType::accidentalMark*: read from <notations> (NoteFunctions.cpp:297-299) and from
    <ornaments> (OrnamentsFunctions.cpp:86-89). The mark loop in NotationsWriter.cpp:304 has no
    branch for them (isMarkOrnament does not include them), and
    Converter::convertAccidentalMark(api::MarkType) has no caller. The two sources also read to the
    same MarkType, so a writer could not tell which one to write.

    fix: write back tuplet position data, midi-unpitched and accidental marks #462 writes them, but only at the notations level: the api still records no source, so an
    accidental mark read from <ornaments> cannot be written back there. That needs an api-visible
    distinction plus writer grouping (an <ornaments> group must lead with an ornament), a
    public-model design pass rather than a writer branch.

Related: #403. 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