Jelajahi Sumber

Merge PR #34 from fix/top-measure-number

Prevent negative topMeasureNumber in pieces with precount measures (measure 0)
Simon 3 tahun lalu
induk
melakukan
3ec90baa75
1 mengubah file dengan 3 tambahan dan 1 penghapusan
  1. 3 1
      src/OpenSheetMusicDisplay/Cursor.ts

+ 3 - 1
src/OpenSheetMusicDisplay/Cursor.ts

@@ -151,7 +151,9 @@ export class Cursor implements IPlaybackListener {
     this.updateCurrentPageFromSystem(currentSystem);
     const previousStaffEntry: GraphicalStaffEntry = values[2];
 
-    const topMeasureNumber: number = previousStaffEntry.parentMeasure.MeasureNumber;
+    // for samples starting with a precount measure (e.g. Mozart - An Chloe), the measure number can be 0,
+    //   so without max(n, 1), [topMeasureNumber - 1] would be [-1], causing an error
+    const topMeasureNumber: number = Math.max(previousStaffEntry.parentMeasure.MeasureNumber, 1);
     // we have to find the top measure, otherwise the cursor with type 3 "jumps around" between vertical measures
     let topMeasure: GraphicalMeasure;
     for (const measure of this.graphic.MeasureList[topMeasureNumber - 1]) {