bug-lilypond
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Chord tremolo broken in 1.5.43


From: Mats Bengtsson
Subject: Re: Chord tremolo broken in 1.5.43
Date: Sat, 06 Apr 2002 18:30:32 +0200

OK, here comes a new patch (assuming that you have thrown
away the crap I sent some hours ago). This time, both 
chord tremolos and Completion_heads_engraver should work.
I also included an example file for Completion_heads_engraver, 
since an undocumented feature is a non-existing feature.

   /Mats

Generated by (address unknown),
>From = lilypond-1.5.50, To = lilypond-1.5.50.mb1

usage 

    cd lilypond-source-dir; patch -E -p1 < lilypond-1.5.50.mb1.diff

Patches do not contain automatically generated files 
or (urg) empty directories, 
i.e., you should rerun autoconf, configure

diff -purN ../lilypond-1.5.50/ChangeLog ./ChangeLog
--- ../lilypond-1.5.50/ChangeLog        Tue Apr  2 00:56:31 2002
+++ ./ChangeLog Sat Apr  6 18:18:00 2002
@@ -1,3 +1,16 @@
+2002-04-06  Mats Bengtsson  <address@hidden@s3.kth.se>
+
+       * lily/stem-engraver.cc (acknowledge_grob): Revert to old way of
+       finding out the duration. Fixes chord tremolo bug. 
+
+       * lily/completion-note-heads-engraver.cc (process_music): Set
+       correct duration for all requests of the broken notes.
+
+       * input/regression/completion-heads.ly: Added example of
+       Completion_heads_engraver.
+
+       * lilypond-mode.el: Added "2Midi" command
+
 2002-04-02  Han-Wen  <address@hidden>
 
        * VERSION: release 1.5.50
diff -purN ../lilypond-1.5.50/Documentation/topdocs/INSTALL.texi 
./Documentation/topdocs/INSTALL.texi
--- ../lilypond-1.5.50/Documentation/topdocs/INSTALL.texi       Sat Mar 23 
00:17:51 2002
+++ ./Documentation/topdocs/INSTALL.texi        Sat Apr  6 00:29:00 2002
@@ -126,7 +126,6 @@ Check out @uref{http://www.python.org, t
 @item GUILE (version 1.4 or newer).
 Check out
 @uref{http://www.gnu.org/software/guile/guile.html,the GUILE webpage}.
-Version 1.4 is recommended for better performance.
 
 @item GNU Make. 
 Check out
diff -purN ../lilypond-1.5.50/VERSION ./VERSION
--- ../lilypond-1.5.50/VERSION  Tue Apr  2 00:55:44 2002
+++ ./VERSION   Sat Apr  6 00:27:00 2002
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
 PATCH_LEVEL=50
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=mb1
 
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
diff -purN ../lilypond-1.5.50/input/regression/completion-heads.ly 
./input/regression/completion-heads.ly
--- ../lilypond-1.5.50/input/regression/completion-heads.ly     Thu Jan  1 
01:00:00 1970
+++ ./input/regression/completion-heads.ly      Sat Apr  6 18:16:05 2002
@@ -0,0 +1,24 @@
+\version "1.5.50"
+
+\header{
+texidoc="
+
+If the Note_heads_engraver is replaced by the Completion_heads_engraver, 
+notes that cross bar lines are split into tied notes.
+"
+}
+
+\score{
+  \notes\relative c'{
+  \time 2/4
+
+  c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 
+  }
+  \paper{
+    \translator{
+      \ThreadContext
+      \remove "Note_heads_engraver"
+      \consists "Completion_heads_engraver"
+    }
+  }
+}
\ No newline at end of file
diff -purN ../lilypond-1.5.50/lily/completion-note-heads-engraver.cc 
./lily/completion-note-heads-engraver.cc
--- ../lilypond-1.5.50/lily/completion-note-heads-engraver.cc   Sun Mar 24 
21:46:53 2002
+++ ./lily/completion-note-heads-engraver.cc    Sat Apr  6 17:16:01 2002
@@ -184,9 +184,6 @@ Completion_heads_engraver::process_music
            Music * m = note_req_l_arr_[i]->clone ();
            scratch_note_reqs_.push (m);
          }
-
-      for (int i =0; i < scratch_note_reqs_.size (); i++)
-       scratch_note_reqs_[i]->set_mus_property ("duration", 
note_dur.smobbed_copy ());
     }
 
   
@@ -202,7 +199,8 @@ Completion_heads_engraver::process_music
          SCM pits = note_req_l_arr_[i]->get_mus_property ("pitch");
          req->set_mus_property ("pitch",pits);
        }
-
+      
+      req->set_mus_property ("duration", note_dur.smobbed_copy ());
       note_p->set_grob_property ("duration-log",
                                 gh_int2scm (note_dur.duration_log ()));
       
diff -purN ../lilypond-1.5.50/lily/stem-engraver.cc ./lily/stem-engraver.cc
--- ../lilypond-1.5.50/lily/stem-engraver.cc    Tue Apr  2 00:48:01 2002
+++ ./lily/stem-engraver.cc     Sat Apr  6 18:26:18 2002
@@ -54,11 +54,13 @@ Stem_engraver::acknowledge_grob (Grob_in
       if (Rhythmic_head::stem_l (h))
        return;
 
-      /*
-       We take the duration-log of the head; this is because
-       auto-tieing does strange things with the rhythmics.
-       */
-      int duration_log  =gh_scm2int (h->get_grob_property ("duration-log"));
+      /* Reverted to the old method so chord tremolos work again. /MB 
+      */
+      int duration_log = 0;
+      Rhythmic_req *rhythmic_req = dynamic_cast <Rhythmic_req *> 
(i.music_cause ()); 
+      if (rhythmic_req)
+       duration_log = unsmob_duration (rhythmic_req->get_mus_property 
("duration"))-> duration_log (); 
+      
       if (!stem_p_) 
        {
          stem_p_ = new Item (get_property ("Stem"));
diff -purN ../lilypond-1.5.50/lilypond-mode.el ./lilypond-mode.el
--- ../lilypond-1.5.50/lilypond-mode.el Sun Mar 17 19:22:19 2002
+++ ./lilypond-mode.el  Sat Apr  6 00:26:04 2002
@@ -169,6 +169,7 @@ in LilyPond-include-path."
 
     ("2Dvi" . ("ly2dvi %s" . "View"))
     ("2PS" . ("ly2dvi -P %s" . "View"))
+    ("2Midi" . ("lilypond -m %s" . "View"))
 
     ("Book" . ("lilypond-book %x" . "LaTeX"))
     ("LaTeX" . ("latex '\\nonstopmode\\input %l'" . "View"))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]