From: hanwen Date: Tue, 30 Dec 2003 21:36:02 +0000 (+0000) Subject: * input/mutopia/F.Schubert/GNUmakefile: add morgenlied.ly X-Git-Tag: release/2.1.5~6 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=34e63c587dbc21c501d8617c2831303bb3e932d6;p=lilypond.git * 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. * 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. --- diff --git a/ChangeLog b/ChangeLog index ea894594f1..17a94eb201 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,20 @@ 2003-12-30 Han-Wen Nienhuys + * 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 diff --git a/buildscripts/mutopia-index.py b/buildscripts/mutopia-index.py index 399ee211a2..1e0d594394 100644 --- a/buildscripts/mutopia-index.py +++ b/buildscripts/mutopia-index.py @@ -58,13 +58,13 @@ are also included in the distribution. The output is completely generated from the .ly source file, without any further touch up. -

The PostScript files were generated using TeX and dvips at 600 dpi. +

+ 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. -

If you want a better impression of the appearance, do print out one of -the postscript files. """ headertext_nopics= r""" diff --git a/input/mutopia/F.Schubert/GNUmakefile b/input/mutopia/F.Schubert/GNUmakefile index f0add85f77..8f80daa920 100644 --- a/input/mutopia/F.Schubert/GNUmakefile +++ b/input/mutopia/F.Schubert/GNUmakefile @@ -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 index 0000000000..dc7eba773d --- /dev/null +++ b/input/mutopia/F.Schubert/morgenlied.ly @@ -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 ) | + 8( ) r8 r | + r8 c'( e,) f r a | + r8 << { fis( g)} \\ { c,4 } >> r8 | + 4. r8 \clef bass | + 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 8 ( | + 4.) 4.( ) \sf | + r8 r | + r r | + r r | + c16( b c e g b c b c e g ) | + 8 r r 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 8( ) r | + \clef bass r8 dis( e) r c c | + f,4. r8 g g | + 4. 4. | + a,4. 4. | + g,8 r r g16 r16\fermata r8 g''8 | + as4.( g ) | + fis r4 8( | + 4.) 4.( | 4.) | + c,4 r8 g4 r8 | + c4 r8 g4 r8 | + c4 r8 g4 r8 | + 8 | + r r 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 + } + +} +} diff --git a/input/mutopia/R.Schumann/romanze-op28-2.ly b/input/mutopia/R.Schumann/romanze-op28-2.ly index d58caec389..422109c2d5 100644 --- a/input/mutopia/R.Schumann/romanze-op28-2.ly +++ b/input/mutopia/R.Schumann/romanze-op28-2.ly @@ -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 { diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index 3c9fe9079b..b448a6396c 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -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. diff --git a/mf/feta-bolletjes.mf b/mf/feta-bolletjes.mf index 51712dbc41..3f2b7db128 100644 --- a/mf/feta-bolletjes.mf +++ b/mf/feta-bolletjes.mf @@ -8,22 +8,45 @@ % & Juergen Reuter % +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); diff --git a/mf/feta-eindelijk.mf b/mf/feta-eindelijk.mf index 4f46c68474..d05c97a749 100644 --- a/mf/feta-eindelijk.mf +++ b/mf/feta-eindelijk.mf @@ -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); diff --git a/mf/feta-generic.mf b/mf/feta-generic.mf index 6b4ad8e883..893079589f 100644 --- a/mf/feta-generic.mf +++ b/mf/feta-generic.mf @@ -35,7 +35,6 @@ if test = 0: input feta-pendaal; input feta-accordion; input feta-solfa; - else: input feta-test-generic.mf; diff --git a/mf/feta-klef.mf b/mf/feta-klef.mf index 7838004e2e..a20ecc3fcc 100644 --- a/mf/feta-klef.mf +++ b/mf/feta-klef.mf @@ -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); diff --git a/mf/feta-params.mf b/mf/feta-params.mf index 00a4d45542..96621c7e63 100644 --- a/mf/feta-params.mf +++ b/mf/feta-params.mf @@ -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); + + diff --git a/mf/feta-test-generic.mf b/mf/feta-test-generic.mf index 4c656d8e59..91d959c180 100644 --- a/mf/feta-test-generic.mf +++ b/mf/feta-test-generic.mf @@ -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; diff --git a/mf/feta-toevallig.mf b/mf/feta-toevallig.mf index bad84f5104..3c7e9a2cc4 100644 --- a/mf/feta-toevallig.mf +++ b/mf/feta-toevallig.mf @@ -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 index ef9a48cfd2..0000000000 --- a/mf/feta19.mf +++ /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. - diff --git a/mf/parmesan-custodes.mf b/mf/parmesan-custodes.mf index b3fcfc9962..e37e4c86a3 100644 --- a/mf/parmesan-custodes.mf +++ b/mf/parmesan-custodes.mf @@ -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; diff --git a/mf/parmesan-generic.mf b/mf/parmesan-generic.mf index fe567c27d4..7b9a5f0f8a 100644 --- a/mf/parmesan-generic.mf +++ b/mf/parmesan-generic.mf @@ -17,9 +17,6 @@ mode_setup; % input feta-macros; - -make_pen_stack; -make_picture_stack; input feta-params; font_x_height staff_space#; diff --git a/mf/parmesan-heads.mf b/mf/parmesan-heads.mf index 31cfab7312..b103001515 100644 --- a/mf/parmesan-heads.mf +++ b/mf/parmesan-heads.mf @@ -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) = diff --git a/scm/lily.scm b/scm/lily.scm index 9ceb5333ed..add6bfee8b 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -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))))