]> git.donarmstrong.com Git - lilypond.git/commitdiff
* input/mutopia/F.Schubert/GNUmakefile: add morgenlied.ly
authorhanwen <hanwen>
Tue, 30 Dec 2003 21:36:02 +0000 (21:36 +0000)
committerhanwen <hanwen>
Tue, 30 Dec 2003 21:36:02 +0000 (21:36 +0000)
* mf/feta19.mf: remove.

* mf/feta-klef.mf (test_staff): more tweaks

* mf/feta-toevallig.mf: more small size tweaks.

* mf/feta-eindelijk.mf (lower_brush): adjust quarter and shorter
rests for smaller sizes.

* mf/feta-bolletjes.mf: fix cross heads.

* mf/parmesan-heads.mf: idem.

* mf/feta-bolletjes.mf (slash_slope): set WX/WY fields for
attachment coordinates.

* mf/feta-bolletjes.mf: rewrite note head MF code.
(test_outlines): make heads more rotund for smaller sizes.

18 files changed:
ChangeLog
buildscripts/mutopia-index.py
input/mutopia/F.Schubert/GNUmakefile
input/mutopia/F.Schubert/morgenlied.ly [new file with mode: 0644]
input/mutopia/R.Schumann/romanze-op28-2.ly
lily/lily-guile.cc
mf/feta-bolletjes.mf
mf/feta-eindelijk.mf
mf/feta-generic.mf
mf/feta-klef.mf
mf/feta-params.mf
mf/feta-test-generic.mf
mf/feta-toevallig.mf
mf/feta19.mf [deleted file]
mf/parmesan-custodes.mf
mf/parmesan-generic.mf
mf/parmesan-heads.mf
scm/lily.scm

index ea894594f195e31a5bb678d42147f2c4522b4737..17a94eb20189990361d60bfceb769fd619203e4a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
 2003-12-30  Han-Wen Nienhuys   <hanwen@cs.uu.nl>
 
+       * input/mutopia/F.Schubert/GNUmakefile: add morgenlied.ly
+
+       * mf/feta19.mf: remove.
+       
+       * mf/feta-klef.mf (test_staff): more tweaks
+
+       * mf/feta-toevallig.mf: more small size tweaks.
+
+       * mf/feta-eindelijk.mf (lower_brush): adjust quarter and shorter
+       rests for smaller sizes.
+
+       * mf/feta-bolletjes.mf: fix cross heads.
+
+       * VERSION: release 2.1.4
+       
        * scripts/convert-ly.py (FatalConversionError.func): add rule for
        deprecated #'ancient font family
 
index 399ee211a2303b6be6b4c51d376e53c9efdd7741..1e0d594394192edd99f64dc0058e41eff081cb5a 100644 (file)
@@ -58,13 +58,13 @@ are also included in the distribution. The output is completely
 generated from the <tt>.ly</tt> source file, without any further touch
 up.
 
-<p>The PostScript files were generated using TeX and dvips at 600 dpi.
+<p>
+
 The pictures are 90 dpi anti-aliased snapshots of the printed output.
-The images are in PNG format, and should be viewable with any current
-browser.
+If you want a better impression of the appearance, do print out one of
+the PDF or PostScript files; they use scalable fonts, and should look
+good at any resolution.
 
-<p>If you want a better impression of the appearance, do print out one of
-the postscript files.
 """
 
 headertext_nopics= r"""
index f0add85f77cdc3cf436f17a7e70b28dbaa168c99..8f80daa9207fbd5cfa5b608aeb5accfe56042531 100644 (file)
@@ -1,7 +1,7 @@
 depth = ../../..
 
 examples=standchen
-mutopia-examples=standchen
+mutopia-examples=morgenlied
 LOCALSTEPMAKE_TEMPLATES=ly mutopia
 
 include $(depth)/make/stepmake.make
