]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.137
authorfred <fred>
Wed, 27 Mar 2002 00:57:25 +0000 (00:57 +0000)
committerfred <fred>
Wed, 27 Mar 2002 00:57:25 +0000 (00:57 +0000)
mf/feta-bolletjes.mf
mf/feta-klef.mf
mf/feta-puntje.mf
scm/clef.scm
scm/output-lib.scm

index eccb52238c09bbde63f699070a419b4f8136ff50..9b0b1150c8ec5b339d1eb2cd8886e12bf9da9e45 100644 (file)
@@ -440,18 +440,120 @@ fet_beginchar("Quart diamondhead", "2diamond", "diamondhead")
        fill black;
 fet_endchar;
 
-fet_beginchar("Crossed notehead", "2cross", "crossedhead")
-       set_char_box(0, black_notehead_width#, noteheight#/2, noteheight#/2);
-       pickup pencircle scaled 1.5 stafflinethickness;
-       lft x1 = 0;
-       bot y1 = -d;
-       top y2 = h;
-       rt x2 = w;
+save triangle; path triangle;
+triangle = (-sqrt3/4,-1/2) -- (0,1) -- (sqrt3/4,-1/2) -- cycle;
+
+fet_beginchar("Whole trianglehead", "0triangle", "wholetrianglehead")
+       set_char_box(0, 2(noteheight#+stafflinethickness#)/sqrt3*7/8,
+         (noteheight#+stafflinethickness#)/2,(noteheight#+stafflinethickness#)/2);
+       fill triangle scaled (7h/6) shifted (w/2,-h/6);
+       unfill triangle scaled 0.72h shifted (w/2,-h/6);
+fet_endchar;
+fet_beginchar("Half trianglehead", "1triangle", "halftrianglehead")
+       thick := 1.2stafflinethickness;
+       set_char_box(0, 2noteheight#/sqrt3*7/8,noteheight#/2,noteheight#/2);
+       fill triangle scaled (7h/6) shifted (w/2,-h/6);
+       unfill triangle scaled 0.7h shifted (w/2,-h/6);
+fet_endchar;
+fet_beginchar("Quart trianglehead", "2triangle", "trianglehead")
+       thick := 1.2stafflinethickness;
+       set_char_box(0, 2noteheight#/sqrt3*7/8,noteheight#/2,noteheight#/2);
+       fill triangle scaled (7h/6) shifted (w/2,-h/6);
+fet_endchar;
+
 
-       draw z1 .. z2;
-       draw (z1 .. z2) yscaled -1;
-fet_endchar
+slw := staff_space;
+slw# := staff_space#;
+slt := 1.25stafflinethickness;
+slt# := 1.25stafflinethickness#;
+slxt = 1.5slt;
+slxt# := 1.5slt#;
+slh := 1.5staff_space;
+slh# := 1.5staff_space#;
+
+fet_beginchar("Whole slashhead","0slash","wholeslashhead")
+       wid := slw#+2slxt#+staff_space#;
+       set_char_box(0,wid-stafflinethickness#,slh#/2,slh#/2);
+       define_pixels (wid);
+       pickup penrazor scaled slxt;
+       draw (-b+slxt/2-stafflinethickness/2,-d) -- (-b+slxt/2+slw-stafflinethickness/2,h);
+       draw (w-slxt/2-slw+stafflinethickness/2,-d) -- (w-slxt/2+stafflinethickness/2,h);
+       pickup penrazor scaled slt rotated 90;
+       draw (-b+slxt-stafflinethickness/2,-d+slt/2) -- (w-slw+stafflinethickness/2,-d+slt/2);
+       draw (-b+slw-stafflinethickness/2,h-slt/2) -- (w-slxt+stafflinethickness/2,h-slt/2);
+fet_endchar;
+
+fet_beginchar("Half slashhead","1slash","halfslashhead")
+       wid := slw#+2slxt#+0.6staff_space#;
+       set_char_box(0,wid-stafflinethickness#,slh#/2,slh#/2);
+       define_pixels (wid);
+       pickup penrazor scaled slxt;
+       draw (b+slxt/2-stafflinethickness/2,-d) -- (b+slxt/2+slw-stafflinethickness/2,h);
+       draw (w-slxt/2-slw+stafflinethickness/2,-d) -- (w-slxt/2+stafflinethickness/2,h);
+       pickup penrazor scaled slt rotated 90;
+       draw (b+slxt-stafflinethickness/2,-d+slt/2) -- (w-slw+stafflinethickness/2,-d+slt/2);
+       draw (b+slw-stafflinethickness/2,h-slt/2) -- (w-slxt+stafflinethickness/2,h-slt/2);
+fet_endchar;
 
+fet_beginchar("Quart slashhead","2slash","quartslashhead")
+       wid := slw#+slxt#;
+       set_char_box(0,slw#+slxt#-stafflinethickness#,slh#/2,slh#/2);
+       define_pixels (wid);
+       pickup penrazor scaled slxt;
+       draw (b+slxt/2-stafflinethickness/2,-d) -- (b+slxt/2+slw-stafflinethickness/2,h);
+fet_endchar;
+
+% thick is the distance between the two parallel lines in the cross (distance between centres of lines)
+def draw_cross(expr thick) =
+       pent := 1.2stafflinethickness;
+       pickup pencircle scaled pent;
+       % alfa is the slant of the lines (i.e. 1 means 45 degrees)
+       alfa := (2h-pent)/(w-pent);
+       % llen is the length of the little outer lines
+       % llen = thick / sin(2atan(alfa))
+       llen := thick/(ypart(dir(2angle(1,alfa))));
+       xa := llen/sqrt(1+alfa**2);
+       ya := xa*alfa;
+       xl := w/2-xa-pent/2;
+       yl := h-ya-pent/2;
+       save crz; path crz;
+       crz = (xa,0) -- (xa+xl,yl) -- (xl,yl+ya) -- (0,ya);
+       draw crz shifted(w/2,0);
+       draw crz xscaled -1 shifted(w/2,0);
+       draw crz yscaled -1 shifted(w/2,0);
+       draw crz scaled -1 shifted(w/2,0);
+enddef;
+
+fet_beginchar("Whole Crossed notehead", "0cross", "wholecrossedhead")
+       wid# := black_notehead_width#+4stafflinethickness#;
+       hei# := noteheight#+stafflinethickness#;
+       set_char_box(0, wid#,hei#/2,hei#/2);
+       draw_cross(3.75stafflinethickness);
+fet_endchar;
+
+fet_beginchar("Half Crossed notehead", "1cross", "halfcrossedhead")
+       wid# := black_notehead_width#+2stafflinethickness#;
+       hei# := noteheight#+stafflinethickness#/2;
+       set_char_box(0, wid#,hei#/2,hei#/2);
+       draw_cross(3stafflinethickness);
+fet_endchar;
+
+fet_beginchar("Crossed notehead", "2cross", "crossedhead")
+       wid# := black_notehead_width#;
+       hei# := noteheight#;
+       set_char_box(0, wid#,hei#/2,hei#/2);
+       draw_cross(stafflinethickness/4);
+fet_endchar;
+
+fet_beginchar("X-Circled notehead", "2xcircle", "xcircledhead")
+       set_char_box(0, noteheight#+stafflinethickness#,
+         noteheight#/2+stafflinethickness#/2,noteheight#/2+stafflinethickness#/2);
+       pickup pencircle scaled 1.2stafflinethickness;
+       draw fullcircle scaled 2h shifted (h,0);
+       pos := h/sqrt2;
+       draw (-pos+h,-pos) -- (pos+h,pos);
+       draw (-pos+h,pos) -- (pos+h,-pos);
+fet_endchar;
 
 fet_endgroup("noteheads");
 define_pixels(black_notehead_width);
index 847045bb44f5dfb56dccbfc6d477e57a672a2eaa..8e46d414278a2c354f3f8c024a2663ccd188b60c 100644 (file)
@@ -1054,10 +1054,11 @@ def draw_percussion_clef(expr reduction) =
        save reduced_il;
        reduced_il# = staff_space# * reduction;
        define_pixels(reduced_il);
-       set_char_box(.5reduced_il#,1.25reduced_il#,reduced_il#,reduced_il#);
-        pickup pencircle scaled 3.33 stafflinethickness;
-       draw (b,h) -- (b,-d);
-       draw (w,h) -- (w,-d);
+       set_char_box(-.67reduced_il#,2.0reduced_il#,reduced_il#,reduced_il#);
+       razt := 0.45reduced_il;
+        pickup penrazor scaled razt;
+       draw (-b+razt/2,h) -- (-b+razt/2,-d);
+       draw (w-razt/2,h) -- (w-razt/2,-d);
 enddef;
 
 fet_beginchar("percussion clef", "percussion", "percussionclef")
@@ -1068,4 +1069,39 @@ fet_beginchar("percussion clef", "percussion_change", "cpercussionclef")
        draw_percussion_clef(.8);
 fet_endchar;
 
+def draw_tab_clef(expr reduction) =
+       save reduced_il;
+       reduced_il# = staff_space# * reduction;
+       define_pixels(reduced_il);
+       set_char_box(-.5reduced_il#,1.8reduced_il#,2.25reduced_il#,2.25reduced_il#);
+       bs := -d+0.65reduced_il;
+       cx := 0.5(-b+w);
+       xp := 0.32 reduced_il;
+       yp := 0.25reduced_il;
+        pickup pensquare xscaled xp yscaled yp;
+
+       draw (-b,h) -- (w,h);
+       draw (cx,h) -- (cx,h-1.2reduced_il);
+
+       pickup penrazor scaled yp rotated 90;
+       draw (-0.85b+0.15w,-0.25reduced_il) -- (-0.15b+0.85w,-0.25reduced_il);
+       pickup penrazor scaled xp;
+       draw (-b,-0.6reduced_il-yp/2) -- (cx,0.6reduced_il+yp/2) -- (w,-0.6reduced_il-yp/2);
+
+
+        pickup pensquare xscaled xp yscaled yp;
+       draw (-b,-d+1.2reduced_il) -- (-b,-d);
+        pickup pencircle xscaled xp yscaled yp;
+       draw (-b,-d) --- (cx,-d) .. (w,0.5(bs-d)) .. (cx,bs) --- (-b,bs) --- (cx,bs)
+            .. (0.3cx+0.7w,0.5(bs-d+1.2reduced_il)) .. (cx,-d+1.2reduced_il) --- (-b,-d+1.2reduced_il)
+enddef;
+
+fet_beginchar("tab clef", "tab", "tabclef")
+       draw_tab_clef(1.0);
+fet_endchar;
+
+fet_beginchar("tab clef", "tab_change", "ctabclef")
+       draw_tab_clef(.8);
+fet_endchar;
+
 fet_endgroup("clefs");
index 62a10760135f5b1f96bde20a491c465aecd4e91b..67199364fb9538186efe257448cdf020e7525742 100644 (file)
@@ -17,5 +17,11 @@ fet_beginchar("repeat dots", "repeatcolon", "repeatcolon")
        set_char_box(0, dot_diam#, staff_space#/2, staff_space#/2);
 fet_endchar;
 
+fet_beginchar("even repeat dots", "evenrepeatcolon", "evenrepeatcolon")
+       pickup pencircle scaled dot_diam;
+       draw (dot_diam/2, staff_space);
+       addto currentpicture also currentpicture yscaled -1;
+       set_char_box(0, dot_diam#, staff_space#, staff_space#);
+fet_endchar;
 
 fet_endgroup("dots");
index d9eecfb6b9055a98f34aa4bea068f3c9dd6eefa3..1a80cc09fd99746d313b7490298db5f5f29b161a 100644 (file)
@@ -20,6 +20,7 @@
          ("F" . ( "clefs-F" 2 0))
          ("subbass" . ("clefs-F" 4 0))
           ("percussion" . ("clefs-percussion" 0 0))
+          ("tab" . ("clefs-tab" 0 0))
 
          ;; should move mensural stuff to separate file? 
          ("vaticana_do1" . ("clefs-vaticana_do" -1 0))
index b2668b40041978371eddea9a59a140a5e40405fb..941eb94ee7cf86d94508ad49af9749642c8d4471 100644 (file)
@@ -63,7 +63,7 @@
 ;; silly, use alist? 
 (define (find-notehead-symbol duration style)
   (case style
-   ((cross) "2cross")
+   ((xcircle) "2xcircle")
    ((harmonic) "0mensural")
    ((baroque) 
     (string-append (number->string duration)