neoscore.western.tab_clef

class neoscore.western.tab_clef.TabClef[source]

Bases: MusicText, StaffObject

A tablature clef.

Unlike classical Clefs, this is purely cosmetic. It must be placed in a TabStaff, and it is automatically positioned at its beginning. If the TabStaff is in a flowable, this automatically repeats at the beginning of every flowed staff line for the length of the staff. Because clef changes are generally inapplicable to tabs, clef changes are not currently supported.

__init__(staff: TabStaff, glyph_name: str = '6stringTabClef', font: Optional[MusicFont] = None, brush: Optional[BrushDef] = None, pen: Optional[PenDef] = None, hide_background: bool = True, z_index: Optional[int] = None)[source]
Parameters
  • staff – The parent staff

  • glyph_name – The SMuFL glyph to use.

  • font – The font to use. Defaults to the staff’s font.

  • brush – The brush to fill in text shapes with.

  • pen – The pen to trace text outlines with. This defaults to no pen.

  • hide_background – Whether to paint over the background behind the text.

  • z_index – Controls draw order with lower values drawn first. Defaults to 1 greater than the staff’s z_index.

property breakable_length: Unit

Tab clefs are drawn at the beginning of every line in a staff.

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.