Options
All
  • Public
  • Public/Protected
  • All
Menu

Class TabStave

Hierarchy

Index

Constructors

constructor

Properties

Readonly options

options: Required<StaveOptions>

Static TEXT_FONT

TEXT_FONT: Required<FontInfo> = ...

Default font for text. This is not related to music engraving. Instead, see Flow.setMusicFont(...fontNames) to customize the font for musical symbols placed on the score.

Accessors

font

  • get font(): string
  • set font(f: string): void
  • Returns the CSS compatible font string.

    Returns string

  • Provide a CSS compatible font string (e.g., 'bold 16px Arial').

    Parameters

    • f: string

    Returns void

fontInfo

  • Return a copy of the current FontInfo object.

    Returns Required<FontInfo>

  • Return a copy of the current FontInfo object.

    Parameters

    Returns void

fontSize

  • get fontSize(): string
  • set fontSize(size: string | number): void
  • The size is 1) a string of the form '10pt' or '16px', compatible with the CSS font-size property. or 2) a number, which is interpreted as a point size (i.e. 12 == '12pt').

    Returns string

    a CSS font-size string (e.g., '18pt', '12px', '1em').

  • The size is 1) a string of the form '10pt' or '16px', compatible with the CSS font-size property. or 2) a number, which is interpreted as a point size (i.e. 12 == '12pt').

    Parameters

    • size: string | number

    Returns void

fontSizeInPixels

  • get fontSizeInPixels(): number
  • Returns number

    the font size in px.

fontSizeInPoints

  • get fontSizeInPoints(): number
  • Returns number

    the font size in pt.

fontStyle

  • get fontStyle(): string
  • set fontStyle(style: string): void
  • Returns string

    a CSS font-style string (e.g., 'italic').

  • Parameters

    • style: string

    Returns void

    a CSS font-style string (e.g., 'italic').

fontWeight

  • get fontWeight(): string
  • set fontWeight(weight: string | number): void
  • Returns string

    a CSS font-weight string (e.g., 'bold'). As in CSS, font-weight is always returned as a string, even if it was set as a number.

  • Parameters

    • weight: string | number

    Returns void

    a CSS font-weight string (e.g., 'bold'). As in CSS, font-weight is always returned as a string, even if it was set as a number.

Static CATEGORY

  • get CATEGORY(): string
  • Returns string

Static defaultPadding

  • get defaultPadding(): number
  • Returns number

Static rightPadding

  • get rightPadding(): number
  • Returns number

Methods

addChildElement

addClass

  • Add a class label (An element can have multiple class labels).

    Parameters

    • className: string

    Returns TabStave

addClef

  • addClef(clef: string, size?: string, annotation?: string, position?: number): TabStave
  • Add a clef to the stave.

    Example:

    stave.addClef('treble')

    Parameters

    • clef: string

      clef (treble|bass|...) see Clef.types

    • Optional size: string
    • Optional annotation: string
    • Optional position: number

    Returns TabStave

addEndClef

  • addEndClef(clef: string, size?: string, annotation?: string): TabStave
  • Parameters

    • clef: string
    • Optional size: string
    • Optional annotation: string

    Returns TabStave

addEndModifier

addEndTimeSignature

  • addEndTimeSignature(timeSpec: string, customPadding?: number): TabStave

