Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Maestro Maestro
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Labels
    • Labels
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • RiscOS
    • SSources
  • Apps
  • MaestroMaestro
  • Merge requests
  • !2

Merged
Created Oct 02, 2020 by Chris Wraight@cwraightDeveloper

Improvements to tie handling

  • Overview 6
  • Commits 1
  • Changes 6

Maestro currently has very poor tie handling, using a fixed-width sprite and no checks on what kinds of objects can be (un)tied. This change fixes a number of these issues:

  • Ties can be now be placed over or under the note.
  • Only notes in the current or following bar from the original note are candidates for being tied to.
  • The tie sprite is scaled to match the gap between notes.
  • Ties can no longer be attached to rests.
  • Deleting the second note also deletes the tie.

In order to implement the first item, an unused bit (1) in the Note block has been used. In the file spec this bit was stipulated as being for note beams, which were never implemented in Maestro. If beaming ever does get added, it'll need more than a single bit per note to make work, and would be better calculated dynamically, so I thought it safe to put the bit to this use instead.

The tie scaling in the printed document is very rudimentary, though as printing looks awful across the board and needs an overhaul in a number of areas, I think it's as good as is necessary for now.

Edited Oct 02, 2020 by Chris Wraight
Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Source branch: TieImprovements