فهرست منبع

feat(PercussionOneLine): add osmd.rules.PercussionOneLineXMLDisplayStepOctaveOffset (#945)

sschmid 4 سال پیش
والد
کامیت
5f5d4e9451

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

@@ -62,6 +62,7 @@ export class EngravingRules {
     public PercussionOneLineCutoff: number;
     public PercussionForceVoicesOneLineCutoff: number;
     public PercussionOneLineUseXMLDisplayStep: boolean;
+    public PercussionOneLineXMLDisplayStepOctaveOffset: number;
     public BetweenKeySymbolsDistance: number;
     public KeyRightMargin: number;
     public RhythmRightMargin: number;
@@ -347,6 +348,7 @@ export class EngravingRules {
         this.PercussionOneLineCutoff = 3; // percussion parts with <3 unique note positions rendered on one line
         this.PercussionForceVoicesOneLineCutoff = 1;
         this.PercussionOneLineUseXMLDisplayStep = true;
+        this.PercussionOneLineXMLDisplayStepOctaveOffset = 2;
         this.BetweenKeySymbolsDistance = 0.2;
         this.KeyRightMargin = 0.75;
         this.RhythmRightMargin = 1.25;

+ 1 - 1
src/MusicalScore/Graphical/VexFlow/VexflowStafflineNoteCalculator.ts

@@ -102,7 +102,7 @@ export class VexflowStafflineNoteCalculator implements IStafflineNoteCalculator
             let displayOctave: number = this.baseLineOctave;
             if (this.rules.PercussionOneLineUseXMLDisplayStep && graphicalNote.sourceNote.displayStepUnpitched !== undefined) {
                 displayNote = graphicalNote.sourceNote.displayStepUnpitched;
-                displayOctave = graphicalNote.sourceNote.displayOctaveUnpitched;
+                displayOctave = graphicalNote.sourceNote.displayOctaveUnpitched + this.rules.PercussionOneLineXMLDisplayStepOctaveOffset;
             }
             vfGraphicalNote.setAccidental(new Pitch(displayNote, displayOctave, notePitch.Accidental));
         } else {