Kaynağa Gözat

fix(Tabs): fix multi-rest for tabs. never create fingerings for now

fingerings don't yet work for tabnotes in vexflow anyways.

there was an error where some code in createFingerings() threw an error,
even though we finally didn't create fingerings for tab notes anyways.
sschmidTU 4 yıl önce
ebeveyn
işleme
ed8d174ee2

+ 2 - 2
package.json

@@ -28,8 +28,8 @@
     "generate:current": "node ./test/Util/generateImages_browserless.js ../../build ./test/data ./visual_regression/current 0 0 allSmall --osmdtesting",
     "generate:current:debug": "node ./test/Util/generateImages_browserless.js ../../build ./test/data ./visual_regression/current 0 0 allSmall --debugosmdtesting",
     "generate:current:singletest": "node test/Util/generateImages_browserless.js ../../build ./test/data ./visual_regression/current 0 0 ^Beethoven --osmdtesting",
-    "generate:blessed": "node ./test/Util/generateImages_browserless.js ../../build ./test/data ./visual_regression/blessed 0 0 allSmall --osmdtesting",
-    "test:visual": "sh ./test/Util/visual_regression.sh ./visual_regression",
+    "generate:blessed": "node ./test/Util/generateImages_browserless.js ../../build ./test/data ./visual_regressi-021n/blessed 0 0 allSmall --osmdtesting",
+    "test:visual": "bash ./test/Util/visual_regression.sh ./visual_regression",
     "test:visual:singletest": "sh ./test/Util/visual_regression.sh ./visual_regression Beethoven",
     "fix-memory-limit": "cross-env NODE_OPTIONS=--max_old_space_size=4096"
   },

+ 2 - 0
src/MusicalScore/Graphical/MusicSheetCalculator.ts

@@ -2128,6 +2128,8 @@ export abstract class MusicSheetCalculator {
             measure = MusicSheetCalculator.symbolFactory.createTabStaffMeasure(sourceMeasure, staff);
         } else if (sourceMeasure.multipleRestMeasures && this.rules.RenderMultipleRestMeasures) {
             measure = MusicSheetCalculator.symbolFactory.createMultiRestMeasure(sourceMeasure, staff);
+        } else if (sourceMeasure.multipleRestMeasureNumber > 1) {
+            return undefined; // don't need to create a graphical measure that is within a multiple rest measure
         } else {
             measure = MusicSheetCalculator.symbolFactory.createGraphicalMeasure(sourceMeasure, staff);
         }

+ 6 - 7
src/MusicalScore/Graphical/VexFlow/VexFlowMeasure.ts

@@ -1296,13 +1296,12 @@ export class VexFlowMeasure extends GraphicalMeasure {
                     continue;
                 }
             }
-            if (vexFlowVoiceEntry.vfStaveNote.getCategory() === "tabnotes") {
-                // TODO this doesn't work yet. don't add fingering for tabs for now.
-                // vexFlowVoiceEntry.vfStaveNote.addModifier(fretFinger, fingeringIndex);
-            } else {
-                // Vexflow made a mess with the addModifier signature that changes through each class so we just cast to any :(
-                vexFlowVoiceEntry.vfStaveNote.addModifier((fingeringIndex as any), (fretFinger as any));
-            }
+            // if (vexFlowVoiceEntry.vfStaveNote.getCategory() === "tabnotes") {
+              // TODO this doesn't work yet for tabnotes. don't add fingering for tabs for now.
+              // vexFlowVoiceEntry.vfStaveNote.addModifier(fretFinger, fingeringIndex);
+
+            // Vexflow made a mess with the addModifier signature that changes through each class so we just cast to any :(
+            vexFlowVoiceEntry.vfStaveNote.addModifier((fingeringIndex as any), (fretFinger as any));
         }
     }
 

+ 4 - 4
src/MusicalScore/Graphical/VexFlow/VexFlowTabMeasure.ts

@@ -82,10 +82,10 @@ export class VexFlowTabMeasure extends VexFlowMeasure {
                     continue;
                 }
 
-                // add fingering
-                if (voiceEntry.parentVoiceEntry && this.rules.RenderFingerings) {
-                    this.createFingerings(voiceEntry);
-                }
+                // don't add non-tab fingerings for tab measures (doesn't work yet for tabnotes in vexflow, see VexFlowMeasure.createFingerings())
+                // if (voiceEntry.parentVoiceEntry && this.rules.RenderFingerings) {
+                //     this.createFingerings(voiceEntry);
+                // }
 
                 // add Arpeggio
                 if (voiceEntry.parentVoiceEntry && voiceEntry.parentVoiceEntry.Arpeggio) {