From f37f8deeed27153d2fbc819bf9f4ac1e074eb39d Mon Sep 17 00:00:00 2001 From: Jared Johnson Date: Sun, 23 Feb 2025 08:46:54 -0500 Subject: [PATCH] render a single metronome for each part and stave for mid-score metronome changes --- src/rendering/stave.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rendering/stave.ts b/src/rendering/stave.ts index 89d500520..e2ebcf7da 100644 --- a/src/rendering/stave.ts +++ b/src/rendering/stave.ts @@ -355,7 +355,7 @@ export class Stave { const isFirstFragment = this.document.isFirstFragment(this.key); const isFirstPart = this.document.isFirstPart(this.key); const isFirstStave = this.document.isFirstStave(this.key); - const isAbsolutelyFirst = isFirstSystem && isFirstMeasure && isFirstFragment && isFirstPart && isFirstStave; + const isAbsolutelyFirst = isFirstSystem && isFirstMeasure && isFirstFragment; const currentMetronome = this.document.getFragment(this.key).signature.metronome; const previousMetronome = this.document.getPreviousFragment(this.key)?.signature.metronome; @@ -370,7 +370,7 @@ export class Stave { const hasMetronome = currentMetronome.displayBpm || currentMetronome.dots || currentMetronome.dots2 || currentMetronome.duration; - if (hasMetronome && (isAbsolutelyFirst || didMetronomeChange)) { + if (hasMetronome && isFirstPart && isFirstStave && (isAbsolutelyFirst || didMetronomeChange)) { vexflowStave.setTempo({ ...currentMetronome, bpm: currentMetronome.displayBpm }, -METRONOME_TOP_PADDING); } }