1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /* eslint-disable @typescript-eslint/no-unused-expressions */
- import {VexFlowMusicSheetDrawer} from "../../../../src/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetDrawer";
- import {GraphicalMusicSheet} from "../../../../src/MusicalScore/Graphical/GraphicalMusicSheet";
- import {MusicSheet} from "../../../../src/MusicalScore/MusicSheet";
- import {MusicSheetReader} from "../../../../src/MusicalScore/ScoreIO/MusicSheetReader";
- import {VexFlowMusicSheetCalculator} from "../../../../src/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetCalculator";
- import {TestUtils} from "../../../Util/TestUtils";
- import {IXmlElement} from "../../../../src/Common/FileIO/Xml";
- import {VexFlowBackend} from "../../../../src/MusicalScore/Graphical/VexFlow/VexFlowBackend";
- import {CanvasVexFlowBackend} from "../../../../src/MusicalScore/Graphical/VexFlow/CanvasVexFlowBackend";
- describe("VexFlow Music Sheet Drawer", () => {
- it("draws sheet \"Clementi pt. 1\"", (done: Mocha.Done) => {
- const score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1.xml");
- chai.expect(score).to.not.be.undefined;
- const partwise: Element = TestUtils.getPartWiseElement(score);
- chai.expect(partwise).to.not.be.undefined;
- const reader: MusicSheetReader = new MusicSheetReader();
- const calc: VexFlowMusicSheetCalculator = new VexFlowMusicSheetCalculator(reader.rules);
- const sheet: MusicSheet = reader.createMusicSheet(new IXmlElement(partwise), "** missing path **");
- const gms: GraphicalMusicSheet = new GraphicalMusicSheet(sheet, calc);
- // Create the canvas in the document:
- const canvas: HTMLCanvasElement = document.createElement("canvas");
- const backend: VexFlowBackend = new CanvasVexFlowBackend(sheet.Rules);
- backend.initialize(canvas, 1.0);
- const drawer: VexFlowMusicSheetDrawer = new VexFlowMusicSheetDrawer();
- drawer.Backends.push(backend);
- drawer.drawSheet(gms);
- done();
- });
- // Test ignored for now, gms.calculateCursorLineAtTimestamp returns null instead of a GraphicalLine,
- // and in any case, this test doesn't test that the cursor is actually drawn, there are no expects for that etc.
- // it.only("draws cursor (as rectangle)", (done: Mocha.Done) => {
- // const score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1.xml");
- // chai.expect(score).to.not.be.undefined;
- // const partwise: Element = TestUtils.getPartWiseElement(score);
- // chai.expect(partwise).to.not.be.undefined;
- // const reader: MusicSheetReader = new MusicSheetReader();
- // const calc: VexFlowMusicSheetCalculator = new VexFlowMusicSheetCalculator(reader.rules);
- // const sheet: MusicSheet = reader.createMusicSheet(new IXmlElement(partwise), "** missing path **");
- // const gms: GraphicalMusicSheet = new GraphicalMusicSheet(sheet, calc);
- // gms.Cursors.push(gms.calculateCursorLineAtTimestamp(new Fraction(0, 4), OutlineAndFillStyleEnum.PlaybackCursor));
- // // Create the canvas in the document:
- // const canvas: HTMLCanvasElement = document.createElement("canvas");
- // const backend: VexFlowBackend = new CanvasVexFlowBackend(sheet.Rules);
- // backend.initialize(canvas);
- // const drawer: VexFlowMusicSheetDrawer = new VexFlowMusicSheetDrawer(new DrawingParameters());
- // drawer.Backends.push(backend);
- // drawer.drawSheet(gms);
- // done();
- // });
- });
|