neoscore.western.staff_group

class neoscore.western.staff_group.StaffGroup[source]

Bases: object

A collection of staves.

This provides a shared context for staff systems, useful in situations like aligning staff fringes.

Each staff has a reference to a staff group, even if it’s a single-item group. See AbstractStaff.group.

RIGHT_PADDING = 1

Padding to the right of all staff fringes, in pseudo-staff-units.

CLEF_LEFT_PADDING = 0.5

Padding to the left of clefs in fringes, in pseudo-staff-units.

TIME_SIG_LEFT_PADDING = 0.5

Padding to the left of time signatures in fringes, in pseudo-staff-units.

KEY_SIG_LEFT_PADDING = 0.25

Padding to the left of key signatures in fringes, in pseudo-staff-units.

__init__() None[source]
property staves: SortedKeyList[AbstractStaff]

The staves contained in this group.

Staves shouldn’t be directly added to this list; instead register a staff with the group when the staff is initialized.

This list is automatically sorted in visually descending order.

fringe_layout_at(staff: AbstractStaff, location: Optional[NewLine]) StaffFringeLayout[source]

Compute to fringe layout needed for a staff at a given location.

This automatically aligns the returned layout with the fringes of other staves in the group.

Layouts are internally cached so this is fairly efficient.