]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.116.jcn4
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 13 Dec 2000 21:15:51 +0000 (22:15 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 13 Dec 2000 21:15:51 +0000 (22:15 +0100)
1.3.116.jcn4
============

* Bugfix: don't set beaming for outer half beams.  This fixes some
slurs attached to stem end.

---
Generated by janneke@gnu.org,
From = lilypond-1.3.116.jcn3, To = lilypond-1.3.116.jcn4

usage

    cd lilypond-source-dir; patch -E -p1 < lilypond-1.3.116.jcn4.diff

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

CHANGES
Documentation/user/features.tely
VERSION
input/bugs/coda-kludge.ly [new file with mode: 0644]
input/test/lines.ly [new file with mode: 0644]
lily/beam.cc
lily/timing-engraver.cc
scm/slur.scm

diff --git a/CHANGES b/CHANGES
index c523a32c9b0cb86a724475ed00729c4aa439ac76..958aeaee50c0cb8d3cf9973b8fbf8e728d06fcd4 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,15 @@
---- ../lilypond-1.3.116.jcn2/CHANGES   Mon Dec 11 22:17:51 2000
+--- ../lilypond-1.3.116.jcn3/CHANGES   Tue Dec 12 23:23:42 2000
+++ b/CHANGES   Wed Dec 13 22:15:51 2000
+@@ -1,3 +1,9 @@
+1.3.116.jcn4
+============
+
+* Bugfix: don't set beaming for outer half beams.  This fixes some
+slurs attached to stem end.
+
+ 1.3.116.jcn3
+ ============
+ --- ../lilypond-1.3.116.jcn2/CHANGES  Mon Dec 11 22:17:51 2000
 ++ b/CHANGES   Tue Dec 12 23:23:42 2000
 @@ -1,7 +1,15 @@
 -1.3.116.jcn2
index 14989bd9123b3f9e7a1abc18ef3dbbaa063438a0..e0d85a7de4a8b9ac2a5622a881b28b97ab403fef 100644 (file)
@@ -4,7 +4,7 @@
 
 @ignore
 TODO
-  * add more un/badly-documented features
+  * add more un/badly documented features
   * write some text
   * add to/merge with refman
 @end ignore
@@ -18,9 +18,11 @@ TODO
 * Manual beam settings::           Manual beam settings
 * Slur attachments::               Slur attachments
 * Text spanner::                   Text spanner
-* Output property::                Output property
-* Markup text::                    Markup text
 * Engraver hacking::               Engraver hacking
+* Markup text::                    Markup text
+* Output property::                Output property
+* Embedded TeX::                   Embedded TeX
+* Embedded PostScript::            Embedded PostScript
 @end menu
 
 Testin'' a b c...
@@ -65,6 +67,7 @@ Testin'' a b c...
   >  
 @end lilypond
 
+@c part combiner
 
 @node Manual beam settings
 @section Manual beam settings
@@ -135,7 +138,7 @@ Ophee slurs...
 @end lilypond
 
 
-@c  ugly slurs
+@c steep slur correct
 @c  high slurs, eg from gnossienes
 
 
@@ -163,28 +166,40 @@ Have crescendo set a text spanner iso hairpin
 @end lilypond
 
 
-@node Output property
-@section Output property
+@node Engraver hacking
+@section Engraver hacking
 
-@lilypond[fragment,relative,verbatim,center]
-    \outputproperty #(make-type-checker 'note-head-interface) 
-      #'extra-offset = #'(2 . 3)
-    c''2 c
+No time signature, no barlines... 
+@lilypond[verbatim,center]
+\score {
+  \notes \relative c'' {
+    a b c d
+    d c b a
+  }
+  \paper {
+    \translator {
+      \StaffContext
+      whichBar = #""
+      \remove "Time_signature_engraver";
+      linewidth = -1.;
+    }
+  }
+}
 @end lilypond
 
-Don't move the finger 2, only text "m.d." ...
+No staff, no clef, squash pitches
 @lilypond[verbatim,center]
-#(define (make-text-checker text)
-   (lambda (grob) (equal? text (ly-get-elt-property grob 'text))))
-
-\score {    
-  \notes\relative c''' {
-    \property Voice.Stem \set #'direction = #1
-    \outputproperty #(make-text-checker "m.d.")
-      #'extra-offset = #'(-3.5 . -4.5)
-    a^2^"m.d."    
+\score {
+  \notes { c4 c4 c8 c8 }
+  \paper {
+    \translator {
+      \StaffContext
+      \remove Staff_symbol_engraver;
+      \consists Pitch_squash_engraver;
+      \remove Clef_engraver;
+    }
+    linewidth = -1.;
   }
-  \paper { linewidth = -1.; }
 }
 @end lilypond
 
@@ -215,47 +230,63 @@ Metrome hack...
 }
 @end lilypond
 
-@node Engraver hacking
-@section Engraver hacking
 
-No time signature, no barlines... 
+@node Output property
+@section Output property
+
+@lilypond[fragment,relative,verbatim,center]
+    \outputproperty #(make-type-checker 'note-head-interface) 
+      #'extra-offset = #'(2 . 3)
+    c''2 c
+@end lilypond
+
+Don't move the finger 2, only text "m.d." ...
 @lilypond[verbatim,center]
-\score {
-  \notes \relative c'' {
-    a b c d
-    d c b a
-  }
-  \paper {
-    \translator {
-      \StaffContext
-      whichBar = #""
-      \remove "Time_signature_engraver";
-      linewidth = -1.;
-    }
+#(define (make-text-checker text)
+   (lambda (grob) (equal? text (ly-get-elt-property grob 'text))))
+
+\score {    
+  \notes\relative c''' {
+    \property Voice.Stem \set #'direction = #1
+    \outputproperty #(make-text-checker "m.d.")
+      #'extra-offset = #'(-3.5 . -4.5)
+    a^2^"m.d."    
   }
+  \paper { linewidth = -1.; }
 }
 @end lilypond
 
-No staff, no clef, squash pitches
+  
+@c subsection no clefs
+@c  equalizer
+
+
+@c Embedded TeX
+
+@node Embedded TeX
+@section Embedded TeX
+@lilypond[fragment,relative,verbatim,center]
+  a''^"3 $\\times$ \\`a deux"
+@end lilypond
+
+@node Embedded PostScript
+@section Embedded PostScript
+
+Arbitrary lines and curves not supported...
 @lilypond[verbatim,center]
 \score {
-  \notes { c4 c4 c8 c8 }
+  \notes \relative c'' {
+    a-#"\\embeddedps{3 4 moveto 5 3 rlineto stroke}"
+    -#"\\embeddedps{ [ 0 1 ] 0 setdash 3 5 moveto 5 -3 rlineto stroke}"
+    b-#"\\embeddedps{3 4 moveto 0 0 1 2 8 4 20 3.5 rcurveto stroke}"
+    s2
+    a'1
+  }
   \paper {
-    \translator {
-      \StaffContext
-      \remove Staff_symbol_engraver;
-      \consists Pitch_squash_engraver;
-      \remove Clef_engraver;
-    }
-    linewidth = -1.;
+    linewidth = 70.0*\staffspace;
   }
 }
 @end lilypond
-  
-@c subsection no clefs
-
-
-@c  equalizer
 
 @bye
 
diff --git a/VERSION b/VERSION
index 88fd8ef6eb78a9aa540e81e05fcbd96e63fecc63..5426b74cbd6cef670269f2766902abb0c135cd29 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=116
-MY_PATCH_LEVEL=jcn3
+MY_PATCH_LEVEL=jcn4
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff --git a/input/bugs/coda-kludge.ly b/input/bugs/coda-kludge.ly
new file mode 100644 (file)
index 0000000..ea590a5
--- /dev/null
@@ -0,0 +1,54 @@
+%{
+Hi,
+       I want to write some music that has the structure:
+
+       Intro
+       \repeat 4 { Chorus [first-ending] verse }
+       fifth-ending final
+
+       The obvious:
+
+       \repeat 4 { Chorus \alternative{{first-ending}{}} verse}
+       \alternative{{}{fifth-ending}}
+       final
+
+       doesn't work.
+
+       And the (logically correct but ugly)
+
+       \repeat 4 {Chorus}
+       \alternative {{first-ending verse}{fifth ending}}
+       final
+
+       is very ugly, because the volta bracket keeps going for so
+       long.
+
+       Peter C
+%}
+
+\score{
+       <
+               \context Staff \notes\relative c''{
+                       c c c c
+                       % coda-klugde: let volta span only one bar
+                       \property Staff.voltaSpannerDuration = #(make-moment 1 1)
+                       \repeat "volta" 5 { d d d d }
+                               \alternative { { e e e e f f f f }
+                       { g g g g } }
+               }
+               \context Lyrics \lyrics{
+                       intro1
+                       \repeat fold 5 {}
+                       \alternative {
+                               { chorus1 one verse1 }
+                               { chorus1 two verse1 }
+                               { chorus1 three verse }
+                               { chorus1 four verse }
+                       }
+                       five1
+               }
+       >
+}
+
+
+%\version "1.0.16"; 
diff --git a/input/test/lines.ly b/input/test/lines.ly
new file mode 100644 (file)
index 0000000..1f9352a
--- /dev/null
@@ -0,0 +1,21 @@
+\header {
+texidoc="
+Draw abritrary lines.  This brings LilyPond on par with Mup.
+";
+}
+
+\score {
+  \notes\relative c {
+% globally positioned
+%    a-#"\\special{ps: 0 0 moveto 200 200 lineto stroke}"
+%    b-#"\\special{ps: 0 0 moveto 0 0 10 20 80 40 200 30 curveto stroke}"
+    a''-#"\\embeddedps{3 4 moveto 5 3 rlineto stroke}"
+    -#"\\embeddedps{ [ 0 1 ] 0 setdash 3 5 moveto 5 -3 rlineto stroke}"
+    b-#"\\embeddedps{3 4 moveto 0 0 1 2 8 4 20 3.5 rcurveto stroke}"
+    s2
+    a'1
+  }
+  \paper {
+    linewidth = 70.0*\staffspace;
+  }
+}
\ No newline at end of file
index 25f90cb6eb3e09ddbf428b817cfc2f5f2442d325..db50deee2735e7c7a12a73e9ceef25ce0a93bbcd 100644 (file)
@@ -624,8 +624,15 @@ Beam::set_beaming (Grob*me,Beaming_info_list *beaming)
     {
       do
        {
-         if (Stem::beam_count (stems[i], d) == 0)
-           Stem::set_beaming ( stems[i], beaming->infos_.elem (i).beams_i_drul_[d],d);
+         /* Don't overwrite user override (?) */
+         if (Stem::beam_count (stems[i], d) == 0
+             /* Don't set beaming for outside of outer stems */
+             && ! (d == LEFT && i == 0)
+             && ! (d == RIGHT && i == stems.size () -1))
+           {
+             int b = beaming->infos_.elem (i).beams_i_drul_[d];
+             Stem::set_beaming (stems[i], b, d);
+           }
        }
       while (flip (&d) != LEFT);
     }
index f151c270b3d8641073454179468fd97f5ea7e736..468dc0eb3b342d82c6c9165472da03a068e123ed 100644 (file)
@@ -5,8 +5,6 @@
 
   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
-#include <iostream.h>
-
 #include "translator-group.hh"
 #include "command-request.hh"
 #include "grob-info.hh"
index fe9e8eeff62c4232fee6576c2eed004795b51bbe..81cf5050ec0f99229fa35b0b9cda8520bff7b840 100644 (file)
                       (ly-get-elt-property stem 'beam)
                       ;; and beam on same side as slur
                       (let ((beaming (ly-get-elt-property stem 'beaming)))
-                        ;; (display "beaming: ") (write beaming) (newline)
+                        ;; (display "beaming (") (display dir) (display "): ") (write beaming) (newline)
                         (if (pair? beaming)
-                            (<= 1
-                                (if (= dir -1) (car beaming) (cdr beaming)))
+                            (>= (if (= dir -1) (cdr beaming) (car beaming))
+                               1)
                             #f))))))
         'stem)