jianpurender
Version:
Render music score using SVG on browsers.
61 lines (60 loc) • 1.67 kB
TypeScript
import { JianpuInfo, NoteInfo } from './jianpu_info';
import { JianpuModel } from './jianpu_model';
export declare enum ScrollType {
PAGE = 0,
NOTE = 1,
BAR = 2
}
export interface JianpuSVGRenderConfig {
noteHeight?: number;
noteSpacingFactor?: number;
pixelsPerTimeStep?: number;
noteColor?: string;
activeNoteColor?: string;
defaultKey?: number;
scrollType?: ScrollType;
fontFamily?: string;
width?: number;
height?: number;
}
export declare class JianpuSVGRender {
jianpuInfo: JianpuInfo;
jianpuModel: JianpuModel;
private config;
private height;
private width;
private parentElement;
private div;
private mainSVG;
private mainG;
private musicG;
private signaturesG;
private overlaySVG;
private overlayG;
private signaturesBlinking;
private lastKnownScrollLeft;
private isScrolling;
private currentKey;
private currentTimeSignature;
private playingNotes;
private lastRenderedQ;
private estimatedNoteWidth;
private numberFontSize;
private smallFontSize;
private yBaseline;
private parseColorString;
constructor(score: JianpuInfo, config: JianpuSVGRenderConfig, div: HTMLDivElement);
clear(): void;
private updateLayout;
redraw(activeNote?: NoteInfo, scrollIntoView?: boolean): number;
private drawJianpuBlock;
private drawNotes;
private drawRest;
private drawSignatures;
private updateCurrentKey;
private updateCurrentTimeSignature;
private handleScrollEvent;
private scrollIntoViewIfNeeded;
private updateOverlaySignaturesForScroll;
private pixelsToTime;
}