]> git.donarmstrong.com Git - lilypond.git/blobdiff - mf/feta-bolletjes.mf
release: 0.1.27
[lilypond.git] / mf / feta-bolletjes.mf
index f99fed2e69b6123753a7e7b3b496581579c0f3f6..53535b6a225c185494bb5464e510dc49d148f363 100644 (file)
@@ -3,23 +3,24 @@
 
 % most beautiful noteheads are pronounced, not circular, 
 % and not even symmetric.
-% These examples are inspired by [Wanske] [see literature list]
+% These examples are inspired by [Wanske], see literature list
 
 
+save black_notehead_width;
+numeric black_notehead_width;
+
 fet_begingroup("balls");
 
 noteheight#:=interline#+ (1 + overdone_heads) *stafflinethickness#;
-
 define_pixels(noteheight);
+brevis_wid# := 2 interline#;
 
-
-
-def draw_brevis =
+def draw_brevis(expr brevwid) =
        save beamheight, head_width;
        save holeheight, stem_width;
-       save serif_size;
+       save serif_size, serif_protrude;
 
-       head_width# = 2 interline#;
+       head_width# = brevwid;
        holeheight = 3 stafflinethickness;
        stem_width = 1.4 stafflinethickness;
 
@@ -29,7 +30,7 @@ def draw_brevis =
        
        2 beamheight + holeheight = noteheight;
        serif_size = (holeheight - stafflinethickness)/2;
-
+       serif_protrude = 1.5 serif_size;
        penpos1(stem_width, 0);
        penpos2(stem_width, 0);
        penpos3(beamheight, 90);
@@ -41,7 +42,7 @@ def draw_brevis =
        z3r = z2r + serif_size *(1,-1);
        y4r = y3r;
        x4r = head_width/2;
-       z5l = z3l + serif_size * (-1,-1);
+       z5l = z3l + (-serif_size, -serif_protrude);
 
        penlabels(1,2,3,4, 5);
        fill z1r -- z1l -- z5r{down} .. z5l{up} .. z3l{right}
@@ -51,17 +52,31 @@ def draw_brevis =
        addto currentpicture also currentpicture reflectedabout(z4r, z4l);
 enddef;
 
+save uitsteek;
+ uitsteek = .25;
+def draw_ledger(expr wid)=     
+       set_char_box(uitsteek * wid, (1+ uitsteek)*wid, 
+               ledgerlinethickness#/2,ledgerlinethickness#/2);
+       pickup pencircle scaled ledgerlinethickness;
+       rt x2 = w;
+       lft x1 = -b;
+       y1 = y2 = 0;
+       draw z1 .. z2;
+enddef;
+
 fet_beginchar("Brevis notehead", "-1", "brevisball")
-       draw_brevis;
+       draw_brevis(brevis_wid#);
+fet_endchar;
+fet_beginchar("Brevis ledger", "-1l", "brevisledger")
+       draw_ledger(brevis_wid#);
 fet_endchar;
-
 
 %
 % Some sources (eg Musix/OpusTeX think that the appendage should be on
 % the right, my only other ref [Willemze], shows an appendage to the left
 %
 fet_beginchar("Longa notehead", "-2", "longaball");
-       draw_brevis;
+       draw_brevis(brevis_wid#);
        save theta;
        z7 = z5;
        z6 - z7 = (-stem_width/2, -interline);
@@ -72,6 +87,10 @@ fet_beginchar("Longa notehead", "-2", "longaball");
        fill z7r .. z6r{z6-z7} .. {z7-z6} z6l -- z7l -- cycle;
        penlabels(6,7);
 fet_endchar;
+fet_beginchar("Longa ledger", "-2l", "longaledger")
+       draw_ledger(brevis_wid#);
+fet_endchar;
+
 
 % setup user vars
 def setup_notehead_vars =
@@ -141,10 +160,15 @@ fet_beginchar("Whole notehead", "0", "wholeball")
        a_w:=1; % no rotate-> no width correction
 
        notehead_calc;
+       whole_notehead_width# := wd#;
        notehead_draw;
 fet_endchar;
 
 
+fet_beginchar("Whole ledger line", "0l", "wholeledger")
+       draw_ledger(whole_notehead_width#);
+fet_endchar;
+
 % half note
 % Wanske, p.39
 fet_beginchar("Half notehead", "1", 
@@ -168,10 +192,15 @@ fet_beginchar("Half notehead", "1",
        a_w:=1.12;
 
        notehead_calc;
+       half_notehead_width# := wd#;
        notehead_draw;
 fet_endchar;
 
 
+fet_beginchar("Half ledger", "1l", "halfledger")
+       draw_ledger(half_notehead_width#);
+fet_endchar;
+
 % quarter note
 % Wanske p.38
 fet_beginchar("Quart notehead", "2", "quartball")
@@ -191,11 +220,15 @@ fet_beginchar("Quart notehead", "2", "quartball")
        a_w:=1.09;
 
        notehead_calc;
+       black_notehead_width# := wd#;
        notehead_draw;
 fet_endchar;
 
 
-
+fet_beginchar("Quart ledger", "2l", "quartledger")
+       draw_ledger(black_notehead_width#);
+fet_endchar;
 
 fet_endgroup("balls");
 
+define_pixels(black_notehead_width);