UNPKG

@stringsync/vexml

Version:

MusicXML to Vexflow

52 lines (51 loc) 1.93 kB
import * as util from '../util'; import * as elements from '../elements'; import { Logger } from '../debug'; import { DurationRange } from './durationrange'; import { CursorFrame, CursorVerticalSpan, PlaybackElement, TimelineMoment } from './types'; import { Timeline } from './timeline'; import { ElementDescriber } from './elementdescriber'; type TRangeSource = { moment: TimelineMoment; }; type XRangeSource = { type: 'system'; system: elements.System; bound: 'left' | 'right'; } | { type: 'measure'; measure: elements.Measure; bound: 'left' | 'right'; } | { type: 'element'; element: PlaybackElement; bound: 'left' | 'right'; }; type YRangeSource = { part: elements.Part; bound: 'top' | 'bottom'; }; export declare class DefaultCursorFrame implements CursorFrame { private tRangeSources; private xRangeSources; private yRangeSources; private activeElements; private describer; constructor(tRangeSources: [TRangeSource, TRangeSource], xRangeSources: [XRangeSource, XRangeSource], yRangeSources: [YRangeSource, YRangeSource], activeElements: PlaybackElement[], describer: CursorFrameDescriber); static create(log: Logger, score: elements.Score, timeline: Timeline, span: CursorVerticalSpan, elementDescriber: ElementDescriber): DefaultCursorFrame[]; get tRange(): DurationRange; get xRange(): util.NumberRange; get yRange(): util.NumberRange; getActiveElements(): PlaybackElement[]; toHumanReadable(): string[]; } declare class CursorFrameDescriber { private elementDescriber; constructor(elementDescriber: ElementDescriber); describeTRange(tRangeSources: [TRangeSource, TRangeSource]): string; describeXRange(xRangeSources: [XRangeSource, XRangeSource]): string; describeYRange(yRangeSources: [YRangeSource, YRangeSource]): string; private describeXRangeSource; private describeYRangeSource; } export {};