VexFlowMusicSheetDrawer.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import {VexFlowMusicSheetDrawer} from "../../../../src/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetDrawer";
  2. import {GraphicalMusicSheet} from "../../../../src/MusicalScore/Graphical/GraphicalMusicSheet";
  3. import {MusicSheet} from "../../../../src/MusicalScore/MusicSheet";
  4. import {MusicSheetReader} from "../../../../src/MusicalScore/ScoreIO/MusicSheetReader";
  5. import {VexFlowMusicSheetCalculator} from "../../../../src/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetCalculator";
  6. import {TestUtils} from "../../../Util/TestUtils";
  7. import {IXmlElement} from "../../../../src/Common/FileIO/Xml";
  8. import {VexFlowTextMeasurer} from "../../../../src/MusicalScore/Graphical/VexFlow/VexFlowTextMeasurer";
  9. import {Fraction} from "../../../../src/Common/DataObjects/fraction";
  10. import {OutlineAndFillStyleEnum} from "../../../../src/MusicalScore/Graphical/DrawingEnums";
  11. describe("VexFlow Music Sheet Drawer", () => {
  12. it(".drawSheet (Clementi pt. 1)", (done: MochaDone) => {
  13. let path: string = "test/data/MuzioClementi_SonatinaOpus36No1_Part2.xml";
  14. // "test/data/MuzioClementi_SonatinaOpus36No1_Part1.xml";
  15. let score: IXmlElement = TestUtils.getScore(path);
  16. chai.expect(score).to.not.be.undefined;
  17. let calc: VexFlowMusicSheetCalculator = new VexFlowMusicSheetCalculator();
  18. let reader: MusicSheetReader = new MusicSheetReader();
  19. let sheet: MusicSheet = reader.createMusicSheet(score, path);
  20. let gms: GraphicalMusicSheet = new GraphicalMusicSheet(sheet, calc);
  21. gms.Cursors.push(gms.calculateCursorLineAtTimestamp(new Fraction(), OutlineAndFillStyleEnum.PlaybackCursor));
  22. // Create heading in the test page
  23. let h1: Element = document.createElement("h1");
  24. h1.textContent = "VexFlowMusicSheetDrawer Output";
  25. document.body.appendChild(h1);
  26. // Create the canvas in the document:
  27. let canvas: HTMLCanvasElement = document.createElement("canvas");
  28. document.body.appendChild(canvas);
  29. (new VexFlowMusicSheetDrawer(canvas, new VexFlowTextMeasurer())).drawSheet(gms);
  30. done();
  31. });
  32. });