Model cuts as polylines, not horizontal lines

Page 1 of Engel (Bosse/Partitura) has a boxed VERSE 1 label in the left
margin at the same rows as the preceding system's bass lyric line — ink
on both sides of the page throughout the band, so no horizontal line
separates them. The label belongs to system 2, the lyrics to system 1.

A cut is therefore a polyline spanning the page, two points being the
ordinary straight case. A slice bounded by a non-straight cut is not
rectangular: its image is the region's bounding box with everything
outside made transparent, which composites invisibly on the viewer's
sheet. Masking paints transparency, never white.
This commit is contained in:
Esa Kataja
2026-07-28 22:22:03 +03:00
parent 46ae7e813a
commit 01227b3382
2 changed files with 31 additions and 9 deletions
+15 -8
View File
@@ -20,9 +20,11 @@ _Avoid_: mode, format
**Slice**:
The atomic visual unit of a song — one *system*, one full line of music across
all voices, typically 412 bars with lyrics intact. Same definition as noteman's.
Structurally, a horizontal region of a page: a page begins as a single slice and
each cut splits one slice into two, so slices always tile the page with no gaps
and no overlap.
Structurally, a region of a page bounded above and below by cuts: a page begins
as a single slice and each cut splits one slice into two, so slices always tile
the page with no gaps and no overlap. Rectangular when its cuts are straight,
and stepped when they are not — the slice image is then its bounding box with
everything outside the region transparent.
_Avoid_: segment, strip, row, band
**Discard**:
@@ -76,11 +78,16 @@ living unenforced in two repos, and a score with two codas simply works.
_Avoid_: link, reference, pointer
**Cut**:
A horizontal line placed on a page that splits one slice into two. Straight at
first; a later polyline form handles pages where systems slant or interleave.
Placement is forgiving — anywhere inside the whitespace gap yields the same
output, because trim crops to ink afterwards.
_Avoid_: split, divider, break
A boundary placed on a page that splits one slice into two. Modelled as a
**polyline** spanning the page from left edge to right edge, with two points —
a straight horizontal line — as the ordinary case. Extra vertices handle the
common publisher habit of printing a section label (`VERSE 1`, `INTRO`) in the
left margin at the same height as the previous system's lyrics: the cut steps
above the label on the left and below the lyrics on the right.
Placement along the boundary is forgiving — anywhere inside the whitespace yields
the same output, because trim crops to ink afterwards.
_Avoid_: split, divider, break, cut line
**Content rectangle**:
The region of a page that holds music. Set per PDF, adjustable per page, applied