addKeySignature

  • addKeySignature(keySpec: string, cancelKeySpec?: string, position?: number): TabStave
  • Add a key signature to the stave.

    Example: stave.addKeySignature('Db');

    Parameters

    • keySpec: string

      new key specification [A-G][b|#]?

    • Optional cancelKeySpec: string
    • Optional position: number

    Returns TabStave

addModifier

addTabGlyph

addTimeSignature

  • addTimeSignature(timeSpec: string, customPadding?: number, position?: number): TabStave
  • Add a time signature to the stave

    Example:

    stave.addTimeSignature('4/4');

    Parameters

    • timeSpec: string

      time signature specification (C\||C|\d\/\d)

    • Optional customPadding: number
    • Optional position: number

    Returns TabStave

addTrebleGlyph

applyStyle

checkContext

draw

  • All drawing functions below need the context to be set.

    Returns TabStave

drawWithStyle

  • drawWithStyle(): void
  • Draw the element and all its sub-elements (ie.: Modifiers in a Stave) with the element style.

    Returns void

format

  • format(): void

getAttribute

  • getAttribute(name: string): any
  • Return an attribute.

    Parameters

    • name: string

    Returns any

getAttributes

getBottomLineBottomY

  • getBottomLineBottomY(): number

getBottomLineY

  • getBottomLineY(): number

getBottomY

  • getBottomY(): number

getBoundingBox

getCategory

  • getCategory(): string

getClef

  • getClef(): string

getConfigForLines

getContext

getDefaultLedgerLineStyle

getEndClef

  • getEndClef(): undefined | string

getFont

  • getFont(): string

getFontSize

  • getFontSize(): string
  • Returns string

    a CSS font-size string (e.g., '18pt', '12px', '1em'). See Element.fontSizeInPixels or Element.fontSizeInPoints if you need to get a number for calculation purposes.

getHeight

  • getHeight(): number

getLineForY

  • getLineForY(y: number): number

getModifierXShift

  • getModifierXShift(index?: number): number
  • Gets the pixels to shift from the beginning of the stave following the modifier at the provided index

    Parameters

    • index: number = 0

      The index from which to determine the shift

    Returns number

    The amount of pixels shifted

getModifiers

  • getModifiers(position?: number, category?: string): StaveModifier[]
  • Parameters

    • Optional position: number
    • Optional category: string

    Returns StaveModifier[]

    array of StaveModifiers that match the provided position and category.

getNoteEndX

  • getNoteEndX(): number

getNoteStartX

  • getNoteStartX(): number

getNumLines

  • getNumLines(): number

getSpacingBetweenLines

  • getSpacingBetweenLines(): number

getStyle

getTieEndX

  • getTieEndX(): number

getTieStartX

  • getTieStartX(): number

getTopLineTopY

  • getTopLineTopY(): number

getVerticalBarWidth

  • getVerticalBarWidth(): number

getWidth

  • getWidth(): number

getX

  • getX(): number

getY

  • getY(): number

getYForBottomText

  • getYForBottomText(line?: number): number

getYForGlyphs

  • getYForGlyphs(): number

getYForLine

  • getYForLine(line: number): number
  • Parameters

    • line: number

    Returns number

    the y for the center of a staff line

getYForNote

  • getYForNote(line: number): number

getYForTopText

  • getYForTopText(line?: number): number

hasClass

  • hasClass(className: string): boolean
  • Check if it has a class label (An element can have multiple class labels).

    Parameters

    • className: string

    Returns boolean

isRendered

  • isRendered(): boolean
  • Return the rendered status.

    Returns boolean

onRegister

removeClass

  • removeClass(className: string): TabStave
  • Remove a class label (An element can have multiple class labels).

    Parameters

    • className: string

    Returns TabStave

resetFont

  • resetFont(): void
  • Reset the text font to the style indicated by the static TEXT_FONT property. Subclasses can call this to initialize textFont for the first time.

    Returns void

resetLines

  • resetLines(): void

restoreStyle

setAttribute

  • setAttribute(name: string, value: any): TabStave

setBegBarType

setClef

  • setClef(clefSpec: string, size?: string, annotation?: string, position?: number): TabStave
  • Parameters

    • clefSpec: string
    • Optional size: string
    • Optional annotation: string
    • Optional position: number

    Returns TabStave

setConfigForLine

  • Configure properties of the lines in the Stave

    throws

    RuntimeError "StaveConfigError" When the specified line number is out of range of the number of lines specified in the constructor.

    Parameters

    • line_number: number

      The index of the line to configure.

    • line_config: StaveLineConfig

      An configuration object for the specified line.

    Returns TabStave

setConfigForLines

  • Set the staff line configuration array for all of the lines at once.

    throws

    RuntimeError "StaveConfigError" When the lines_configuration array does not have exactly the same number of elements as the num_lines configuration object set in the constructor.

    Parameters

    • lines_configuration: StaveLineConfig[]

      An array of line configuration objects. These objects are of the same format as the single one passed in to setLineConfiguration(). The caller can set null for any line config entry if it is desired that the default be used

    Returns TabStave

setContext

setDefaultLedgerLineStyle

setEndBarType

setEndClef

  • setEndClef(clefSpec: string, size?: string, annotation?: string): TabStave
  • Parameters

    • clefSpec: string
    • Optional size: string
    • Optional annotation: string

    Returns TabStave

setEndKeySignature

  • setEndKeySignature(keySpec: string, cancelKeySpec?: string): TabStave

setEndTimeSignature

  • setEndTimeSignature(timeSpec: string, customPadding?: number): TabStave

setFont

  • setFont(font?: string | FontInfo, size?: string | number, weight?: string | number, style?: string): TabStave
  • Set the element's font family, size, weight, style (e.g., Arial, 10pt, bold, italic).

    Parameters

    • Optional font: string | FontInfo

      is 1) a FontInfo object or 2) a string formatted as CSS font shorthand (e.g., 'bold 10pt Arial') or 3) a string representing the font family (at least one of size, weight, or style must also be provided).

    • Optional size: string | number

      a string specifying the font size and unit (e.g., '16pt'), or a number (the unit is assumed to be 'pt').

    • Optional weight: string | number

      is a string (e.g., 'bold', 'normal') or a number (100, 200, ... 900).

    • Optional style: string

      is a string (e.g., 'italic', 'normal'). If no arguments are provided, then the font is set to the default font. Each Element subclass may specify its own default by overriding the static TEXT_FONT property.

    Returns TabStave

