VexFlowMeasure.ts 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import {MusicSheetCalculator} from "../../../../src/MusicalScore/Graphical/MusicSheetCalculator";
  2. import {VexFlowGraphicalSymbolFactory} from "../../../../src/MusicalScore/Graphical/VexFlow/VexFlowGraphicalSymbolFactory";
  3. import {IGraphicalSymbolFactory} from "../../../../src/MusicalScore/Interfaces/IGraphicalSymbolFactory";
  4. import {GraphicalMusicSheet} from "../../../../src/MusicalScore/Graphical/GraphicalMusicSheet";
  5. import {IXmlElement} from "../../../../src/Common/FileIO/Xml";
  6. import {MusicSheet} from "../../../../src/MusicalScore/MusicSheet";
  7. import {MusicSheetReader} from "../../../../src/MusicalScore/ScoreIO/MusicSheetReader";
  8. describe("VexFlow Measure Test", () => {
  9. //it("Read title and composer", (done: MochaDone) => {
  10. // chai.expect(sheet.TitleString).to.equal("Sonatina Op.36 No 1 Teil 1 Allegro");
  11. // chai.expect(sheet.ComposerString).to.equal("Muzio Clementi");
  12. // done();
  13. //});
  14. //
  15. //it("Measures", (done: MochaDone) => {
  16. // chai.expect(sheet.SourceMeasures.length).to.equal(38);
  17. // console.log("First Measure: ", sheet.SourceMeasures[0]);
  18. // done();
  19. //});
  20. //
  21. //it("Instruments", (done: MochaDone) => {
  22. // chai.expect(reader.CompleteNumberOfStaves).to.equal(2);
  23. // chai.expect(sheet.Instruments.length).to.equal(2);
  24. // chai.expect(sheet.InstrumentalGroups.length).to.equal(2);
  25. // chai.expect(sheet.Instruments[0].Name).to.equal("Piano (right)");
  26. // chai.expect(sheet.Instruments[1].Name).to.equal("Piano (left)");
  27. // done();
  28. //});
  29. //
  30. //it("Notes", (done: MochaDone) => {
  31. // // Staff Entries on first measure
  32. //
  33. // // chai.expect(sheet.SourceMeasures[0].VerticalSourceStaffEntryContainers[0].StaffEntries.length).to.equal(4);
  34. // done();
  35. //});
  36. it("prepareGraphicalMusicSheet", (done: MochaDone) => {
  37. let factory: IGraphicalSymbolFactory = new VexFlowGraphicalSymbolFactory();
  38. let calc: MusicSheetCalculator = new MusicSheetCalculator(factory);
  39. let path: string = "test/data/MuzioClementi_SonatinaOpus36No1_Part1.xml";
  40. let doc: Document = ((window as any).__xml__)[path];
  41. chai.expect(doc).to.not.be.undefined;
  42. let score: IXmlElement = new IXmlElement(doc.getElementsByTagName("score-partwise")[0]);
  43. let reader: MusicSheetReader = new MusicSheetReader();
  44. let sheet: MusicSheet = reader.createMusicSheet(score, path);
  45. let gms: GraphicalMusicSheet = new GraphicalMusicSheet(sheet, calc);
  46. console.log(gms);
  47. done();
  48. });
  49. });