bug-lilypond
[Top][All Lists]
Advanced

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

Ornament patch


From: Mats Bengtsson
Subject: Ornament patch
Date: Sun, 05 Aug 2001 17:59:33 +0200

Hi,

here's a patch that implements some more baroque ornaments,
as requested by J?r?mie. I'm not sure if you want to include
it only in 1.5.x or also in 1.4.x. Remember that he runs Windows.

Since I didn't get any response on the question on duplicated
articulation scripts, I changed so it only removes duplicates
that have the same direction. Also I included an old patch to
handle weird key signatures, that never got included.

   /Mats

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

usage 

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

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

diff -urN ../lilypond-1.4.6/CHANGES ./CHANGES
--- ../lilypond-1.4.6/CHANGES   Tue Jul 24 13:39:37 2001
+++ ./CHANGES   Sun Aug  5 17:47:49 2001
@@ -1,3 +1,16 @@
+1.4.6.mb1
+=========
+
+* Allow for duplicated articulation scripts with different direction.
+
+* Added new ornaments: \upmordent, \downmordent, \pralldown, \prallup,
+  \lineprall, \thumb, \comma (to be used with scriptHorizontal = ##t), 
+  see also input/test/trill.ly. [WARNING: FONT UPDATE!]
+
+* Bug fix: staccato dot placement.
+
+* Handle keys with double flats/sharps better.
+
 1.4.5.jcn1
 ==========
 
diff -urN ../lilypond-1.4.6/Documentation/user/refman.itely 
./Documentation/user/refman.itely
--- ../lilypond-1.4.6/Documentation/user/refman.itely   Wed Jul 11 14:52:55 2001
+++ ./Documentation/user/refman.itely   Sat Aug  4 22:48:42 2001
@@ -1226,7 +1226,8 @@
         c''-\rtoe        c''-\turn         c''-\open          c''-\flageolet
         c''-\reverseturn c''-\trill        c''-\prall         c''-\mordent
         c''-\prallprall  c''-\prallmordent c''-\upprall       c''-\downprall
-        c''-\thumb       c''-\segno        c''-\coda
+        c''-\upmordent   c''-\downmordent  c''-\pralldown     c''-\prallup
+        c''-\lineprall   c''-\thumb        c''-\segno         c''-\coda
       }
       \context Lyrics \lyrics {
         accent__      marcato__      staccatissimo__ fermata
@@ -1235,7 +1236,8 @@
         rtoe__        turn__         open__          flageolet
         reverseturn__ trill__        prall__         mordent
         prallprall__  prallmordent__ uprall__        downprall
-        thumb__       segno__        coda
+        upmordent__   downmordent__  pralldown__  prallup__
+        lineprall__   thumb__       segno__        coda
       }
     >
     \paper {
diff -urN ../lilypond-1.4.6/VERSION ./VERSION
--- ../lilypond-1.4.6/VERSION   Sun Jul 29 16:25:26 2001
+++ ./VERSION   Sat Aug  4 22:27:51 2001
@@ -2,7 +2,7 @@
 MAJOR_VERSION=1
 MINOR_VERSION=4
 PATCH_LEVEL=6
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=mb1
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff -urN ../lilypond-1.4.6/input/test/trills.ly ./input/test/trills.ly
--- ../lilypond-1.4.6/input/test/trills.ly      Thu Jun 28 18:05:31 2001
+++ ./input/test/trills.ly      Sun Aug  5 17:29:47 2001
@@ -1,22 +1,62 @@
 \header {
   texidoc="Document trills, pralls and turns"
-  title="Marques des agr\'ements et leur signification"
+  title="Marques des agr\\'ements et leur signification"
+  composer="D'Anglebert"
   copyright="(1689)"
 }
 
+invisible = \property Voice.NoteHead \override #'transparent = ##t
+visible = \property Voice.NoteHead \revert #'transparent
+
+% Ugly hack to get reasonable position of the pinc? and Cheute
+startHorizScript = {
+  \property Voice.scriptHorizontal = ##t
+  \property Voice.Script \override #'padding = #0.3
+  \property Voice.Script \override #'extra-offset = #'(-.6 . 0)
+  % Avoid collision with the dots of dotted notes
+  \property Voice.Dots \override #'extra-extent-X = #'(-0.7 . 0)
+}
+endHorizScript = {
+  \property Voice.scriptHorizontal \unset
+  \property Voice.Dots \revert #'padding
+  \property Voice.Script \revert #'padding
+  \property Voice.Script \revert #'extra-offset
+}
+
+
 \score {
   <
     \property Score.TimeSignature = \turnOff
     \context GrandStaff <
       \context Staff=upper \notes\relative c'' {
        \time 1/4
-       c4-\prallprall
+       c4-\prall
        \time 3/8
-       c4.^"TODO"
+       c4.^\lineprall
        c4.-\downprall
        c4.-\upprall
        \time 5/8
        c4-\turn c4.-\upprall
+       d4-\turn b4.-\downprall
+       \time 3/4
+       b4 c^\turn d 
+       \time 1/4
+       <\context Voice=upper{\voiceOne d4}
+        \context Voice=lower{\voiceTwo 
+          \property Voice.Script \override #'extra-offset = #'(-0.8 . 2.0)
+          b_\turn}>
+       \startHorizScript c^\comma
+       \time 3/8
+       c4.^\comma
+       b8 c4_\comma 
+       c8 b4_\comma
+       b8 c4^\comma _\comma \endHorizScript
+        \time  2/2 \slurDown
+       <{c2}{s4 \invisible d1*1/4 ( \visible }> ) e2
+       <{a,2}{s4 \invisible b1*1/4 ( \visible }> ) d2
+       <{a2}{s4 \invisible b1*1/4 ( \visible }> ) d2
+       \time 3/4
+       d2^\prallup e4
       }
       \context Lyrics=one \lyrics {
        "Tremblement"4
@@ -24,10 +64,27 @@
        "Cadence"
        "autre"
        "Double"4 "cadence"4.
+       "autre"4 _4.
+       _4 "sans tremblement"2
+       "sur une tierce"4
+       "Pinc\\'e"4
+       "autre"4.
+       "Cheute ou Port de"
+       "en descendant"
+       "Cheute et pinc\\'e"
+       "Coul\\'e Sur 2 notes"1
+       "autre"
+       "autre"
+       "Double cadence"2.
       }
       \context Lyrics=two \lyrics {
        "simple"4
        "appuy\'e"4.
+       \skip 1*3
+       \skip 4 \skip 4.
+       "voix et montant"
+       \skip 2.
+       "de suite"1
       }
       \context Staff=lower \notes\relative c'' {
         % autobeamer has som problems here
@@ -36,7 +93,27 @@
        d32 c b c \repeat unfold 4 { d32 c }
        b32 c d c \repeat unfold 4 { d32 c }
        [c32( b a16 b )c] [b32 c d c \repeat unfold 4 { d32 c }]
+       [d32( c b16 c )d] [c32 b a b \repeat unfold 4 { c32 b }]
+       b4 d16 ( c b ) c d4 
+       <\context Voice=upper{\voiceOne d4}
+        \context Voice=lower{\voiceTwo d32 c b a b8}>
+       c16 b c8 
+       c16 b c b c8 
+       b8 [b () c]
+       c [c () b]
+       b [b () c32 b c16]
+        c2 c16 ( d ) e8 ~ e4
+       a,4 ~ a16 a b c d2 
+       a2 b16 ( c ) d8 ~ d4
+       [e16 d e d e d c d] e4 
       }
     >
   >
+  \paper{
+    % Avoid that the text crosses bar lines
+    \translator {
+      \LyricsVoiceContext
+      \consists "Bar_engraver"
+    }
+  }
 }
diff -urN ../lilypond-1.4.6/lily/musical-request.cc ./lily/musical-request.cc
--- ../lilypond-1.4.6/lily/musical-request.cc   Fri May 11 01:57:13 2001
+++ ./lily/musical-request.cc   Sat Aug  4 21:09:27 2001
@@ -103,7 +103,8 @@
   Articulation_req const* a = dynamic_cast<Articulation_req const*> (r);
   
   return a && gh_equal_p (get_mus_property ("articulation-type"),
-                         r->get_mus_property ("articulation-type"));
+                         r->get_mus_property ("articulation-type"))
+    && get_direction () == a->get_direction ();
 }
 
 
