museaikit
Version:
A powerful music-focused AI toolkit
38 lines (37 loc) • 1.33 kB
TypeScript
import { INoteSequence, NoteSequence } from '../../protobuf/index';
import { BaseSVGVisualizer } from './base_svg_visualizer';
import { VisualizerConfig } from './config';
export interface WaterfallVisualizerConfig extends VisualizerConfig {
whiteNoteHeight?: number;
whiteNoteWidth?: number;
blackNoteHeight?: number;
blackNoteWidth?: number;
showOnlyOctavesUsed?: boolean;
}
export declare class WaterfallSVGVisualizer extends BaseSVGVisualizer {
private NOTES_PER_OCTAVE;
private WHITE_NOTES_PER_OCTAVE;
private LOW_C;
private firstDrawnOctave;
private lastDrawnOctave;
protected svgPiano: SVGSVGElement;
protected config: WaterfallVisualizerConfig;
constructor(sequence: INoteSequence, parentElement: HTMLDivElement, config?: WaterfallVisualizerConfig);
private setupDOM;
redraw(activeNote?: NoteSequence.INote, scrollIntoView?: boolean): number;
protected getSize(): {
width: number;
height: number;
};
protected getNotePosition(note: NoteSequence.INote, noteIndex: number): {
x: number;
y: number;
w: number;
h: number;
};
private drawPiano;
private drawWhiteKey;
private drawBlackKey;
clearActiveNotes(): void;
protected clear(): void;
}