VexFlowMusicSheetDrawer_Test.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import {VexFlowMusicSheetDrawer} from "../../../../src/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetDrawer";
  2. import {GraphicalMusicSheet} from "../../../../src/MusicalScore/Graphical/GraphicalMusicSheet";
  3. import {OutlineAndFillStyleEnum} from "../../../../src/MusicalScore/Graphical/DrawingEnums";
  4. import {MusicSheet} from "../../../../src/MusicalScore/MusicSheet";
  5. import {MusicSheetReader} from "../../../../src/MusicalScore/ScoreIO/MusicSheetReader";
  6. import {VexFlowMusicSheetCalculator} from "../../../../src/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetCalculator";
  7. import {TestUtils} from "../../../Util/TestUtils";
  8. import {IXmlElement} from "../../../../src/Common/FileIO/Xml";
  9. import {Fraction} from "../../../../src/Common/DataObjects/Fraction";
  10. /* tslint:disable:no-unused-expression */
  11. describe("VexFlow Music Sheet Drawer", () => {
  12. it("draws sheet \"Clementi pt. 1\"", (done: MochaDone) => {
  13. let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1.xml");
  14. chai.expect(score).to.not.be.undefined;
  15. let partwise: Element = TestUtils.getPartWiseElement(score);
  16. chai.expect(partwise).to.not.be.undefined;
  17. let calc: VexFlowMusicSheetCalculator = new VexFlowMusicSheetCalculator();
  18. let reader: MusicSheetReader = new MusicSheetReader();
  19. let sheet: MusicSheet = reader.createMusicSheet(new IXmlElement(partwise), "** missing path **");
  20. let gms: GraphicalMusicSheet = new GraphicalMusicSheet(sheet, calc);
  21. // Create the canvas in the document:
  22. let canvas: HTMLCanvasElement = document.createElement("canvas");
  23. let drawer: VexFlowMusicSheetDrawer = new VexFlowMusicSheetDrawer(canvas);
  24. drawer.drawSheet(gms);
  25. done();
  26. });
  27. it.skip("draws cursor (as rectangle)", (done: MochaDone) => {
  28. let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1.xml");
  29. chai.expect(score).to.not.be.undefined;
  30. let partwise: Element = TestUtils.getPartWiseElement(score);
  31. chai.expect(partwise).to.not.be.undefined;
  32. let calc: VexFlowMusicSheetCalculator = new VexFlowMusicSheetCalculator();
  33. let reader: MusicSheetReader = new MusicSheetReader();
  34. let sheet: MusicSheet = reader.createMusicSheet(new IXmlElement(partwise), "** missing path **");
  35. let gms: GraphicalMusicSheet = new GraphicalMusicSheet(sheet, calc);
  36. gms.Cursors.push(gms.calculateCursorLineAtTimestamp(new Fraction(0, 4), OutlineAndFillStyleEnum.PlaybackCursor));
  37. // Create the canvas in the document:
  38. let canvas: HTMLCanvasElement = document.createElement("canvas");
  39. let drawer: VexFlowMusicSheetDrawer = new VexFlowMusicSheetDrawer(canvas);
  40. drawer.drawSheet(gms);
  41. done();
  42. });
  43. });