]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 3633: Freeze measurePosition while Timing.timing is off
authorDavid Kastrup <dak@gnu.org>
Sat, 26 Oct 2013 06:22:18 +0000 (08:22 +0200)
committerDavid Kastrup <dak@gnu.org>
Thu, 31 Oct 2013 08:36:04 +0000 (09:36 +0100)
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
lily/timing-translator.cc
ly/property-init.ly

index 3b5555f5818a26cc71f3712df1dac041b57180ec..a4c1bf6e2afabd20a5c1ef4e697c3ee7d811e059 100644 (file)
@@ -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))
     {
index 03cbfdd3d43700c3cb30cc8ab6836519df6661d5..fabc74c976f69bae59b31a253650de4a2c49bb0e 100644 (file)
@@ -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));
index 5222b232d89de76917c55266393fb186d84f110e..42a1d5100c8c2732ed72ac729fa0fe90e8124fe0 100644 (file)
@@ -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