diff --git a/input/mutopia/F.Schubert/morgenlied.ly b/input/mutopia/F.Schubert/morgenlied.ly
new file mode 100644 (file)
index 0000000..dc7eba7
--- /dev/null
@@ -0,0 +1,141 @@
+\header {
+    title = "Sängers Morgenlied"
+    composer  = "Franz Schubert"
+    date = "27. Februar 1815"
+    source = "Edition Peters"
+    editor = "Paul Losse"
+    enteredby="Rune Zedeler"
+    maintainer="rune@zedeler.dk"
+
+    texidoc = "The source is a rather tightly set Peters in Edition is
+    a heavy font. The Peters edition (4622c) was `herausgegeben' by
+    Paul Losse, whose name also appears on a 1956 edition of some
+    other music. Strictly speaking, his edititorial enhancements will
+    not be in the PD - but I am assuming there are no notable ones in
+    this small piece.
+
+    The original compresses the entire music onto a single page, in 4
+systems.  "
+
+}
+
+\version "2.1.3"
+
+\paper  {
+    staffheight = 6.0 \mm
+    
+    #(define fonts (scale-font-list (/ (* 6 mm) (* 20 pt)) ))
+    
+    \include "params-init.ly"
+    linewidth = #(* mm 159)
+    indent = 8\mm
+    }
+
+
+melody = \notes  \relative c'' \repeat volta 2 \context Voice = singer {
+    \time 6/8
+    \autoBeamOff
+    \property Voice.automaticMelismata = ##t
+    s1*0^\markup { \bold \bigger\bigger { \hspace #-3.0 Lieblich, etwas geschwind } }
+  R2.
+  r4 r8 c4 g8 |
+  e4 c8 << { f8. g16 } \\ { f8.[ g16] } >> a8 |
+  fis4  g8 c16[ b a g] f[ e] |
+  d4 f8 a16[ g fis g] f[ d] |
+  g4. r8 gis gis |
+  a4 a16.[ b32] c4 fis,8 |
+  g4.~ g8-\fermata g8 g |
+  as4 as8 g4 g8 |
+  fis4 fis8 r8 g g  |
+  a4 a8 g4 g8 |
+  fis4 fis8 d'16[ c b a] g[ f] |
+  e4 g8 d4 g8 e4 r8 b'16[ c d b] g[ f] |
+  e4 g8 d4 a'16[ g] |
+  c,4 r8 r4 r8 |
+  R2.\fermata 
+}
+
+
+firstVerse = \lyrics {
+    Sü -- ßes Licht! Aus gol -- de -- nen  Pfor -- ten brichst du __ \break
+    sie -- gend durch __ die Nacht. Schö -- ner Tag, du __ bist er -- wacht. __ Mit \break
+    ge -- heim -- nis -- vol -- len Wor -- ten, in me -- lo -- di -- schen Ak -- kor -- den, grüß __ ich __ \break
+    dei -- ne Ro -- sen -- pracht, grüß ich __ dei -- ne Ro -- sen -- pracht. 
+    }
+
+secondVerse = \lyrics {
+    Ach, der Lie -- be sanf "" -- tes We -- hen schwellt mir
+    das be -- weg -- te __ Herz, sanft, wie ein ge -- lieb -- ter Schmerz. __ Dürft ich
+    nur auf gold -- nen Hö -- hen mich im Mor -- gen -- duft er -- ge -- hen! Sehn -- sucht
+    zieht mich him -- mel -- wärts, Sehn -- sucht zieht mich him -- mel -- wärts
+    }
+
+pianoRH = \notes \relative c''' \repeat volta 2 {
+    g16( fis a g fis g f e d c b a ) | 
+    <g e>8( <es fis a> <d f b> <c e c'>) r8 r | 
+    r8 c'( e,) f r a | 
+    r8 << { fis( g)} \\ { c,4 } >> r8 <e c g> <e c g> |
+    <d c a>4. r8 \clef bass  <d b f> <d b f> |
+    e,16 g c g e g d gis b gis d g |
+    c, e a e c e a,-\f d fis d a d |
+    b d g  d b g r4\fermata \clef treble g''8 |
+    as4.( g 4.) | fis4. r4 <d g>8 ( |
+    <f a>4.) <e g>4.( <es fis> ) <d f>\sf |
+    r8 <e c g> <e c g> r <d b g > <d b g> |
+    r <e c g> <e c g> r <f d b g> <f d b g> |
+    r <e c g> <e c g> r <d b f> <d b f> |
+    c16( b c e g b c b c e g <e b'>) |
+    <c c'>8 r r <c, g e>8 r r\fermata |  
+}
+
+pianoLH = \notes \relative c'' \repeat volta 2 {
+    g16( fis a g fis g f e d c b a) | 
+    \clef bass g4.( c,8) r r
+    \clef treble r4 <bes' c>8( <a c>) r <f c'> |
+    \clef bass r8 dis( e) r c c |
+    f,4. r8 g g |
+    <c, c,>4. <e e,>4. |
+    a,4. <d d,>4. |
+    g,8 r r g16 r16\fermata r8 g''8 |
+    as4.( g ) |
+    fis r4 <g b>8( |
+    <f c'>4.) <g c>4.( | <a c>4.) <g b,> |
+    c,4 r8 g4 r8 |
+    c4 r8 g4 r8 |
+    c4 r8 g4 r8 |
+    <c g e c>8 <c e g> <c e g>     <c e g> <c e g> <c e g> |
+    <c e g> r r <c, c,>8 r r\fermata \clef treble
+    }
+
+\score {
+
+    << \time 6/8
+       \addlyrics
+     \new Staff {  \melody }
+     \new Lyrics <<
+        \context  LyricsVoice = "singer-1" \firstVerse
+        \context LyricsVoice = "singer-2" \secondVerse
+        >>
+     \new PianoStaff <<
+        \property PianoStaff.instrument = #"2  "
+        \new Staff \pianoRH
+        \new Staff \pianoLH
+       >> 
+    >>
+
+    \paper {
+       \translator {
+           \LyricsContext
+           minimumVerticalExtent = ##f
+           LyricText \set #'font-size = #1.5
+       }
+       \translator {
+           \ScoreContext
+           SpacingSpanner \set #'common-shortest-duration = #(ly:make-moment 1 8)
+       }
+       \translator {  \PianoStaffContext
+               VerticalAlignment \override #'forced-distance = #10
+               }
+
+}
+}
index d58caec389215c1f1c22e057eca5e6f65fcb10b3..422109c2d5014ba1c3e92d4634abee94d1dbd70d 100644 (file)
@@ -3,9 +3,7 @@
 
 \include "deutsch.ly"
 
-%% 19 is broken --hwn.
-%\include "paper19.ly"
-\include "paper16.ly"
+\include "paper19.ly"
 \version "2.1.1"
 
 \header {
index 3c9fe9079b1b1ac18e74a1a66613808954d2aa53..b448a6396c4f95c262d00d004f28a5c8c432f92a 100644 (file)
@@ -699,8 +699,6 @@ int_list_to_slice (SCM l)
 }
 
 
-
-
 /*
   Return I-th element, or last elt L. If I < 0, then we take the first
   element.
index 51712dbc41cf698d8daae103f0ebec647465790e..3f2b7db128825bde971a54aaaabc4da6f73bfc8e 100644 (file)
@@ -8,22 +8,45 @@
 % & Juergen Reuter <reuter@ipd.uka.de>
 % 
 
+test_outlines := 0;
+
 
 % most beautiful noteheads are pronounced, not circular, 
 % and not even symmetric.
 % These examples are inspired by [Wanske], see literature list
 
 
-save black_notehead_width;
-numeric black_notehead_width;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% NOTE HEAD VARIABLES
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+save black_notehead_width, noteheight,
+       slash_thick, slash_slope, overdone_heads;
+numeric black_notehead_width, noteheight, slash_thick;
 
 fet_begingroup("noteheads");
 
-test_outlines := 0;
 
+
+% slope of slash. From scm/grob-description.scm. How to auto-copy?
+slash_slope := 1.7; 
+
+% thickness of slash lines. quarter notes get 1.5slt width.
+slash_thick# := 2/3*0.48staff_space#;
+
+
+%
+% Hand-engraved music often has balls extending above and below
+% the lines.  If you like that, modify overdone heads (unit:
+% stafflinethickness)
+%
+overdone_heads = 0.0;
 noteheight#:=staff_space#+ (1 + overdone_heads) *stafflinethickness#;
 
+define_pixels(slash_thick, noteheight);
 
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % SLANT moves both extremes on the long axis (by SLANT * ELLIPSIDITY,
 % so SLANT = -1, puts the extreme on the long axis next to the short axis one.)
@@ -137,8 +160,6 @@ fet_endchar;
 
 
 
-% whole note
-% Wanske, p.38
 fet_beginchar("Whole notehead", "0", "wholehead")
        draw_outside_ellipse (1.80 - puff_up_factor / 3.0, 0, 0.707, 0);
        undraw_inside_ellipse (1.30, 125 - puff_up_factor *10,
@@ -150,8 +171,6 @@ fet_beginchar("Whole notehead", "0", "wholehead")
 fet_endchar;
 
 
-% half note
-% Wanske, p.39
 fet_beginchar("Half notehead", "1", "halfhead")
        draw_outside_ellipse (1.53 - puff_up_factor / 3.0, 34, 0.66, 0.17);
        undraw_inside_ellipse (3.25, 33, 0.81,
@@ -159,14 +178,12 @@ fet_beginchar("Half notehead", "1", "halfhead")
 
 fet_endchar;
        
-% quarter note
-% Wanske p.38
 fet_beginchar("Quart notehead", "2", "quarthead")
        draw_outside_ellipse (1.54 - puff_up_factor / 2.0, 32, 0.707, 0);
        black_notehead_width# := charwd;
 fet_endchar;
 
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 fet_beginchar("Whole diamondhead", "0diamond", "wholediamondhead")
@@ -177,8 +194,6 @@ fet_beginchar("Whole diamondhead", "0diamond", "wholediamondhead")
 
 fet_endchar;
 
-% half note
-% Wanske, p.39
 fet_beginchar("Half diamondhead", "1diamond", 
        "halfdiamondhead")
 
@@ -188,45 +203,23 @@ fet_beginchar("Half diamondhead", "1diamond",
 
 fet_endchar;
 
-% quarter note
-% Wanske p.38
 fet_beginchar("Quart diamondheadh", "2diamondh", "diamondheadh")
        draw_outside_ellipse (1.80, 35, 0.495, -0.25);
 fet_endchar;
 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-save pen_thick;
-pen_thick# = stafflinethickness#  + .1 staff_space#;
-define_pixels(pen_thick);
 
 
-begingroup;
-
-
-def def_triangle_old =
-        save triangle,kern; path triangle;
-        kern = 1/3(x2-x1);
-        z2 = z1 rotated 120;
-        z3 = z1 rotated 240;
-        z12 = caveness[.5[z1,z2],z3];
-        z23 = z12 rotated 120;
-        z31 = z12 rotated 240;
-        triangle = z1 .. z12 .. z2 ..
-                    z2 .. z23 .. z3 ..
-                    z3 .. z31 .. z1 ..
-                    cycle;
-        triangle := triangle shifted (-x1+pent/2-kern,0) xscaled xs;
-        pickup pencircle scaled pent xscaled xs;
-        hei = max(y1,-y2)+pent/2; 
-        %set_char_box(-kern*xs*fac, ((x3-x1)*fac+pent#)*xs,hei*fac,hei*fac);
-        set_char_box(0, ((x3-x1-kern)*fac+pent#)*xs,hei*fac,hei*fac);
-enddef;
 
 
 def def_triangle =
        save triangle,kern; path triangle;
        save left_point, height, width;
        pair exact_left_point;
+       save pen_thick;
+       pen_thick# = stafflinethickness#  + .1 staff_space#;
+       define_pixels(pen_thick);
 
        exact_left_point := llap# * dir (90 + tilt);
        height# = max (ypart exact_left_point,
@@ -291,20 +284,11 @@ fet_beginchar("Quart trianglehead", "2triangle", "trianglehead")
        filldraw triangle;
 fet_endchar;
 
-endgroup;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-%%% Editable values:
-
-
-% slope of slash. From scm/grob-description.scm. How to auto-copy?
-slash_slope := 1.7; 
-
-% thickness of lines. quarter notes get 1.5slt width.
-slash_thick# := 2/3*0.48staff_space#;
+def draw_slash(expr hwid_hash) =
 
-define_pixels(slash_thick);
 
-def draw_slash(expr hwid_hash) =
        set_char_box (0, staff_space# / slash_slope + hwid_hash,
                        staff_space#/2 + stafflinethickness#/2,
                        staff_space#/2 + stafflinethickness#/2);
@@ -345,13 +329,8 @@ def draw_slash(expr hwid_hash) =
                        z5 -- z6 -- z7 -- z8 -- cycle;
        fi
        labels (range 1 thru 10);
-
-
 enddef;
 
-
-
-
 fet_beginchar("Whole slashhead","0slash","wholeslashhead")
        draw_slash(2 slash_thick# + 0.5 staff_space#);
 fet_endchar;
@@ -364,7 +343,12 @@ fet_beginchar("Quart slashhead","2slash","quartslashhead")
        draw_slash(slash_thick#);
 fet_endchar;
 
-% thick is the distance between the two parallel lines in the cross (distance between centres of lines)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% thick is the distance between the NE/SW parallel lines in the cross
+% (distance between centres of lines)
+% in stafflinethickness def
+%
 def draw_cross(expr thick) =
        save pent, slant, ne_dir;
        pair ne_dir;
@@ -375,7 +359,7 @@ def draw_cross(expr thick) =
        pickup pencircle scaled pent;
 
        top y3 = h;
-       ne_dir := (1, (2 h -pent)/(w - pent));
+       ne_dir := unitvector ((1, (2 h -pent)/(w - pent)));
        rt x4 = w/2;
        y5 = 0;
        z4 - z5 = whatever * ne_dir;
@@ -383,24 +367,23 @@ def draw_cross(expr thick) =
        z6 - z3 = whatever * ne_dir;
        z3 - z4 = whatever * (ne_dir yscaled -1);
 
-       z1 = (0, charht - 1.5 pent#);
-       y2 = 0;
-       z2 = z1 + whatever * (ne_dir yscaled -1);
-       z7 = z2 + whatever * ne_dir;
-       x7 = charwd/2 - .5 pent#;
-       top y6 = h - pent;
+       z4 - z3 = whatever * (ne_dir) + (ne_dir rotated -90) * thick * stafflinethickness;
+
+       x1 = charwd/2 - .5 pent#;
+       z1 = whatever * ne_dir + thick * stafflinethickness * (ne_dir rotated -90);
 
        
        labels (1,2,3,4,5,6);
 
        crz = (z6 -- z3 -- z4 -- z5) ;
+
        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);
 
        charwx := charwd;
-       charwy := y7;
+       charwy := y1;
 enddef;
 
 fet_beginchar("Whole Crossed notehead", "0cross", "wholecrossedhead")
@@ -408,21 +391,21 @@ fet_beginchar("Whole Crossed notehead", "0cross", "wholecrossedhead")
        hei# := noteheight#+stafflinethickness#;
        set_char_box(0, wid#,hei#/2,hei#/2);
        
-       draw_cross(3.75stafflinethickness);
+       draw_cross (3.75);
 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);
+       draw_cross(3.0);
 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);
+       draw_cross(1.0);
 fet_endchar;
 
 fet_beginchar("X-Circled notehead", "2xcircle", "xcircledhead")
@@ -446,4 +429,5 @@ fet_endchar;
 
 
 fet_endgroup("noteheads");
+
 define_pixels(black_notehead_width);
index 4f46c68474fd81de94e7cd045494ddb68581ad8b..d05c97a7492706ef8ebff46991c1ca30ab90119e 100644 (file)
@@ -10,34 +10,8 @@ fet_begingroup("rests");
 
 begingroup
 
-thick#:=1/16designsize;
-define_blacker_pixels(thick);
-
-rthin:=1/8*staff_space;
-% rthick:=2rthin;
-rthick:=2thick+rthin;
-
-def shift_pic (expr pone, ptwo) =
-  currentpicture:=currentpicture shifted (round(pone),round(ptwo))
-enddef;
-
-% stuff for     8th,16th etc rests
-%
-save stem, ball_crook_stem, ball_crook_balldiam, flare;
-
-% stem#:=1/8*staff_space#;
-stem# = 1/5staff_space#;
-% flare# = 2/3staff_space#;
-flare# = 2/3staff_space# - 1/8stafflinethickness#;
-
-define_pixels(stem,flare);
-
-ball_crook_stem = stem;
-ball_crook_balldiam =flare;
-
 
 save block_rest_y, block_rest_x;
-
 save breve_rest_y, breve_rest_x;
 
 breve_rest_y# =  staff_space#;
@@ -118,8 +92,19 @@ fet_beginchar("Quarter rest","2","quartrest");
 %      draw_staff (-2, 2, 0.0);        
        save alpha, yshift, height;
        alpha:=-50;
+
+
+       thick# := 1/4 staff_space#;
+       define_blacker_pixels(thick);
+
+       rthin := 1.25 stafflinethickness;
+       rthick := 2 thick+rthin;
+
+
+
        yshift# = -1.25 staff_space#;
        height# = 2.8125 staff_space#;
+
        define_pixels (yshift, height);
        save xcenter;
        xcenter = -0.1 staff_space;
@@ -128,18 +113,18 @@ fet_beginchar("Quarter rest","2","quartrest");
          -yshift#,
          yshift# + height#);
        
-       save ne,nw,se,sw; pair ne,nw,se,sw;
+       save ne,nw, se, sw; pair ne, nw, se, sw;
        
        se=dir alpha; nw=dir (alpha+180);
        ne=dir (alpha+90); sw=dir (alpha-90);
-       penpos1(rthin,alpha+90);
-       penpos2(5/4rthick,alpha);
-       penpos4(5/4rthick,alpha);
-       penpos5(rthin,alpha+90);
-       penpos3(3/4rthick,alpha);
-%      penpos6(5/8rthick,alpha);
-       penpos6(2/3rthick,alpha);
-       penpos7(1/2rthin,alpha+90);
+       penpos1(rthin, alpha+90);
+       penpos2(5/4rthick, alpha);
+       penpos4(5/4rthick, alpha);
+       penpos5(rthin, alpha+90);
+       penpos3(3/4rthick, alpha);
+%      penpos6(5/8rthick, alpha);
+       penpos6(2/3rthick,  alpha);
+       penpos7(1/2rthin,  alpha+90);
 
        z10=z2l+1/2rthin*sw;
 %      z11=z4l+1/2rthin*sw;
@@ -151,7 +136,7 @@ fet_beginchar("Quarter rest","2","quartrest");
        y1r = h;
        x1l=xcenter +  1/3staff_space;
        z2r=z1+staff_space*se;
-       z3=1/2[z2,z4];
+       z3=1/2[z2, z4];
        x4= xcenter + 3/8staff_space;
        y4= 0;
        z5=z4l+1.3staff_space*se;
@@ -162,13 +147,10 @@ fet_beginchar("Quarter rest","2","quartrest");
        
        fill z1l{se}..{se}z10..z3l..z11{se}..{se}z5l..z5r{nw}..{nw}z12..z3r..z13{nw}..{nw}z1r.. cycle;
        fill z5r{nw}..tension1.4..z6l..tension1.4..{se}z7l..z7r{nw}..tension1.4..z6r..tension1.4..{se}z5l..cycle;
-       penlabels(1,2,3,4,5,6,7);
-       penlabels(10,11,12,13);
+       penlabels(1, 2, 3, 4, 5, 6, 7);
+       penlabels(10, 11, 12, 13);
        
-%        3/4 staff_space# + yshift#,
-%        18/5staff_space# + yshift#)
-
-       fet_endchar;
+fet_endchar;
 
 def rest_crook(expr a, w) =
        balled_crook(a, w, ball_crook_balldiam, ball_crook_stem)
@@ -206,6 +188,16 @@ enddef;
 %
 %
 
+save bulb_diam, thin, thick;
+
+bulb_diam# := 0.64 staff_space#;
+thin# := 1.2 stafflinethickness#;
+thick# :=  2.2 stafflinethickness#;
+crook_thin := 0.5 stafflinethickness  + 0.08 staff_space;
+
+lower_brush := 1.5 stafflinethickness;
+
+define_pixels ( bulb_diam, thin, thick);
 
 def draw_rest_bulb(expr ycenter, ycut, pat, stretch) =
 begingroup;
@@ -221,20 +213,19 @@ begingroup;
 
 
        z3 = z10+bulb_diam/2.15*dir(-72) ;
-
-
-       x4 = x10+bulb_diam*.62 ;
-       y4 := ceiling (y10 - 2 stafflinethickness + crook_thin);
-
        z5 = z10 + up*bulb_diam/2 + right*stafflinethickness/3;
        
-
-       z7 = 0.5 [z4, z5] + (0.45 stafflinethickness,0.4 stafflinethickness);
+       z7 = 0.5 [z4, z5] +  crook_thin * (0.45 ,0.4 ) / 1.3;
        x8 = x10-0.4bulb_diam;
        y8 = y10 + 0.25 stafflinethickness;
 
        z6 = whatever [z1l, z2l];
-       z6 = z3+whatever * dir(12);
+       z6 = z3 + whatever * dir(12);
+
+       z4 = z3 + whatever * (z6-z3)
+               + 1.1 crook_thin *(unitvector (z6 -z3) rotated 90);
+       x4 = x10+bulb_diam*.62 ;
+       y4 := ceiling (y4);
 
        (pt,whatever) = pat intersectiontimes ((0,ycut)--(w,ycut));
 
@@ -243,28 +234,21 @@ begingroup;
                .. z5{left} .. z8 .. z3{right}
                .. {curl 0.2} z6 {right} .. tension 10 .. {left} point pt of pat -- cycle;
 
-       labels(3, 4, 5, 6, 7, 8, 9, 10);
+       labels(3, 4, 5, 6, 7, 8, 9, 10, 11);
 
 endgroup;
 enddef;
 
 def draw_eighth_rest =
-       save width, bulb_diam, thin, thick;
-       save ycenter, crook_thick, crook_thin;
-       save crook_dir, lower_brush, pat;
+       save width;
+       save ycenter;
+       save crook_dir, pat;
        pair crook_dir;
        path pat;
 
        width# := 1.0 staff_space#;
-       bulb_diam# := 0.64 staff_space#;
-       thin# := 1.2 stafflinethickness#;
-       thick# :=  2.2 stafflinethickness#;
-       crook_thick# := 1.8 stafflinethickness#;
-       crook_thin := 1.3 stafflinethickness;
-
-       lower_brush := 1.5 stafflinethickness;
 
-       define_pixels (width, bulb_diam, thin, thick, crook_thick);
+       define_pixels (width);
        set_char_box (0, width#,
                1.0 staff_space# + 0.5 stafflinethickness#, 0.5 staff_space# + bulb_diam#/2);
 
@@ -304,22 +288,15 @@ fet_beginchar("8th rest","3","eighthrest");
 %
 
 fet_beginchar("16th rest","4","sixteenthrest");
-       save width, bulb_diam, thin, thick;
-       save ycenter, crook_thick, crook_thin;
-       save crook_dir, lower_brush, pat;
+       save width;
+       save ycenter;
+       save crook_dir, pat;
        pair crook_dir;
        path pat;
 
        width# := 1.2 staff_space#;
-       bulb_diam# := 0.64 staff_space#;
-       thin# := 1.2 stafflinethickness#;
-       thick# :=  2.2 stafflinethickness#;
-       crook_thick# := 1.8 stafflinethickness#;
-       crook_thin := 1.3 stafflinethickness;
 
-       lower_brush := 1.5 stafflinethickness;
-
-       define_pixels (width, bulb_diam, thin, thick, crook_thick);
+       define_pixels (width);
        set_char_box (0, width#,
                2.0 staff_space# + 0.5 stafflinethickness#, 0.5 staff_space# + bulb_diam#/2);
 
@@ -344,22 +321,15 @@ fet_beginchar("16th rest","4","sixteenthrest");
        fet_endchar;
 
 fet_beginchar("32th rest","5","thirtysecondrest");
-       save width, bulb_diam, thin, thick;
-       save ycenter, crook_thick, crook_thin;
-       save crook_dir, lower_brush, pat;
+       save width;
+       save ycenter;
+       save crook_dir, pat;
        pair crook_dir;
        path pat;
 
        width# := 1.3 staff_space#;
-       bulb_diam# := 0.64 staff_space#;
-       thin# := 1.2 stafflinethickness#;
-       thick# :=  2.2 stafflinethickness#;
-       crook_thick# := 1.8 stafflinethickness#;
-       crook_thin := 1.3 stafflinethickness;
-
-       lower_brush := 1.5 stafflinethickness;
 
-       define_pixels (width, bulb_diam, thin, thick, crook_thick);
+       define_pixels (width);
        set_char_box (0, width#,
                2.0 staff_space# + 0.5 stafflinethickness#, 1.5 staff_space# + bulb_diam#/2);
 
@@ -385,22 +355,15 @@ fet_beginchar("32th rest","5","thirtysecondrest");
        fet_endchar;
 
 fet_beginchar("64th rest","6","sixtyfourthrest");
-       save width, bulb_diam, thin, thick;
-       save ycenter, crook_thick, crook_thin;
-       save crook_dir, lower_brush, pat;
+       save width;
+       save ycenter;
+       save crook_dir, pat;
        pair crook_dir;
        path pat;
 
        width# := 1.4 staff_space#;
-       bulb_diam# := 0.64 staff_space#;
-       thin# := 1.2 stafflinethickness#;
-       thick# :=  2.2 stafflinethickness#;
-       crook_thick# := 1.8 stafflinethickness#;
-       crook_thin := 1.3 stafflinethickness;
 
-       lower_brush := 1.5 stafflinethickness;
-
-       define_pixels (width, bulb_diam, thin, thick, crook_thick);
+       define_pixels (width);
        set_char_box (0, width#,
                3.0 staff_space# + 0.5 stafflinethickness#, 1.5 staff_space# + bulb_diam#/2);
 
@@ -427,22 +390,15 @@ fet_beginchar("64th rest","6","sixtyfourthrest");
        fet_endchar;
 
 fet_beginchar("128th rest","7","hundredtwentyeighthrest");
-       save width, bulb_diam, thin, thick;
-       save ycenter, crook_thick, crook_thin;
-       save crook_dir, lower_brush, pat;
+       save width;
+       save ycenter;
+       save crook_dir, pat;
        pair crook_dir;
        path pat;
 
        width# = 1.5 staff_space#;
-       bulb_diam# := 0.64 staff_space#;
-       thin# := 1.2 stafflinethickness#;
-       thick# :=  2.2 stafflinethickness#;
-       crook_thick# := 1.8 stafflinethickness#;
-       crook_thin := 1.3 stafflinethickness;
-
-       lower_brush := 1.5 stafflinethickness;
 
-       define_pixels (width, bulb_diam, thin, thick, crook_thick);
+       define_pixels (width);
        set_char_box (0, width#,
                3.0 staff_space# + 0.5 stafflinethickness#, 2.5 staff_space# + bulb_diam#/2);
 
index 6b4ad8e8833fa0f63ba49369e960b71011b433e0..893079589f467eabb65f6f03257b34886aec7dfe 100644 (file)
@@ -35,7 +35,6 @@ if test = 0:
        input feta-pendaal;
        input feta-accordion;
        input feta-solfa;
-       
 else:
        input feta-test-generic.mf;
 
index 7838004e2e90af007e63bc17f32a976449f17148..a20ecc3fcc39f6c3ac56073655dffc4b5d1ee207 100644 (file)
@@ -10,6 +10,7 @@
 
 
 fet_begingroup("clefs");
+test_staff = 0;
 
 
 % [Wanske] says the bulbs should be positioned about 1/4 right of the
@@ -32,9 +33,13 @@ def draw_c_clef (expr reduction) =
        draw_block ((0,-d), (3/4norm+1/2hair,h));
        draw_block ((3/4norm+2hair,-d), 
                (3/4norm+7/2hair,h));
+
        
        save xoff;
        xoff=3/4norm+7/2hair;
+       z5l = (xoff - 3/4 hair, 0);
+       z5r = (x4, 0);
+
        penpos1(hair,-90);
        z1l=(xoff+norm+hair,h);
        penpos2(norm-3/2hair,180);
@@ -44,9 +49,6 @@ def draw_c_clef (expr reduction) =
 
        penpos4(hair,0);
        z4=(xoff+1/2norm+1/2hair, reduced_ss - stafflinethickness - .2 hair);
-       
-       penpos5(4hair,0);
-       z5=(xoff+5/4hair,0);
 
        penpos6(norm-hair,90);
        z6=(xoff+3/4norm,0);
@@ -68,14 +70,14 @@ def draw_c_clef (expr reduction) =
        enddef;
 
 fet_beginchar ("C clef", "C", "altoclef")
-       if test = 1:
+       if test_staff = 1:
                draw_staff (-2,2, 0.0);
        fi;
        draw_c_clef (1.0);
 fet_endchar;
 
 fet_beginchar ("C clef", "C_change", "caltoclef")
-       if test = 1:
+       if test_staff = 1:
                draw_staff (-2,2, 0.0);
        fi;
        draw_c_clef (.8);
@@ -240,7 +242,7 @@ enddef;
 
 
 fet_beginchar("F clef ", "F", "bassclef")
-       if test = 1:
+       if test_staff = 1:
                draw_staff(-3,1, 0.0);
        fi;
        draw_bass_clef((0, 0), 1.0);
@@ -445,7 +447,7 @@ enddef;
 
 
 fet_beginchar("G clef", "G", "trebleclef")
-       if test = 1:
+       if test_staff = 1:
                draw_staff(-1,3, 0.0);
        fi;
        draw_gclef(1.0);
index 00a4d45542deaf88b8ade6cd153d5730e4a1f4ab..96621c7e638987efb3fae93fe615222c6ac9ba98 100644 (file)
@@ -29,14 +29,6 @@ ledgerlinethickness# := 2 stafflinethickness#;
 define_pixels(staff_space, stemthickness);
 define_pixels(stafflinethickness,ledgerlinethickness);
 
-%
-% Hand-engraved music often has balls extending above and below
-% the lines.  If you like that, modify overdone heads (unit:
-% stafflinethickness)
-%
-
-numeric overdone_heads;
-overdone_heads = 0.0;
 
 % 
 % Because of the engraving/stamping process, no traditional
@@ -58,3 +50,5 @@ fi
 define_pixels(blot_diameter);
 
 
+
+
index 4c656d8e59209db4f06e924307bef7005c2e6f26..91d959c180de67ba71d59f5fb665a39396d4e1ba 100644 (file)
@@ -4,11 +4,11 @@
 %
 %
 
-input feta-bolletjes;  
+%input feta-bolletjes; 
 %input feta-banier;
 %input feta-slag;
 %input feta-eindelijk;
-%input feta-klef;
+input feta-klef;
 %      input feta-toevallig;
 %      input feta-schrift;
 %      input feta-haak;
index bad84f5104f27288d81ce987b0ee7e9647badb40..3c7e9a2cc43634e4000dfce1f92174f4160f425a 100644 (file)
@@ -38,7 +38,7 @@ def draw_meta_sharp (expr width) =
        interbeam := 1.05 staff_space;
        beamheight := 0.3 staff_space + stafflinethickness;
        beamwidth := width;
-       stemwidth := 1.5 stafflinethickness;
+       stemwidth := 1.0 stafflinethickness + .05 staff_space;
        roundness := 2 blot_diameter;
 
        center := (.5 w, 0);
@@ -133,20 +133,18 @@ fet_beginchar( "Natural", "0", "natural")
        stemwidth;
        save top_stem_thick;
 
-       beamheight# = 0.3 staff_space# + stafflinethickness#;
+       beamheight# = 0.35 staff_space# + .5 stafflinethickness#;
        height# = 1.5 staff_space#;
        set_char_box(0, 2/3 staff_space#, height#, height#);
 
        define_pixels(height);
        define_blacker_pixels(beamheight);
 
-       % The +0.4  is a lowres fix to ensure that
-       % the brush doesn't turn into a knob on 600dpi or lower.
-       top_stem_thick = round (1.9 stafflinethickness) + 0.4;
+       top_stem_thick = round (1 stafflinethickness + .09staff_space ) + 0.4;
+       stemwidth = 0.08 staff_space + .5 stafflinethickness;
        
 
        interstem + stemwidth =  w;
-       stemwidth = 0.03 staff_space + stafflinethickness;
 
        z2 -z1 = (interstem, slope * interstem);
        xpart .5 [z2,z1] = xcenter ;
@@ -223,15 +221,15 @@ def draw_meta_flat(expr xcenter, w, crook_fatness) =
        else:
                smaller_hole = 0.0 stafflinethickness;
        fi
-       crook_thinness = 1.3 stafflinethickness;
-       top_crook_thinness = 1.65 stafflinethickness;
+       crook_thinness = .7 stafflinethickness + .06 staff_space;
+       top_crook_thinness = 1 stafflinethickness + .065 staff_space ;
 
        % this is a somewhat heuristic.  We should  probably make it
        % straight for low resolution (300 dpi and less).
        top_stem_thick = round (0.1 staff_space + 1.2 stafflinethickness) + 0.74;
 
        bottom_overshoot = stafflinethickness;
-       bottom_stem_thick =0.06 staff_space +  0.6 stafflinethickness;
+       bottom_stem_thick = 0.06 staff_space +  0.6 stafflinethickness;
 
        z1 = (0, 2 staff_space) + center - (0, stafflinethickness/2
                + clearing);
@@ -256,12 +254,12 @@ def draw_meta_flat(expr xcenter, w, crook_fatness) =
 
        y4l - y4r =  top_crook_thinness ;
 
-       y5r = .20 staff_space + ypart center;
+       y5r = .15 staff_space + ypart center;
        x5l = w + xpart center;
        y4 = ypart center + staff_space/2;
        x4r = .45 [x5r, x3r];
 
-       penpos5(crook_fatness, -185);
+       penpos5(crook_fatness, -175);
 
        save bot_crook_dir ;
        pair bot_crook_dir ;
@@ -277,10 +275,9 @@ def draw_meta_flat(expr xcenter, w, crook_fatness) =
 
        y10 = -1/10 staff_space;
 %      draw_staff (-2, 2, 0.5);
-       draw_staff (-2, 2, 0.0);
+%      draw_staff (-2, 2, 0.0);
 
        unfill z3r{z3r-z10} .. z4r{right} .. z5r{down}
-
                ..  z7{- bot_crook_dir}
                & z7 % .. tension 1.3
                .. z10{z3r-z10}
@@ -348,7 +345,7 @@ fet_beginchar("Double Sharp", "4", "sharpsharp")
        save klaverblad, klaversteel;
 
        klaversteel = 1/15 staff_space;
-       klaverblad = .35 staff_space;
+       klaverblad = .40 staff_space - .5 stafflinethickness;
 
        z1 = (klaversteel, 0);
        z2 = (w/2 - klaverblad / 10, h - klaverblad);
@@ -385,7 +382,7 @@ def draw_paren =
        z3 = (leftindent,-d);
 
        penpos1(stafflinethickness, 35);
-       penpos2(2 stafflinethickness, 0);
+       penpos2(.1 staff_space + stafflinethickness, 0);
        penpos3(stafflinethickness, -35);
 
        penlabels(1,2,3);
diff --git a/mf/feta19.mf b/mf/feta19.mf
deleted file mode 100644 (file)
index ef9a48c..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-% feta16.mf
-% part of LilyPond's pretty-but-neat music font
-
-% font_identifier:="feta16";
-% font_size 16pt#;
-
-input feta-autometric;
-fet_beginfont("feta", 19);
-staffsize#:=19pt#;
-test:=0;
-
-
-input feta-generic;
-
-fet_endfont("feta");
-
-end.
-
index b3fcfc9962f907a1459a8877dd7bf067eb326357..e37e4c86a3a43fb8f4d1246a0b5d02fd54600587 100644 (file)
@@ -34,9 +34,6 @@ fet_begingroup ("custodes")
 %   collision handling.
 %
 
-noteheight#:=staff_space#+ (1 + overdone_heads) *stafflinethickness#;
-define_pixels(noteheight);
-
 save between_staff_lines, on_staff_line, anywhere;
 between_staff_lines = 0;
 on_staff_line = 1;
index fe567c27d49037d29a8d87f220e74efb83cd3c08..7b9a5f0f8a6970cdbf0c90033b8c8045b9d9f3e5 100644 (file)
@@ -17,9 +17,6 @@ mode_setup;
 %
 
 input feta-macros;
-
-make_pen_stack;
-make_picture_stack;
 input feta-params;
 
 font_x_height  staff_space#;
index 31cfab73124b72354d0801fb82d3c6ca67325d5a..b1030015159712de2818f3410f3556dd0c0f79f1 100644 (file)
@@ -34,7 +34,8 @@ fet_begingroup ("noteheads")
 %   collision handling.
 %
 
-noteheight#:=staff_space# + (1 + overdone_heads)*stafflinethickness#;
+overdone_heads = 0;
+noteheight# := staff_space# + (1 + overdone_heads)*stafflinethickness#;
 define_pixels(noteheight);
 
 
@@ -46,7 +47,6 @@ define_pixels(noteheight);
 %
 %
 %
-brevis_wid# := 2 staff_space#;
 
 def draw_neo_brevis(expr brevwid) =
        save beamheight, head_width;
@@ -94,13 +94,13 @@ def draw_neo_left_stemmed_head (expr wid) =
 
        x6 = x7 = head_width - stem_width/2;
        y6 = y5;
-       y7 = y5 - 2.25staff_space;
+       y7 = y5 - 2.25 staff_space;
        pickup pencircle scaled stem_width;
        draw z6 .. z7;
 enddef;
 
 fet_beginchar("Left stemmed notehead", "lneo_mensural", "mensuralleftstemmedhead");
-       draw_neo_left_stemmed_head (brevis_wid#)
+       draw_neo_left_stemmed_head (2 staff_space#);
 fet_endchar;
 
 %
@@ -129,15 +129,15 @@ enddef;
 % (ze is wel breed)
 % 
 fet_beginchar("Maxima notehead", "-3neo_mensural", "mensuralmaximahead");
-       draw_neo_longa (1.3 brevis_wid#)
+       draw_neo_longa (2.6 staff_space#)
 fet_endchar;
 
 fet_beginchar("Longa notehead", "-2neo_mensural", "mensurallongahead");
-       draw_neo_longa (brevis_wid#)
+       draw_neo_longa (2 staff_space#)
 fet_endchar;
 
 fet_beginchar("Brevis notehead", "-1neo_mensural", "mensuralbrevishead")
-       draw_neo_brevis(brevis_wid#);
+       draw_neo_brevis(2 staff_space#);
 fet_endchar;
 
 def draw_neo_mensural_black_head (expr wid) =
@@ -192,7 +192,6 @@ fet_beginchar("Neo-mensural black head","2neo_mensural","neomensuralsemiminimahe
 fet_endchar;
 
 
-brevis_wid# := 1 staff_space#;
 
 def draw_brevis (expr wid) =
        % TODO.  For the moment, fall back to draw_neo_brevis.
@@ -211,7 +210,7 @@ def draw_left_stemmed_head (expr wid) =
 enddef;
 
 fet_beginchar("Left stemmed notehead", "lmensural", "mensuralleftstemmedhead");
-       draw_left_stemmed_head (brevis_wid#)
+       draw_left_stemmed_head (staff_space#)
 fet_endchar;
 
 def draw_longa (expr wid) =
@@ -225,15 +224,15 @@ def draw_longa (expr wid) =
 enddef;
 
 fet_beginchar("Maxima notehead", "-3mensural", "mensuralmaximahead");
-       draw_longa (2.0 brevis_wid#)
+       draw_longa (2.0 staff_space#)
 fet_endchar;
 
 fet_beginchar("Longa notehead", "-2mensural", "mensurallongahead");
-       draw_longa (brevis_wid#)
+       draw_longa (staff_space#)
 fet_endchar;
 
 fet_beginchar("Brevis notehead", "-1mensural", "mensuralbrevishead")
-       draw_brevis(brevis_wid#);
+       draw_brevis(staff_space#);
 fet_endchar;
 
 def draw_diamond_head (expr head_h, pen_w, pen_h, angle, open) =
index 9ceb5333ed322b51231d33c066404b21a5db8127..add6bfee8bd9f307017833c9b09c7597d3dac7fd 100644 (file)
@@ -258,7 +258,6 @@ L1 is copied, L2 not.
    (cons (- (car iv) amount)
          (+ (cdr iv) amount)))
 
-
 (define-public (interval-union i1 i2)
    (cons (min (car i1) (car i2))
         (max (cdr i1) (cdr i2))))