OpenSheetMusicDisplay
    Preparing search index...

    Class VexFlowMeasure

    Represents a measure in the music sheet (one measure in one staff line)

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    Properties

    beginInstructionsWidth: number

    The x-width of possibly existing: repetition start line, clef, key, rhythm.

    boundingBox: BoundingBox
    connectors: StaveConnector[] = []

    VexFlow StaveConnectors (vertical lines)

    endInstructionsWidth: number

    The x-width of possibly existing: repetition end line, clef.

    ExtraGraphicalMeasurePreviousMeasure: GraphicalMeasure
    firstInstructionStaffEntry: GraphicalStaffEntry
    formatVoices?: (width: number, parent: VexFlowMeasure) => void

    Call this function (if present) to x-format all the voices in the measure

    hasError: boolean
    hasMetronomeMark: boolean = false

    Whether a metronome mark is drawn on this staff measure (they are drawn on the first visible staff).

    hasOnlyRests: boolean = false

    Whether or not this measure is nothing but rest(s). Also see SourceMeasure.allRests, which is not the same, because a source measure can have multiple staffs/graphicalMeasures.

    InitiallyActiveClef: ClefInstruction

    The clef of the first note of the measure (the clef the measure starts with).

    IsExtraGraphicalMeasure: boolean

    Used to show key, rhythm changes at the end of the system, has MeasureNumber < 0, because never set.

    isTabMeasure: boolean = false
    lastInstructionStaffEntry: GraphicalStaffEntry
    MeasureRepeat: VexFlowMeasureRepeat

    Repeat unit drawn in place of this measure's note content, if any.

    minimumStaffEntriesWidth: number

    The minimum possible x-width of all staff entries without overlapping.

    multiRestElement: any

    Only exists on multiple rest measure (VexFlowMultiRestMeasure). See isMultiRestMeasure() function.

    octaveOffset: number = 3

    octaveOffset according to active clef

    parentSourceMeasure: SourceMeasure
    ShowKeySignature: boolean = true
    ShowTimeSignature: boolean = true
    staffEntries: GraphicalStaffEntry[]
    staffEntriesScaleFactor: number

    Will be set by music system builder while building systems.

    stave: Stave

    The VexFlow Stave (= one measure in a staffline)

    tuplets: { [voiceID: number]: [Tuplet, VexFlowVoiceEntry[]][] } = {}

    Intermediate object to construct tuplets

    vfRepetitionWords: Repetition[] = []

    The repetition instructions given as words or symbols (coda, dal segno..)

    vfTies: StaveTie[] = []

    The VexFlow Ties in the measure

    vfVoices: { [voiceID: number]: Voice } = {}

    The VexFlow Voices in the measure

    Accessors

    Methods

    • Adds a measure number to the top left corner of the measure This method is not used currently in favor of the calculateMeasureNumberPlacement method in the MusicSheetCalculator.ts

      Returns void

    • Places each note at the height of its drawn note head, relative to its voice entry, e.g. where a click finds it (GraphicalMusicSheet.GetNearestNote()). A voice entry is at the top of its Vexflow note's bounding box (see VexFlowVoiceEntry.applyBordersFromVexflow()), e.g. the stem tip of a note with its stem up, and stems differ in length: the stems of grace notes and cue notes are shorter, those of 32nd notes longer. A note's x: see VexFlowStaffEntry.calculateXPosition(). Called at the end of draw() (note.setIndex() needs to have been called).

      Returns void

    • Formats the voices of this measure's vertical measure, i.e. of all its staves (see VexFlowMusicSheetCalculator.formatMeasures()), to the width of this measure's stave.

      Parameters

      • OptionallastFormats: Map<SourceMeasure, IVerticalMeasureFormat>

        For a series of formats, like the skyline calculation's (see SkyBottomLineCalculator), which formats every measure, and so each vertical measure once per staff: the last format of each vertical measure in the series. A format that would just repeat the last one of its vertical measure is skipped: it would compute the same result again (see isRepeatedFormat()). Without lastFormats, the measure is always formatted.

      Returns void

    • Finds the gaps between the existing notes within a measure. Problem here is, that the graphicalVoiceEntry does not exist yet and that Tied notes are not present in the normal voiceEntries. To handle this, calculation with absolute timestamps is needed. And the graphical notes have to be analysed directly (and not the voiceEntries, as it actually should be -> needs refactoring)

      Parameters

      • voice: Voice

        the voice for which the ghost notes shall be searched.

      Returns GraphicalVoiceEntry[]