diff -urN ../lilypond-1.4.6/ly/engraver.ly ./ly/engraver.ly
--- ../lilypond-1.4.6/ly/engraver.ly    Fri May  4 01:31:43 2001
+++ ./ly/engraver.ly    Sun Aug  5 17:46:40 2001
@@ -433,6 +433,8 @@
        keyAccidentalOrder = #'(
          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
         (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
+        (6 . -2) (2  . -2) (5 . -2 ) (1  . -2) (4  . -2) (0  . -2) (3  . -2)
+        (3  . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
        )
        breakAlignOrder = #'(
          Instrument_name
diff -urN ../lilypond-1.4.6/ly/script.ly ./ly/script.ly
--- ../lilypond-1.4.6/ly/script.ly      Sun Apr  8 01:30:32 2001
+++ ./ly/script.ly      Thu Aug  2 00:27:26 2001
@@ -43,5 +43,11 @@
 prallmordent = \script "prallmordent"
 upprall = \script "upprall"
 downprall = \script "downprall"
+upmordent = \script "upmordent"
+downmordent = \script "downmordent"
+lineprall = \script "lineprall"
+pralldown = \script "pralldown"
+prallup = \script "prallup"
 segno = \script "segno"
 coda = \script "coda"
+comma = \script "comma"
diff -urN ../lilypond-1.4.6/mf/feta-generic.mf ./mf/feta-generic.mf
--- ../lilypond-1.4.6/mf/feta-generic.mf        Sun May  6 03:10:10 2001
+++ ./mf/feta-generic.mf        Wed Aug  1 23:06:00 2001
@@ -37,14 +37,14 @@
        input feta-accordion;
        input feta-custodes;    
 else:
-       input feta-bolletjes;   
-       input feta-banier;
+%      input feta-bolletjes;   
+&      input feta-banier;
 %      input feta-eindelijk;
 %      input feta-klef;
 %      input feta-toevallig;
-%      input feta-schrift;
+       input feta-schrift;
 %      input feta-haak;
-       %input feta-timesig;
+%      %input feta-timesig;
 %      input feta-pendaal;
 %      input feta-accordion;
 fi
diff -urN ../lilypond-1.4.6/mf/feta-schrift.mf ./mf/feta-schrift.mf
--- ../lilypond-1.4.6/mf/feta-schrift.mf        Sat Mar 24 01:28:01 2001
+++ ./mf/feta-schrift.mf        Wed Aug  1 23:50:21 2001
@@ -123,9 +123,11 @@
        labels(4);
 fet_endchar;
 
+% Hmm, changed 1.5 to 1.4 to avoid problems with "random" placement of
+% the dots because of quantization effects for almost integer values. /MB
 fet_beginchar("staccato dot", "staccato", "staccato")
        save radius;
-       radius# = 1.5 stafflinethickness#;
+       radius# = 1.4 stafflinethickness#;
        define_pixels(radius);
        pickup pencircle scaled 2 radius;
        draw (0,0);
@@ -676,6 +678,39 @@
        draw (0,-h) -- (0,h);
        draw (-w,0) -- (w,0);
 
+fet_endchar;
+
+def draw_comma = 
+       save alpha, thick, thin, ht;
+       alpha:=35;
+       thin# = 1.2 stafflinethickness#;
+       thick# = 3 stafflinethickness#;
+       ht# = .6staff_space#;
+       define_pixels(thin, thick,ht);
+       set_char_box(0, .5staff_space#, ht#, ht#);
+
+       penpos1(thick, alpha);
+       penpos2(thick, alpha+90);
+       penpos3(thin, 180-alpha);
+       penpos4(thin, 90-alpha);
+       x3r=0;
+       x1l=x3l;
+       y2r=-y4l=h;
+       z1=z2;
+       z3=z4;
+       penlabels(1,2,3,4);
+       fill z1l{dir (alpha+90)} .. z2r{dir alpha} .. z1r{dir (alpha-90)} .. 
+       z3l{dir (270-alpha)} .. z4l{dir (alpha+180)} .. 
+       z3r{dir (90-alpha)} .. cycle;
+enddef;
+
+fet_beginchar("Right Comma","rcomma","rcomma");
+       draw_comma;
+fet_endchar;
+
+fet_beginchar("Left Comma","lcomma","lcomma");
+       draw_comma;
+       xy_mirror_char;
 fet_endchar;
 
 thick#:=1/24designsize;
diff -urN ../lilypond-1.4.6/mf/feta-slag.mf ./mf/feta-slag.mf
--- ../lilypond-1.4.6/mf/feta-slag.mf   Sat Feb 24 22:06:31 2001
+++ ./mf/feta-slag.mf   Wed Aug  1 23:54:40 2001
@@ -93,7 +93,7 @@
 
 fet_beginchar("mordent", "mordent", "mordent")
        trills := 2;
-       set_char_box(trills*twidth#-0.5toverlap#, trills*twidth#-0.5toverlap#, 
theight#, theight#);
+       set_char_box(trills*twidth#-0.5toverlap#, trills*twidth#-0.5toverlap#, 
4/3*theight#, 4/3*theight#);
        draw_trill_two;
        draw_mordent(0);
 fet_endchar;
@@ -112,7 +112,7 @@
 
 fet_beginchar("prallmordent", "prallmordent", "prallmordent")
        trills := 3;
-       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, 
trills*twidth#-(trills-1)*0.5toverlap#, theight#, theight#);
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, 
trills*twidth#-(trills-1)*0.5toverlap#, 4/3*theight#, 4/3*theight#);
        draw_trill_three;
        draw_mordent(twidth-0.5toverlap);
 fet_endchar;
@@ -144,5 +144,63 @@
 %      currentpicture := currentpicture shifted 
(-0.5w+tthin,-tfat*theight+0.75tthin);
        currentpicture := currentpicture shifted 
(-0.5w+tthin,-tfat*theight+0.5tthin);
        draw_trill_three;
+fet_endchar;
+
+fet_beginchar("upmordent", "upmordent", "upmordent")
+%      trills := 4;
+       trills := 3;
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, 
trills*twidth#-(trills-1)*0.5toverlap#, 4/3*theight#, 4/3*theight#);
+%      draw_slur(-2twidth#,-2theight#,0,-1);
+%      currentpicture := currentpicture shifted 
(-0.5w+tthin,-tfat*theight+0.75tthin);
+       draw_slur(0,-2theight#,0,-1);
+%      currentpicture := currentpicture shifted 
(-0.5w+1.3tthin,-tfat*theight+1.5tthin);
+       currentpicture := currentpicture shifted 
(-0.5w+1.65tthin,-tfat*theight+1.15tthin);
+%      draw_trill_four;
+       draw_trill_three;
+       draw_mordent(twidth-0.5toverlap);
+fet_endchar;
+
+fet_beginchar("downmordent", "downmordent", "downmordent")
+       trills := 3;
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, 
trills*twidth#-(trills-1)*0.5toverlap#, 4/3*theight#, 4/3*theight#);
+%      draw_slur(-2twidth#,2theight#,0,1);
+       draw_slur(0,2theight#,0,1);
+%      currentpicture := currentpicture shifted 
(-0.5w+tthin,-tfat*theight+0.75tthin);
+       currentpicture := currentpicture shifted 
(-0.5w+tthin,-tfat*theight+0.5tthin);
+       draw_trill_three;
+       draw_mordent(twidth-0.5toverlap);
+fet_endchar;
+
+fet_beginchar("lineprall", "lineprall", "lineprall")
+       trills := 3;
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, 
trills*twidth#-(trills-1)*0.5toverlap#, theight#, 4*theight#);
+       pickup pencircle scaled tthin;
+       draw (-0.5w+tthin,-tfat*theight+0.5tthin) -- (-0.5w+tthin,h);
+       draw_trill_three;
+fet_endchar;
+
+fet_beginchar("pralldown", "pralldown", "pralldown")
+%      trills := 4;
+       trills := 3;
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, 
trills*twidth#-(trills-1)*0.5toverlap#, theight#, theight#);
+%      draw_slur(-2twidth#,-2theight#,0,-1);
+%      currentpicture := currentpicture shifted 
(-0.5w+tthin,-tfat*theight+0.75tthin);
+       draw_slur(0,-2theight#,0,-1);
+%      currentpicture := currentpicture shifted 
(-0.5w+1.3tthin,-tfat*theight+1.5tthin);
+       currentpicture := currentpicture shifted 
(-0.5w+1.65tthin,-tfat*theight+1.15tthin);
+%      draw_trill_four;
+       draw_trill_three;
+       currentpicture := currentpicture xscaled -1;
+fet_endchar;
+
+fet_beginchar("prallup", "prallup", "prallup")
+       trills := 3;
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, 
trills*twidth#-(trills-1)*0.5toverlap#, theight#, theight#);
+%      draw_slur(-2twidth#,2theight#,0,1);
+       draw_slur(0,2theight#,0,1);
+%      currentpicture := currentpicture shifted 
(-0.5w+tthin,-tfat*theight+0.75tthin);
+       currentpicture := currentpicture shifted 
(-0.5w+tthin,-tfat*theight+0.5tthin);
+       draw_trill_three;
+       currentpicture := currentpicture xscaled -1;
 fet_endchar;
 
diff -urN ../lilypond-1.4.6/scm/script.scm ./scm/script.scm
--- ../lilypond-1.4.6/scm/script.scm    Thu Mar  8 00:41:15 2001
+++ ./scm/script.scm    Thu Aug  2 00:28:19 2001
@@ -21,6 +21,7 @@
        ("stopped" . ((feta . ("stopped" . "stopped")) #f 0 1 0))
        ("staccato" . ((feta . ("staccato" . "staccato")) #t -1 0 -100))
        ("tenuto" . ((feta . ("tenuto" . "tenuto")) #t -1 0 0))
+       ("comma" . ((feta . ("lcomma" . "rcomma")) #t 0 1 0))
        ("upbow" . ((feta . ("upbow" . "upbow")) #f 0 1 0))
        ("downbow" . ((feta . ("downbow" . "downbow")) #f 0 1 0))
        ("lheel" . ((feta . ("upedalheel" . "upedalheel")) #f 0 -1  0))
@@ -38,6 +39,11 @@
        ("prallmordent" . ((feta . ("prallmordent" . "prallmordent")) #f 0 1 0))
        ("upprall" . ((feta . ("upprall" . "upprall")) #f 0 1 0))
        ("downprall" . ((feta . ("downprall" . "downprall")) #f 0 1 0))
+       ("upmordent" . ((feta . ("upmordent" . "upmordent")) #f 0 1 0))
+       ("downmordent" . ((feta . ("downmordent" . "downmordent")) #f 0 1 0))
+       ("lineprall" . ((feta . ("lineprall" . "lineprall")) #f 0 1 0))
+       ("pralldown" . ((feta . ("pralldown" . "pralldown")) #f 0 1 0))
+       ("prallup" . ((feta . ("prallup" . "prallup")) #f 0 1 0))
        ("segno" . ((feta . ("segno" . "segno")) #f 0 1 0))
        ("coda" . ((feta . ("coda" . "coda")) #f 0 1 0)))
       default-script-alist)

reply via email to

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