neoscore.western.key_signature

class neoscore.western.key_signature.KeySignature[source]

Bases: PositionedObject, StaffObject

A logical and graphical key signature.

The signature will be rendered initially at the given pos_x, and at the beginning of subsequent lines until a new KeySignature is encountered.

This does not currently support natural (cancelling key signatures).

__init__(pos_x: Unit, staff: Staff, key_signature_type: Union[KeySignatureType, str])[source]
Parameters
  • pos_x (Unit) – The x position relative to the parent staff.

  • staff (Staff) – The parent staff

  • key_signature_type (KeySignatureType or str) – A description of the key signature. Any KeySignatureType may be used, or a str of one’s name.

property key_signature_type: KeySignatureType

A logical description of the key signature.

Type

KeySignatureType

property breakable_length: Unit

Key signatures extend until another is found in the staff.

visual_width

The visual width of this key signature

This assumes that key signatures have the same width in any clef, and that the accidentals used in key signatures are 1 staff unit wide.

render_complete(pos: Point, flowable_line: Optional[NewLine] = None, flowable_x: Optional[Unit] = None)[source]

Render the entire object.

This is used to render all objects outside flowables, as well as those inside flowables when they fit completely in one line of the flowable.

By default, this is a no-op. Subclasses with rendered appearances should override this.

This and other render methods should generally not be called directly.

Parameters
  • pos – The rendering position in document space for drawing.

  • flowable_line – If in a Flowable, the line in which this object appears

  • flowable_x – If in a Flowable, the flowable x position of this render

render_before_break(pos: Point, flowable_line: NewLine, flowable_x: Unit)[source]

Render the beginning of the object up to a stopping point.

For use in flowable containers when rendering an object that crosses a line or page break. This function should render the beginning portion of the object up to the break.

By default, this is a no-op. Subclasses with rendered appearances should override this.

This and other render methods should generally not be called directly.

Parameters
  • pos – The rendering position in document space for drawing.

  • flowable_line – The line in which this object appears

  • flowable_x – The flowable x position of this render

render_spanning_continuation(pos: Point, flowable_line: NewLine, object_x: Unit)[source]

Render the continuation of an object after a break and before another.

For use in flowable containers when rendering an object that crosses two breaks. This function should render the portion of the object surrounded by breaks on either side.

By default, this is a no-op. Subclasses with rendered appearances should override this.

This and other render methods should generally not be called directly.

Parameters
  • pos – The rendering position in document space for drawing.

  • flowable_line – The line in which this object appears

  • object_x – The local object x position of the line’s start.

render_after_break(pos: Point, flowable_line: NewLine, object_x: Unit)[source]

Render the continuation of an object after a break.

For use in flowable containers when rendering an object that crosses a line or page break. This function should render the ending portion of an object after a break.

By default, this is a no-op. Subclasses with rendered appearances should override this.

This and other render methods should generally not be called directly.

Parameters
  • pos – The rendering position in document space for drawing.

  • flowable_line – The line in which this object appears

  • object_x – The local object x position of the line’s start.