Sfoglia il codice sorgente

feat(Options): add option to not render time signatures (drawTimeSignatures: false). (#793)

close #793
sschmid 5 anni fa
parent
commit
21b089b484

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

@@ -220,6 +220,7 @@ export class EngravingRules {
     private renderFingerings: boolean;
     private renderMeasureNumbers: boolean;
     private renderLyrics: boolean;
+    private renderTimeSignatures: boolean;
     private dynamicExpressionMaxDistance: number;
     private dynamicExpressionSpacer: number;
     /** Position of fingering label in relation to corresponding note (left, right supported, above, below experimental) */
@@ -468,6 +469,7 @@ export class EngravingRules {
         this.renderFingerings = true;
         this.renderMeasureNumbers = true;
         this.renderLyrics = true;
+        this.renderTimeSignatures = true;
         this.fingeringPosition = PlacementEnum.Left; // easier to get bounding box, and safer for vertical layout
         this.fingeringInsideStafflines = false;
         this.fingeringLabelFontHeight = 1.7;
@@ -1649,6 +1651,12 @@ export class EngravingRules {
     public set RenderLyrics(value: boolean) {
         this.renderLyrics = value;
     }
+    public get RenderTimeSignatures(): boolean {
+        return this.renderTimeSignatures;
+    }
+    public set RenderTimeSignatures(value: boolean) {
+        this.renderTimeSignatures = value;
+    }
     public get FingeringPosition(): PlacementEnum {
         return this.fingeringPosition;
     }

+ 1 - 1
src/MusicalScore/Graphical/MusicSystemBuilder.ts

@@ -489,7 +489,7 @@ export class MusicSystemBuilder {
             measure.addKeyAtBegin(currentKey, previousKey, currentClef);
             keyAdded = true;
         }
-        if (currentRhythm !== undefined && currentRhythm.PrintObject) {
+        if (currentRhythm !== undefined && currentRhythm.PrintObject && this.rules.RenderTimeSignatures) {
             measure.addRhythmAtBegin(currentRhythm);
             rhythmAdded = true;
         }

+ 2 - 0
src/OpenSheetMusicDisplay/OSMDOptions.ts

@@ -86,6 +86,8 @@ export interface IOSMDOptions {
      * See the [measureNumberInterval] option, default is 2.
      */
     drawMeasureNumbers?: boolean;
+    /** Whether to draw time signatures (e.g. 4/4). Default true. */
+    drawTimeSignatures?: boolean;
     /** The interval of measure numbers to draw, i.e. it draws the measure number above the beginning label every x measures. Default 2. */
     measureNumberInterval?: number;
     /** Whether to draw fingerings (only left to the note for now). Default true (unless solo part). */

+ 3 - 0
src/OpenSheetMusicDisplay/OpenSheetMusicDisplay.ts

@@ -434,6 +434,9 @@ export class OpenSheetMusicDisplay {
         if (options.drawLyrics !== undefined) {
             this.rules.RenderLyrics = options.drawLyrics;
         }
+        if (options.drawTimeSignatures !== undefined) {
+            this.rules.RenderTimeSignatures = options.drawTimeSignatures;
+        }
         if (options.drawSlurs !== undefined) {
             this.rules.RenderSlurs = options.drawSlurs;
         }