DigiScore / neoscore

A python library for notating music in a graphics-first paradigm
https://neoscore.org
BSD 3-Clause "New" or "Revised" License
108 stars 9 forks source link

Staff systems with differing fringe sizes don't work well #25

Closed ajyoon closed 2 years ago

ajyoon commented 2 years ago

In the new staff fringe layout system I'm building, fringes with variable sizes - caused most commonly by differing key signatures or staff sizes - do not behave well. This is a tracking issue, as we don't have a current good solution to this problem since it probably requires more cross-staff awareness than currently is supported.

One possible idea would be to require that the left edge of the flowable margin (at page x=0) must be the staff starting position. Because each NewLine encodes that margin value (in its pos.x - but it could also be made an explicit field), and the dynamic margin calculation does try to account for variable size margin layers, staves in a system could infer a common left margin.

This might end up being higher priority since I think this would interfere with the ability to use tab staves and percussion staves in common systems with conventional staves.

ajyoon commented 2 years ago

worked out a solution - will be merged in coming work