museaikit
Version:
A powerful music-focused AI toolkit
29 lines (28 loc) • 1.24 kB
TypeScript
import { INoteSequence, NoteSequence } from '../../protobuf/index';
import { VisualizerConfig } from './config';
export declare abstract class BaseVisualizer {
noteSequence: INoteSequence;
protected config: VisualizerConfig;
protected height: number;
protected width: number;
protected parentElement: HTMLElement;
abstract redraw(activeNote?: NoteSequence.INote, scrollIntoView?: boolean): number;
protected abstract clear(): void;
abstract clearActiveNotes(): void;
constructor(sequence: INoteSequence, config?: VisualizerConfig);
protected updateMinMaxPitches(noExtraPadding?: boolean): void;
protected getSize(): {
width: number;
height: number;
};
protected getNotePosition(note: NoteSequence.INote, noteIndex: number): {
x: number;
y: number;
w: number;
h: number;
};
protected scrollIntoViewIfNeeded(scrollIntoView: boolean, activeNotePosition: number): void;
protected getNoteStartTime(note: NoteSequence.INote): number;
protected getNoteEndTime(note: NoteSequence.INote): number;
protected isPaintingActiveNote(note: NoteSequence.INote, playedNote: NoteSequence.INote): boolean;
}