setFontSize

  • setFontSize(size?: string | number): TabStave
  • Change the font size, while keeping everything else the same.

    Parameters

    • Optional size: string | number

    Returns TabStave

setGroupStyle

setKeySignature

  • setKeySignature(keySpec: string, cancelKeySpec?: string, position?: number): TabStave

setMeasure

setNoteStartX

setNumLines

setRendered

  • setRendered(rendered?: boolean): TabStave

setRepetitionType

  • setRepetitionType(type: number, yShift?: number): TabStave

setSection

  • setSection(section: string, y: number, xOffset?: number, fontSize?: number, drawRect?: boolean): TabStave
  • Parameters

    • section: string
    • y: number
    • xOffset: number = 0
    • Optional fontSize: number
    • drawRect: boolean = true

    Returns TabStave

setStyle

  • Set the element style used to render.

    Example:

    element.setStyle({ fillStyle: 'red', strokeStyle: 'red' });
    element.draw();

    Note: If the element draws additional sub-elements (ie.: Modifiers in a Stave), the style can be applied to all of them by means of the context:

    element.setStyle({ fillStyle: 'red', strokeStyle: 'red' });
    element.getContext().setFillStyle('red');
    element.getContext().setStrokeStyle('red');
    element.draw();

    or using drawWithStyle:

    element.setStyle({ fillStyle: 'red', strokeStyle: 'red' });
    element.drawWithStyle();

    Parameters

    Returns TabStave

setTempo

setText

  • setText(text: string, position: number, options?: { justification?: number; shift_x?: number; shift_y?: number }): TabStave
  • Parameters

    • text: string
    • position: number
    • options: { justification?: number; shift_x?: number; shift_y?: number } = {}
      • Optional justification?: number
      • Optional shift_x?: number
      • Optional shift_y?: number

    Returns TabStave

setTimeSignature

  • setTimeSignature(timeSpec: string, customPadding?: number, position?: number): TabStave

setVoltaType

  • setVoltaType(type: number, number_t: string, y: number): TabStave

setWidth

setX

setY

sortByCategory

  • sortByCategory(items: StaveModifier[], order: Record<string, number>): void
  • Use the modifier's getCategory() as a key for the order array. The retrieved value is used to sort modifiers from left to right (0 to to 3).

    Parameters

    Returns void

space

  • space(spacing: number): number
  • Parameters

    • spacing: number

    Returns number