MuseScore/mscore3.txt
2016-04-13 11:05:04 +02:00

42 lines
1.7 KiB
Text

MuseScore Version 3 design goals/changes
====================================================================
- Optimize horizontal layout by allowing overlapping segments.
- Compute an outline (shape) for every Staff/Segment.
- Use the outline to compute the minimum distance between Segments.
- this also avoids collisions between Lyrics and ChordNames
- Automatically increase vertical space between staves to avoid collisions.
- Use the segment shapes to compute the minimum distance between staves.
- Do not allow more than one System on a line. In 2.x a horizontal box splits
a line into two systems. In 3.x a horizontal box is handled as a special measure.
This simplifies layouting a page a lot.
- System bar lines are moved into measures in a special segment type "BeginBarLine".
- Consider handling Instrument names as special HBox. This may remove some
special case handling from layout().
- Do not undo/redo add/removal of "created" elements.
- It speeds up doLayout() and consumes less memory.
? This should allow to call doLayout() outside of a command.
* not possible as user modified elements like precaution symbols
and system headers may be modified.
? layout of parts after change in one part not necessary
- incomplete layouts should be possible (layout only up to first page
to speed up program start)
In 2.x all Segments must be on the undo/redo stack to keep the history
consistent, This was necessary as Segments were referring to
previous/next segments to find the proper insertion point.
In 3.x Undo knows were to (re-)insert them by only checking type and tick
position.
-