From e54a1a9761969ec0609ded9588a46a7ff40ca74e Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Sat, 26 Oct 2013 08:22:18 +0200 Subject: [PATCH] Issue 3633: Freeze measurePosition while Timing.timing is off Also don't reset it in \cadenzaOff, and leave autoBeaming alone in \cadenzaOn/\cadenzaOff. This should cause quite fewer interferences of cadenze with timing, accidentals, barlines and other stuff. --- lily/default-bar-line-engraver.cc | 8 +++++--- lily/timing-translator.cc | 18 +++++++++++------- ly/property-init.ly | 12 ++---------- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/lily/default-bar-line-engraver.cc b/lily/default-bar-line-engraver.cc index 3b5555f581..a4c1bf6e2a 100644 --- a/lily/default-bar-line-engraver.cc +++ b/lily/default-bar-line-engraver.cc @@ -52,10 +52,11 @@ ADD_TRANSLATOR (Default_bar_line_engraver, "defaultBarType " "measureLength " "whichBar " - "measurePosition ", + "measurePosition " + "timing ", /* write */ - "automaticBars " + "" ); Default_bar_line_engraver::Default_bar_line_engraver () @@ -76,7 +77,8 @@ Default_bar_line_engraver::start_translation_timestep () Moment mp = measure_position (context ()); bool start_of_measure = (last_moment_.main_part_ != now.main_part_ - && !mp.main_part_); + && !mp.main_part_ + && to_boolean (get_property ("timing"))); if (!scm_is_string (which) && to_boolean (automatic_bars)) { diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index 03cbfdd3d4..fabc74c976 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -190,20 +190,24 @@ Timing_translator::start_translation_timestep () measposp.smobbed_copy ()); } - measposp += dt; - int current_barnumber = robust_scm2int (get_property ("currentBarNumber"), 0); int internal_barnumber = robust_scm2int (get_property ("internalBarNumber"), 0); SCM cad = get_property ("timing"); bool c = to_boolean (cad); - Rational len = measure_length (); - while (c && measposp.main_part_ >= len) + if (c) { - measposp.main_part_ -= len; - current_barnumber++; - internal_barnumber++; + Rational len = measure_length (); + + measposp += dt; + + while (measposp.main_part_ >= len) + { + measposp.main_part_ -= len; + current_barnumber++; + internal_barnumber++; + } } context ()->set_property ("currentBarNumber", scm_from_int (current_barnumber)); diff --git a/ly/property-init.ly b/ly/property-init.ly index 5222b232d8..42a1d5100c 100644 --- a/ly/property-init.ly +++ b/ly/property-init.ly @@ -124,17 +124,9 @@ bassFigureStaffAlignmentNeutral = %% cadenzas -cadenzaOn = { - \set Timing.timing = ##f - \set Timing.autoBeaming = ##f -} - -cadenzaOff = { - \set Timing.timing = ##t - \set Timing.measurePosition = #ZERO-MOMENT - \set Timing.autoBeaming = ##t -} +cadenzaOn = \set Timing.timing = ##f +cadenzaOff = \set Timing.timing = ##t %% chord names -- 2.39.2