From: Han-Wen Nienhuys Date: Thu, 21 Feb 2002 12:34:41 +0000 (+0100) Subject: release: 1.5.32 X-Git-Tag: release/1.5.32 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=2ef0f6a17cfe1fe8b5be70a1c53212c20f6e3f30;p=lilypond.git release: 1.5.32 --- diff --git a/ChangeLog b/ChangeLog index f1c676e0ff..634ebc7ef2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,29 @@ +2002-02-21 Han-Wen Nienhuys + + * scm/font.scm: remove font-name symbol. + + * mf/GNUmakefile: use pktrace for making PFAs + + * make/lilypond.redhat.spec.in: use pktrace when making specs + + * lily/rest-collision.cc (do_shift): read direction field from + rest-column in case of note-rest collision. This should fix some + problems with rest collisions. + +2002-02-19 Han-Wen Nienhuys + + * lily/note-heads-engraver.cc (process_music): Removed easyPlay + property. + + * lily/note-head.cc (brew_ez_molecule): Remove note-character + property. Read pitch directly from #'cause. + + * mf/feta-puntje.mf: bugfix + +2002-02-19 Juergen Reuter + + * mf/*.mf: tried to fix ancient-font.ly. WARNING: Font changed. + 2002-02-18 Jan Nieuwenhuizen * Documentation/windows/compiling.texi: Update. diff --git a/Documentation/windows/installing.texi b/Documentation/windows/installing.texi index ecaac57d2d..1f103600d5 100644 --- a/Documentation/windows/installing.texi +++ b/Documentation/windows/installing.texi @@ -19,7 +19,9 @@ bugreport, following the guidelines in the section on bugreports below. @section Windows binary setup -All the software you need is installed by downloading and running +If you run Windows NT, 2000 or XP, please become administrator first +(currently, installing as an ordinary user will not work). All the +software you need is installed by downloading and running @uref{http://www.lilypond.org/gnu-windows/setup.exe, setup.exe}. You will be asked some questions. If you are unsure just click "Next". Do not change the default install directory @file{c:/cygwin}. diff --git a/INSTALL.txt b/INSTALL.txt index 55ae543309..9cc58b4f13 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -130,10 +130,10 @@ Compilation 2.95.2 or newer. Check out the gcc site (ftp://ftp.gnu.org/gnu/gcc/). - * Python (version 1.5 or newer; not 2.1.x) Check out the python - website (http://www.python.org). + * Python (version 1.5 or newer). Check out the python website + (http://www.python.org). - * GUILE 1.4 or newer, check out the GUILE webpage + * GUILE (version 1.4 or newer). Check out the GUILE webpage (http://www.gnu.org/software/guile/guile.html). Version 1.4 is recommended for better performance. diff --git a/VERSION b/VERSION index 06a5281065..96a12a2f84 100644 --- a/VERSION +++ b/VERSION @@ -1,8 +1,8 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=5 -PATCH_LEVEL=31 -MY_PATCH_LEVEL=jcn1 +PATCH_LEVEL=32 +MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/input/test/ancient-font.ly b/input/test/ancient-font.ly index af95e9305a..70870dd86c 100644 --- a/input/test/ancient-font.ly +++ b/input/test/ancient-font.ly @@ -11,7 +11,8 @@ global = \notes { \property Score.timing = ##f % \property Score.forceAccidental = ##t -% \property Staff.TimeSignature \override #'style = #'old + \property Staff.TimeSignature \set #'font-family = #'ancient +% \property Staff.TimeSignature \override #'style = #'mensural } upperVoice = \context Staff = upperVoice < @@ -23,9 +24,12 @@ upperVoice = \context Staff = upperVoice < #'line-count = #4 \notes \transpose c' { + \property Staff.Clef \set #'font-family = #'ancient \property Staff.KeySignature \override #'style = #'vaticana \property Staff.Accidentals \override #'style = #'vaticana + \property Staff.Custos \set #'font-family = #'ancient \property Staff.Custos \override #'style = #'vaticana + \property Voice.NoteHead \set #'font-family = #'ancient \property Voice.NoteHead \override #'style = #'vaticana_punctum \property Voice.Porrectus \override #'style = #'vaticana \property Voice.Porrectus \override #'solid = ##t @@ -120,10 +124,15 @@ lowerVoice = \context Staff = lowerNotes < \notes \transpose c' { \property Voice.noAutoBeaming = ##t + \property Staff.Clef \set #'font-family = #'ancient \property Staff.KeySignature \override #'style = #'mensural \property Staff.Accidentals \override #'style = #'mensural + \property Staff.Custos \set #'font-family = #'ancient \property Staff.Custos \override #'style = #'mensural + \property Voice.NoteHead \set #'font-family = #'ancient \property Voice.NoteHead \override #'style = #'neo_mensural + \property Voice.Stem \set #'font-family = #'ancient % ancient flags + \property Voice.Rest \set #'font-family = #'music \property Voice.Rest \override #'style = #'neo_mensural \property Voice.Porrectus \override #'style = #'mensural \property Voice.Porrectus \override #'solid = ##f @@ -161,11 +170,12 @@ lowerVoice = \context Staff = lowerNotes < \clef "mensural_c2" r\breve r1 r2 \clef "mensural_g" - r4 r8 r16 r32 r32 \bar "|" + r4 r8 r16 r16 \bar "|" \property Voice.NoteHead \override #'style = #'mensural \property Voice.Stem \override #'style = #'mensural \property Voice.Stem \override #'thickness = #1.0 + \property Voice.Rest \set #'font-family = #'ancient \property Voice.Rest \override #'style = #'mensural \clef "petrucci_f" c8 b, c16 b, c32 b, c64 b, c b, diff --git a/lily/completion-note-heads-engraver.cc b/lily/completion-note-heads-engraver.cc index 23748de4ac..8c7db7b92c 100644 --- a/lily/completion-note-heads-engraver.cc +++ b/lily/completion-note-heads-engraver.cc @@ -233,15 +233,6 @@ Completion_heads_engraver::process_music () pos += gh_scm2int (c0); note_p->set_grob_property ("staff-position", gh_int2scm (pos)); - if (to_boolean (get_property ("easyPlay"))) - { - char s[2] = "a"; - s[0] = (pit->notename_i_ + 2)%7 + 'a'; - - s[0] = toupper (s[0]); - note_p->set_grob_property ("note-character", ly_str02scm (s)); - } - announce_grob (note_p,req->self_scm ()); note_p_arr_.push (note_p); } @@ -317,5 +308,5 @@ ENTER_DESCRIPTION(Completion_heads_engraver, break long notes and automatically tie them into the next measure.", /* creats*/ "NoteHead Dots", /* acks */ "", -/* reads */ "easyPlay centralCPosition measurePosition measureLength", +/* reads */ "centralCPosition measurePosition measureLength", /* write */ ""); diff --git a/lily/note-head.cc b/lily/note-head.cc index 89929e873d..4e2c2fc109 100644 --- a/lily/note-head.cc +++ b/lily/note-head.cc @@ -6,6 +6,7 @@ (c) 1997--2002 Han-Wen Nienhuys */ #include +#include #include "misc.hh" #include "dots.hh" @@ -19,8 +20,6 @@ /* Note_head contains the code for printing note heads. - - Ledger lines: It also contains the ledger lines, for historical reasons. Ledger @@ -32,7 +31,8 @@ - when ledgered notes are juxtaposed: there should be some white space between the ledger lines. - - when accidentals are near: the accidentals should not be on the ledger lines + - when accidentals are near: the accidentals should not be on the + ledger lines [both tips by Heinz Stolba from Universal Edition]. @@ -40,7 +40,6 @@ - for basically everything else, e.g. swapping ledgered notes on clustered chords, spacing between ledgered and unledgered notes. - TODO: fix this. It is not feasible to have a special grob for ledgers, since you basically don't know if there will be ledgers, @@ -52,8 +51,6 @@ (Besides a separate ledger seems overkill. For what else would it be useful?) - - */ @@ -199,10 +196,6 @@ Note_head::has_interface (Grob*m) MAKE_SCHEME_CALLBACK (Note_head,brew_ez_molecule,1); -/* - TODO: ledger lines are causing a mess again, now with accidentals and - ez-note heads. - */ SCM Note_head::brew_ez_molecule (SCM smob) { @@ -210,11 +203,22 @@ Note_head::brew_ez_molecule (SCM smob) int l = Rhythmic_head::balltype_i (me); int b = (l >= 2); + + SCM cause = me->get_grob_property ("cause"); + SCM spitch = unsmob_music (cause)->get_mus_property ("pitch"); + Pitch* pit = unsmob_pitch (spitch); + + char s[2] = "a"; + s[0] = (pit->notename_i_ + 2)%7 + 'a'; + s[0] = toupper (s[0]); + + SCM charstr = ly_str02scm (s); + SCM at = scm_list_n (ly_symbol2scm ("ez-ball"), - me->get_grob_property ("note-character"), - gh_int2scm (b), - gh_int2scm (1-b), - SCM_UNDEFINED); + charstr, + gh_int2scm (b), + gh_int2scm (1-b), + SCM_UNDEFINED); Box bx (Interval (0, 1.0), Interval (-0.5, 0.5)); Molecule m (bx, at); int p = (int) rint (Staff_symbol_referencer::position_f (me)); diff --git a/lily/note-heads-engraver.cc b/lily/note-heads-engraver.cc index b6fd727f5b..30dffc105e 100644 --- a/lily/note-heads-engraver.cc +++ b/lily/note-heads-engraver.cc @@ -95,15 +95,6 @@ Note_heads_engraver::process_music () pos += gh_scm2int (c0); note_p->set_grob_property ("staff-position", gh_int2scm (pos)); - if (to_boolean (get_property ("easyPlay"))) - { - char s[2] = "a"; - s[0] = (pit->notename_i_ + 2)%7 + 'a'; - - s[0] = toupper (s[0]); - note_p->set_grob_property ("note-character", ly_str02scm (s)); - } - announce_grob (note_p,req->self_scm()); note_p_arr_.push (note_p); } @@ -137,5 +128,5 @@ ENTER_DESCRIPTION(Note_heads_engraver, /* descr */ "Generate one or more noteheads from Music of type Note_req.", /* creats*/ "NoteHead Dots", /* acks */ "", -/* reads */ "easyPlay centralCPosition", +/* reads */ "centralCPosition", /* write */ ""); diff --git a/lily/rest-collision.cc b/lily/rest-collision.cc index f791015c8f..4edc714963 100644 --- a/lily/rest-collision.cc +++ b/lily/rest-collision.cc @@ -193,35 +193,29 @@ Rest_collision::do_shift (Grob *me, SCM elts) { warning (_ ("too many colliding rests")); } - if (notes.size () > 1) - { - warning (_ ("too many notes for rest collision")); - } Grob * rcol = rests[0]; - - // try to be opposite of noteheads. - Direction dir = - Note_column::dir (notes[0]); - + Direction dir = Note_column::dir (rests[0]); + Grob * r = unsmob_grob (rcol->get_grob_property ("rest")); Interval restdim = r->extent (r, Y_AXIS); // ?? if (restdim.empty_b ()) return SCM_UNSPECIFIED; - // FIXME: staff ref'd? - Real staff_space = 1.0; + + Real staff_space = Staff_symbol_referencer::staff_space (rcol); Real minimum_dist = gh_scm2double (me->get_grob_property ("minimum-distance")) * staff_space; - - /* - assumption: ref points are the same. - */ + + + Grob *common = rcol; + for (int i = 0; i < notes.size (); i++) + common = common->common_refpoint (notes[i], Y_AXIS); + Interval notedim; for (int i = 0; i < notes.size (); i++) { - Grob * stem = Note_column::stem_l (notes[i]); - Grob * head = Stem::first_head (stem); - notedim.unite (head->extent (commony, Y_AXIS)); + notedim.unite (notes[i]->extent (common, Y_AXIS)); } Interval inter (notedim); @@ -230,12 +224,12 @@ Rest_collision::do_shift (Grob *me, SCM elts) Real dist = minimum_dist + dir * (notedim[dir] - restdim[-dir]) >? 0; - - // FIXME - //int stafflines = 5; // rcol->rests[0]->line_count; int stafflines = Staff_symbol_referencer::line_count (me); - // hurg? - stafflines = stafflines != 0 ? stafflines : 5; + if (!stafflines) + { + programming_error ("No staff line count ? "); + stafflines =5; + } // move discretely by half spaces. int discrete_dist = int (ceil (dist / (0.5 *staff_space))); @@ -256,3 +250,5 @@ Rest_collision::set_interface (Grob*me) me->set_extent_callback (SCM_EOL, Y_AXIS); } + + diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 5c309e6fb4..f3f78f9997 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -417,7 +417,6 @@ OrchestralScoreContext= \translator { EasyNotation = \translator { \ScoreContext NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule - easyPlay = ##t } % retain for compatibility reasons (FIXME: convert-ly) diff --git a/make/lilypond.redhat.spec.in b/make/lilypond.redhat.spec.in index c75f25b10f..0fb954c137 100644 --- a/make/lilypond.redhat.spec.in +++ b/make/lilypond.redhat.spec.in @@ -1,3 +1,5 @@ +# -*- rpm-spec-mode -*- + %define info yes Name: lilypond @@ -9,10 +11,10 @@ Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-@TOPLEVEL_VERSION@. Summary: Create and print music notation URL: http://www.lilypond.org/ BuildRoot: /tmp/lilypond-install + # add lots of Buildreq: flex, bison, tetex, tetex-devel, tetex-latex, texinfo # better prereqs: tetex-latex, python, (mpost?) etc. -Prereq: tetex - +Prereq: tetex t1utils bison flex pktrace texinfo tetex-latex gcc-c++ python %description LilyPond lets you create music notation. It produces @@ -40,7 +42,7 @@ The documentation of LilyPond, both in HTML and PostScript. ./configure --disable-checking --prefix=%{_prefix} --enable-optimise -make all +make MAKE_PFA_FILES=1 all # make info make -C Documentation @@ -55,7 +57,7 @@ rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc strip lily/out/lilypond -make prefix="$RPM_BUILD_ROOT%{_prefix}" install +make prefix="$RPM_BUILD_ROOT%{_prefix}" MAKE_PFA_FILES=1 install %if info=="yes" gzip -9fn $RPM_BUILD_ROOT%{_prefix}/info/* diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 9e5a8b1b3c..3b981777fe 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,15 +1,15 @@ Begin3 Title: LilyPond -Version: 1.5.31 -Entered-date: 18FEB02 +Version: 1.5.32 +Entered-date: 21FEB02 Description: @BLURB@ Keywords: music notation typesetting midi fonts engraving Author: hanwen@cs.uu.nl (Han-Wen Nienhuys) janneke@gnu.org (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert - 1000k lilypond-1.5.31.tar.gz + 1000k lilypond-1.5.32.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 1000k lilypond-1.5.31.tar.gz + 1000k lilypond-1.5.32.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.mandrake.spec b/make/out/lilypond.mandrake.spec index 7dcc836e83..76669c9ea3 100644 --- a/make/out/lilypond.mandrake.spec +++ b/make/out/lilypond.mandrake.spec @@ -1,5 +1,5 @@ %define name lilypond -%define version 1.5.31 +%define version 1.5.32 %define release 1mdk Name: %{name} diff --git a/make/out/lilypond.redhat.spec b/make/out/lilypond.redhat.spec index 5825dcfd4e..c4a6210184 100644 --- a/make/out/lilypond.redhat.spec +++ b/make/out/lilypond.redhat.spec @@ -1,18 +1,20 @@ +# -*- rpm-spec-mode -*- + %define info yes Name: lilypond -Version: 1.5.31 +Version: 1.5.32 Release: 1 License: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.31.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.32.tar.gz Summary: Create and print music notation URL: http://www.lilypond.org/ BuildRoot: /tmp/lilypond-install + # add lots of Buildreq: flex, bison, tetex, tetex-devel, tetex-latex, texinfo # better prereqs: tetex-latex, python, (mpost?) etc. -Prereq: tetex - +Prereq: tetex t1utils bison flex pktrace texinfo tetex-latex gcc-c++ python %description LilyPond lets you create music notation. It produces @@ -40,7 +42,7 @@ The documentation of LilyPond, both in HTML and PostScript. ./configure --disable-checking --prefix=%{_prefix} --enable-optimise -make all +make MAKE_PFA_FILES=1 all # make info make -C Documentation @@ -55,7 +57,7 @@ rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc strip lily/out/lilypond -make prefix="$RPM_BUILD_ROOT%{_prefix}" install +make prefix="$RPM_BUILD_ROOT%{_prefix}" MAKE_PFA_FILES=1 install %if info=="yes" gzip -9fn $RPM_BUILD_ROOT%{_prefix}/info/* diff --git a/make/out/lilypond.suse.spec b/make/out/lilypond.suse.spec index d9b6216831..bf059eb8dc 100644 --- a/make/out/lilypond.suse.spec +++ b/make/out/lilypond.suse.spec @@ -14,11 +14,11 @@ Distribution: SuSE Linux 7.0 (i386) Name: lilypond -Version: 1.5.31 +Version: 1.5.32 Release: 2 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.31.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.32.tar.gz # music notation software for.. ? Summary: A program for printing sheet music. URL: http://www.lilypond.org/ diff --git a/mf/GNUmakefile b/mf/GNUmakefile index d7a150d208..17ea22feca 100644 --- a/mf/GNUmakefile +++ b/mf/GNUmakefile @@ -24,12 +24,10 @@ $(outdir)/cmr10.afm: -$(GUILE) $(buildscript-dir)/tfm2oafm.scm `kpsewhich cmr10.tfm` -mv $(@F) $@ -LOG_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.log)) -TEXTABLES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.tex)) -AFM_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.afm) $(AF_FILES:.af=.afm) $(addsuffix .afm, $(CM_AFM_FILES))) +LOG_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.log) $(PARMESAN_FILES:.mf=.log)) +TEXTABLES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.tex) $(PARMESAN_FILES:.mf=.tex)) +AFM_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.afm) $(PARMESAN_FILES:.mf=.afm) $(AF_FILES:.af=.afm) $(addsuffix .afm, $(CM_AFM_FILES))) TFM_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.tfm)) -PFA_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfa)) -PFB_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfb)) # Make tfm files first, log files last, @@ -51,11 +49,19 @@ INSTALLATION_OUT_FILES2=$(AFM_FILES) INSTALLATION_OUT_DIR3=$(datadir)/tfm INSTALLATION_OUT_FILES3=$(TFM_FILES) -# comment these out if you don't want pfa's to be generated -# or you don't have metapost. +# comment this out if you don't want pfa's to be generated +# making pfas takes a lot of CPU time. Let's skip it for now. +#MAKE_PFA_FILES=1 + +ifdef MAKE_PFA_FILES +PFA_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfa)) +ALL_GEN_FILES += $(PFA_FILES) INSTALLATION_OUT_DIR4=$(datadir)/pfa INSTALLATION_OUT_FILES4=$(PFA_FILES) +pfa: $(PFA_FILES) +endif + export MFINPUTS:=.:$(MFINPUTS) default: $(ALL_GEN_FILES) @@ -70,4 +76,3 @@ local-clean: rm -f *.tfm *.log -pfb: $(PFB_FILES) diff --git a/mf/feta-banier.mf b/mf/feta-banier.mf index 045bf314f3..36a4dc000d 100644 --- a/mf/feta-banier.mf +++ b/mf/feta-banier.mf @@ -294,6 +294,32 @@ fet_beginchar("grace dash (up)", "ugrace", "gracedash") (w, h); fet_endchar; +fet_beginchar("grace dash (down)", "dgrace", "dgracedash") + save flare, hip_depth_ratio, hip_width, foot_depth; + save flagspace, total_depth, flag_count; + + flag_count = 1; + flare# = .99 staff_space#; + flagspace# = .9 staff_space#; + hip_depth_ratio = .72 ; + hip_width# = downflag_width# - hip_thickness#/2; + total_depth# = 2.85 staff_space#; + (flag_count-1) * flagspace# + foot_depth# = total_depth#; + + foot_width_ratio = .8; + + define_pixels(flare, hip_width, hip_thickness, + flagspace, foot_depth); + + set_char_box(hip_width# * hip_depth_ratio, + hip_width# + stemthickness#/2 + right_downflag_space#, + foot_depth# * hip_depth_ratio, -flare#) + + pickup pencircle scaled 1.5 stemthickness; + draw (-b, -d) .. (w,h); + y_mirror_char; +fet_endchar; + fet_beginchar("16th (down)", "d4", "dsixteenthflag") save flare, hip_depth_ratio, hip_width, diff --git a/mf/feta-eindelijk.mf b/mf/feta-eindelijk.mf index f81107f1c8..6eb476cc3f 100644 --- a/mf/feta-eindelijk.mf +++ b/mf/feta-eindelijk.mf @@ -404,5 +404,57 @@ fet_beginchar("Neo-mensural half rest", "1neo_mensural", "neomensminimahalfrest" neomens_half_block_rest; fet_endchar; +neomensrestsize# = .8staff_space#; + +fet_beginchar("Neo-mensural 4th rest","2neo_mensural","neomenssemiminimarest") + set_char_box(0,neomensrestsize#,0,neomensrestsize#); + pickup pencircle scaled 2 stafflinethickness; + lft x1 = 0; + bot y1 = 0; + lft x2 = 0; + top y2 = h; + rt x3 = w; + bot y3 = h/2; + draw z1 .. z2; + draw z2 .. z3; +fet_endchar + +fet_beginchar("Neo-mensural 8th rest","3neo_mensural","neomensfusarest") + set_char_box(0,neomensrestsize#,0,neomensrestsize#); + pickup pencircle scaled 2 stafflinethickness; + rt x1 = w; + bot y1 = 0; + rt x2 = w; + top y2 = h; + lft x3 = 0; + bot y3 = h/2; + draw z1 .. z2; + draw z2 .. z3; +fet_endchar + +fet_beginchar("Neo-mensural 16th rest","4neo_mensural","neomenssemifusarest") + set_char_box(0,neomensrestsize#,0,staff_space#); + pickup pencircle scaled 2 stafflinethickness; + rt x1 = w; + bot y1 = 0; + rt x2 = w; + top y2 = h; + + draw z1 .. z2; + + pickup pencircle scaled 2 stafflinethickness; + rt x3 = w; + top y3 = h; + lft x4 = 0; + bot y4 = h/2; + rt x5 = w; + top y5 = 5/8h; + lft x6 = 0; + bot y6 = h/8; + + draw z3 .. z4; + draw z5 .. z6; +fet_endchar + fet_endgroup("rests") diff --git a/mf/feta-puntje.mf b/mf/feta-puntje.mf index fbd7c6a9db..74544b4429 100644 --- a/mf/feta-puntje.mf +++ b/mf/feta-puntje.mf @@ -5,7 +5,7 @@ save dot_radius; define_whole_blacker_pixels(dot_radius); fet_beginchar("duration dot","dot", "dot") - pickup pencircle scaled dot_radius; + pickup pencircle scaled 2 dot_radius; drawdot (dot_radius,0); set_char_box(0, 2*dot_radius#, dot_radius#, dot_radius#); fet_endchar; diff --git a/mf/parmesan-accidentals.mf b/mf/parmesan-accidentals.mf index e69de29bb2..71918ea2a3 100644 --- a/mf/parmesan-accidentals.mf +++ b/mf/parmesan-accidentals.mf @@ -0,0 +1,176 @@ +% -*-Fundamental-*- +% parmesan-accidentals.mf -- implement ancient accidentals +% +% source file of LilyPond's pretty-but-neat music font +% +% (c) 2001--2002 Juergen Reuter +% + +fet_begingroup ("accidentals") + + +%%%%%%%% +% +% +% +% EDITIO MEDICAEA +% +% +% +fet_beginchar("Ed. Med. Flat" , "medicaea-1", "medicaeaflat"); + set_char_box(0, 0.8 staff_space#, 0.6 staff_space#, + 2.0 staff_space#); + + pickup pencircle + xscaled 0.50 stafflinethickness + yscaled 0.22 staff_space; + + save za, zb; + pair za, zb; + + za = (0.00 staff_space, +0.90 staff_space); + zb = (0.00 staff_space, -0.50 staff_space); + draw za -- zb; + + pickup pencircle + xscaled 0.50 stafflinethickness + yscaled 0.22 staff_space + rotated -63; + + save zc, zd, ze; + pair zc, zd, ze; + + zc = (0.10 staff_space, -0.50 staff_space); + zd = (0.40 staff_space, +0.40 staff_space); + ze = (0.10 staff_space, +0.40 staff_space); + + draw zc{(1,2)} .. zd .. ze{(-1,-1)}; + + fet_endchar; + +%%%%%%%% +% +% +% +% EDITIO VATICANA +% +% +% +fet_beginchar("Ed. Vat. Flat" , "vaticana-1", "vaticanaflat"); + set_char_box(0, 0.7 staff_space#, 0.6 staff_space#, + 2.0 staff_space#); + define_pixels (stafflinethickness, staff_space); + + save za, zb, zc, zd, ze, zf, zg; + pair za, zb, zc, zd, ze, zf, zg; + za = (0.00 staff_space, +0.80 staff_space); + zb = (0.00 staff_space, -0.03 staff_space); + zc = (0.25 staff_space, -0.23 staff_space); + zd = (0.50 staff_space, -0.23 staff_space); + ze = (0.50 staff_space, +0.00 staff_space); + zf = (0.25 staff_space, +0.20 staff_space); + zg = (0.15 staff_space, +0.26 staff_space); + + pickup pencircle + xscaled 0.50 stafflinethickness + yscaled 0.22 staff_space; + draw za{down} .. {down}zb .. zc .. zd{up} .. {up}ze .. zf .. zg; + fet_endchar; + +fet_beginchar("Ed. Vat. Natural" , "vaticana0", "vaticananatural"); + set_char_box(0, 0.6 staff_space#, 0.6 staff_space#, + 2.0 staff_space#); + define_pixels (stafflinethickness, staff_space); + + save za, zb, zc, zd; + pair za, zb, zc, zd; + pickup pencircle + xscaled 0.80 stafflinethickness + yscaled 0.22 staff_space; + za = (0.00 staff_space, +0.65 staff_space); + zb = (0.00 staff_space, -0.35 staff_space); + zc = (0.00 staff_space, -0.30 staff_space); + zd = (0.40 staff_space, -0.08 staff_space); + draw za -- zb; + draw zc -- zd; + + addto currentpicture also currentpicture + xscaled -1 + yscaled -1 + shifted (0.40 staff_space, 0.0 staff_space); + + fet_endchar; + +%%%%%%%% +% +% +% +% MENSURAL NOTATION +% +% +% +fet_beginchar("Mensural Sharp" , "mensural1", "mensuralsharp"); + set_char_box(0.4 staff_space#, 0.6 staff_space#, 0.5 staff_space#, + 0.5 staff_space#); + save stemthick; + define_pixels (stemthick, staff_space); + stemthick# = stafflinethickness#; + + save za, zb; + pair za, zb; + pickup pencircle scaled 0.8 stemthick; + za = 0.4 * staff_space * (0.8, 1); + za = -zb; + draw za .. zb; + + addto currentpicture also currentpicture xscaled -1; + addto currentpicture also currentpicture shifted (0.20 staff_space, 0); + + fet_endchar; + +fet_beginchar("Mensural Flat" , "mensural-1", "mensuralflat"); + set_char_box(0.1 staff_space#, 0.7 staff_space#, 0.4 staff_space#, + 1.8 staff_space#); + save stemthick; + define_pixels (stemthick, staff_space); + stemthick# = stafflinethickness#; + + save za, zb, zc, zd, ze; + pair za, zb, zc, zd, ze; + pickup pencircle + xscaled 1.4 stemthick + yscaled 0.6 stemthick + rotated 45; + + za = (0.00 staff_space, +1.80 staff_space); + zb = (0.00 staff_space, -0.25 staff_space); + zc = (0.35 staff_space, -0.25 staff_space); + zd = (0.35 staff_space, +0.25 staff_space); + ze = (0.00 staff_space, +0.25 staff_space); + draw za -- zb .. zc .. zd .. ze; + fet_endchar; + +fet_beginchar("Hufnagel Flat" , "hufnagel-1", "hufnagelflat"); + set_char_box(0.5 staff_space#, 0.7 staff_space#, 0.4 staff_space#, + 1.8 staff_space#); + save stemthick; + define_pixels (stemthick, staff_space); + stemthick# = stafflinethickness#; + + save za, zb, zc, zd, ze, zf; + pair za, zb, zc, zd, ze, zf; + pickup pencircle + xscaled 2.4 stemthick + yscaled 0.4 stemthick + rotated 45; + + za = (0.00 staff_space, +1.80 staff_space); + zb = (0.00 staff_space, -0.15 staff_space); + zc = (0.25 staff_space, -0.30 staff_space); + zd = (0.50 staff_space, +0.00 staff_space); + ze = (0.30 staff_space, +0.30 staff_space); + zf = (0.00 staff_space, +0.15 staff_space); + draw za -- zb -- zc .. zd .. ze -- zf; + fet_endchar; + +fet_endgroup ("accidentals") diff --git a/mf/parmesan-clefs.mf b/mf/parmesan-clefs.mf index b6d5de2c5d..a3bc41f449 100644 --- a/mf/parmesan-clefs.mf +++ b/mf/parmesan-clefs.mf @@ -1,15 +1,13 @@ -% feta-klef.mf -- implement Clefs -*-Fundamental-*- +% -*-Fundamental-*- +% parmesan-clefs.mf -- implement ancient clefs % -% part of LilyPond's pretty-but-neat music font +% source file of LilyPond's pretty-but-neat music font +% +% (c) 2001--2002 Juergen Reuter % -% source file of the Feta (not the Font-En-Tja) music font -% -% (c) 1997--2002 Han-Wen Nienhuys , -% Jan Nieuwenhuizen , -% Juergen Reuter +fet_begingroup ("clefs") -fet_begingroup("clefs"); %%%%%%%% % @@ -825,4 +823,4 @@ fet_beginchar("Hufnagel do/fa clef", "hufnagel_do_fa_change", fet_endchar; -fet_endgroup("clefs"); +fet_endgroup ("clefs") diff --git a/mf/parmesan-custodes.mf b/mf/parmesan-custodes.mf index f61f2449f6..d60c1af07e 100644 --- a/mf/parmesan-custodes.mf +++ b/mf/parmesan-custodes.mf @@ -1,15 +1,15 @@ % -*-Fundamental-*- -% feta-custodes.mf -- implement custos symbols +% parmesan-custodes.mf -- implement ancient custodes % % source file of LilyPond's pretty-but-neat music font % -% (C) 2000, 2002 Juergen Reuter +% (c) 2000--2002 Juergen Reuter % save black_notehead_width; numeric black_notehead_width; -fet_begingroup("custodes"); +fet_begingroup ("custodes") noteheight#:=staff_space#+ (1 + overdone_heads) *stafflinethickness#; define_pixels(noteheight); @@ -17,8 +17,10 @@ define_pixels(noteheight); %%%%%%%% % +% % Hufnagel style % +% % stem up fet_beginchar("Custos Hufnagel", "hufnagel", "hufnagel") @@ -270,6 +272,4 @@ fet_beginchar("Reverse Custos Mensural", "rmensural", "rmensural") draw z1 -- z2 -- z3 -- z4 -- z5 -- z6; fet_endchar; -fet_endgroup("custodes"); -define_pixels(black_notehead_width); - +fet_endgroup ("custodes") diff --git a/mf/parmesan-flags.mf b/mf/parmesan-flags.mf index 3e381e4516..bdfd5aac09 100644 --- a/mf/parmesan-flags.mf +++ b/mf/parmesan-flags.mf @@ -1,31 +1,13 @@ -% flags -% - - -fet_begingroup("flags") -save outer_path; -path outer_path; -% Flags pointing down overlap with the notehead (in x-direction), so -% the down-flag can be bigger -upflag_width# = .750 black_notehead_width# + stemthickness#/2; -downflag_width# = .833 black_notehead_width# + stemthickness#/2; - -right_upflag_space# = .2 upflag_width#; -right_downflag_space# = .2 downflag_width#; - -% -% Flags pointing down cannot overlap with the notehead in y-direction, -% so they have less slant. +% -*-Fundamental-*- +% parmesan-flags.mf -- implement ancient flags +% +% source file of LilyPond's pretty-but-neat music font +% +% (c) 2001--2002 Juergen Reuter +% -% Because of optical illusion, the utmost flag (bottom for -% down-pointing, top for up-pointing) should be smaller than the other -% flags. Adobe Sonata doesn't do this correctly. (Instead they have -% an extension flag, which looks less elegant) -% +fet_begingroup ("flags") -save hip_thickness, foot_thickness; -hip_thickness# = 1.3 stemthickness#; -foot_thickness# = hip_thickness#; %%%%%%%% % @@ -389,83 +371,4 @@ fet_beginchar("64th Mensural Flag (down)", "mensurald16", "mensd1sixtyfourthflag currentpicture := currentpicture xscaled -1 yscaled -1; fet_endchar; -%%%%%%%% -% -% -% -% Single Stroke for Short Appogiatura -% -% -% - -fet_beginchar("grace dash (up)", "ugrace", "gracedash") - save flare, - hip_depth_ratio, hip_width, - foot_depth; - - flare# = 1.0 staff_space#; - hip_depth_ratio = .72; - hip_width# = upflag_width# - hip_thickness#/2; - - foot_depth# = 3 staff_space#; - - define_pixels(flare, hip_width, hip_thickness, - foot_depth, foot_thickness); - - set_char_box(hip_width# * hip_depth_ratio, - hip_width# + stemthickness#/2 + right_upflag_space#, - foot_depth# * hip_depth_ratio, -flare#) - - pickup pencircle scaled 1.5 stemthickness; - draw (-b ,-d) .. - (w, h); -fet_endchar; - -fet_beginchar("grace dash (down)", "dgrace", "dgracedash") - save flare, hip_depth_ratio, hip_width, foot_depth; - save flagspace, total_depth, flag_count; - - flag_count = 1; - flare# = .99 staff_space#; - flagspace# = .9 staff_space#; - hip_depth_ratio = .72 ; - hip_width# = downflag_width# - hip_thickness#/2; - total_depth# = 2.85 staff_space#; - (flag_count-1) * flagspace# + foot_depth# = total_depth#; - - foot_width_ratio = .8; - - define_pixels(flare, hip_width, hip_thickness, - flagspace, foot_depth); - - set_char_box(hip_width# * hip_depth_ratio, - hip_width# + stemthickness#/2 + right_downflag_space#, - foot_depth# * hip_depth_ratio, -flare#) - - pickup pencircle scaled 1.5 stemthickness; - draw (-b, -d) .. (w,h); - y_mirror_char; -fet_endchar; - -% ustem? -% -% -% Stem characters so we can compose metronome markings with Feta -% entirely. -% - -fet_beginchar("stem (up)", "stem", "stem") - set_char_box(stemthickness#/2, stemthickness#/2, 0, 3.5staff_space#); - pickup pencircle scaled stemthickness; - draw (0, 0.2staff_space) .. (0, 3.5staff_space); -fet_endchar; - -% do we want this? -fet_beginchar("stem (down)", "dstem", "dstem") - set_char_box(stemthickness#/2, stemthickness#/2, 3.5staff_space#, 0); - pickup pencircle scaled stemthickness; - draw (0, -0.2staff_space) .. (0, -3.5staff_space); -fet_endchar; - - -fet_endgroup("flags"); +fet_endgroup ("flags") diff --git a/mf/parmesan-heads.mf b/mf/parmesan-heads.mf index 8ec8cc6c66..370d0dcf4b 100644 --- a/mf/parmesan-heads.mf +++ b/mf/parmesan-heads.mf @@ -1,23 +1,15 @@ -% -*-Fundamental-*- -% feta-bolletjes.mf -- implement noteheads +% -*-Fundamental-*- +% parmesan-heads.mf -- implement ancient note heads % % source file of LilyPond's pretty-but-neat music font % -% (c) 1997--2002 Jan Nieuwenhuizen -% & Han-Wen Nienhuys -% & Juergen Reuter +% (c) 2001--2002 Juergen Reuter % - -% 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; -fet_begingroup("noteheads"); +fet_begingroup ("noteheads") noteheight#:=staff_space#+ (1 + overdone_heads) *stafflinethickness#; define_pixels(noteheight); @@ -764,5 +756,4 @@ fet_beginchar("Hufnagel pes lower punctum", "0hufnagel_lpes", "huflpeshead") draw -za .. za; fet_endchar; -fet_endgroup("noteheads"); -define_pixels(black_notehead_width); +fet_endgroup ("noteheads") diff --git a/mf/parmesan-rests.mf b/mf/parmesan-rests.mf index ec448e60ef..55a526dea9 100644 --- a/mf/parmesan-rests.mf +++ b/mf/parmesan-rests.mf @@ -1,177 +1,118 @@ +% -*-Fundamental-*- +% parmesan-rests.mf -- implement ancient rests % -% feta-toevallig.mf -- implement Accidentals +% source file of LilyPond's pretty-but-neat music font % -% source file of the Feta (Font-En-Tja) music font +% (c) 2001--2002 Juergen Reuter % -% (c) 1997--2002 Han-Wen Nienhuys -% - -fet_begingroup("accidentals"); +fet_begingroup("rests") %%%%%%%% % % % -% EDITIO MEDICAEA +% MENSURAL NOTATION % % % -fet_beginchar("Ed. Med. Flat" , "medicaea-1", "medicaeaflat"); - set_char_box(0, 0.8 staff_space#, 0.6 staff_space#, - 2.0 staff_space#); - pickup pencircle - xscaled 0.50 stafflinethickness - yscaled 0.22 staff_space; +pen_width# = 2/5 staff_space#; +pen_height# = 0; +pen_rotation = 30; +slight_pen_rotation = 15; - save za, zb; - pair za, zb; +mens_block_rest_y# = 1/1 staff_space#; +mens_half_block_rest_y# = 5/8 staff_space#; - za = (0.00 staff_space, +0.90 staff_space); - zb = (0.00 staff_space, -0.50 staff_space); - draw za -- zb; +define_pixels(mens_block_rest_y, mens_half_block_rest_y, + pen_width, pen_height); +fet_beginchar("Mensural longa rest", "-2mensural", "menslongarest"); + set_char_box(pen_width#/2, pen_width#/2, + mens_block_rest_y#, mens_block_rest_y#); pickup pencircle - xscaled 0.50 stafflinethickness - yscaled 0.22 staff_space - rotated -63; - - save zc, zd, ze; - pair zc, zd, ze; - - zc = (0.10 staff_space, -0.50 staff_space); - zd = (0.40 staff_space, +0.40 staff_space); - ze = (0.10 staff_space, +0.40 staff_space); - - draw zc{(1,2)} .. zd .. ze{(-1,-1)}; + xscaled pen_width + yscaled pen_height + rotated slight_pen_rotation; + draw (0, -mens_block_rest_y) -- (0, mens_block_rest_y); +fet_endchar; + +fet_beginchar("Mensural breve rest", "-1mensural", "mensbreverest"); + set_char_box(pen_width#/2, pen_width#/2, + 0, mens_block_rest_y#); + pickup pencircle + xscaled pen_width + yscaled pen_height + rotated slight_pen_rotation; + draw (0, 0) -- (0, mens_block_rest_y); +fet_endchar; + +fet_beginchar("Mensural whole rest", "0mensural", "menssemibrevisrest"); + set_char_box(pen_width#/2, pen_width#/2, + mens_half_block_rest_y#, 0); + pickup pencircle + xscaled pen_width + yscaled pen_height + rotated slight_pen_rotation; + draw (0, 0) -- (0, -mens_half_block_rest_y); +fet_endchar; + +fet_beginchar("Mensural half rest", "1mensural", "mensminimahalfrest"); + set_char_box(pen_width#/2, pen_width#/2, + 0, mens_half_block_rest_y#); + pickup pencircle + xscaled pen_width + yscaled pen_height + rotated slight_pen_rotation; + draw (0, 0) -- (0, mens_half_block_rest_y); +fet_endchar; - fet_endchar; +mensrestsize# = .8staff_space#; -%%%%%%%% -% -% -% -% EDITIO VATICANA -% -% -% -fet_beginchar("Ed. Vat. Flat" , "vaticana-1", "vaticanaflat"); - set_char_box(0, 0.7 staff_space#, 0.6 staff_space#, - 2.0 staff_space#); - define_pixels (stafflinethickness, staff_space); - - save za, zb, zc, zd, ze, zf, zg; - pair za, zb, zc, zd, ze, zf, zg; - za = (0.00 staff_space, +0.80 staff_space); - zb = (0.00 staff_space, -0.03 staff_space); - zc = (0.25 staff_space, -0.23 staff_space); - zd = (0.50 staff_space, -0.23 staff_space); - ze = (0.50 staff_space, +0.00 staff_space); - zf = (0.25 staff_space, +0.20 staff_space); - zg = (0.15 staff_space, +0.26 staff_space); - - pickup pencircle - xscaled 0.50 stafflinethickness - yscaled 0.22 staff_space; - draw za{down} .. {down}zb .. zc .. zd{up} .. {up}ze .. zf .. zg; - fet_endchar; - -fet_beginchar("Ed. Vat. Natural" , "vaticana0", "vaticananatural"); - set_char_box(0, 0.6 staff_space#, 0.6 staff_space#, - 2.0 staff_space#); - define_pixels (stafflinethickness, staff_space); - - save za, zb, zc, zd; - pair za, zb, zc, zd; +fet_beginchar("Mensural 4th rest","2mensural","menssemiminimarest") + set_char_box(0,mensrestsize#,0,mensrestsize#); pickup pencircle - xscaled 0.80 stafflinethickness - yscaled 0.22 staff_space; - za = (0.00 staff_space, +0.65 staff_space); - zb = (0.00 staff_space, -0.35 staff_space); - zc = (0.00 staff_space, -0.30 staff_space); - zd = (0.40 staff_space, -0.08 staff_space); - draw za -- zb; - draw zc -- zd; - - addto currentpicture also currentpicture - xscaled -1 - yscaled -1 - shifted (0.40 staff_space, 0.0 staff_space); - - fet_endchar; - -%%%%%%%% -% -% -% -% MENSURAL NOTATION -% -% -% -fet_beginchar("Mensural Sharp" , "mensural1", "mensuralsharp"); - set_char_box(0.4 staff_space#, 0.6 staff_space#, 0.5 staff_space#, - 0.5 staff_space#); - save stemthick; - define_pixels (stemthick, staff_space); - stemthick# = stafflinethickness#; - - save za, zb; - pair za, zb; - pickup pencircle scaled 0.8 stemthick; - za = 0.4 * staff_space * (0.8, 1); - za = -zb; - draw za .. zb; - - addto currentpicture also currentpicture xscaled -1; - addto currentpicture also currentpicture shifted (0.20 staff_space, 0); - - fet_endchar; - -fet_beginchar("Mensural Flat" , "mensural-1", "mensuralflat"); - set_char_box(0.1 staff_space#, 0.7 staff_space#, 0.4 staff_space#, - 1.8 staff_space#); - save stemthick; - define_pixels (stemthick, staff_space); - stemthick# = stafflinethickness#; - - save za, zb, zc, zd, ze; - pair za, zb, zc, zd, ze; + xscaled pen_width + yscaled pen_height + rotated pen_rotation; + lft x1 = 0; y1 = 0; + lft x2 = 0; top y2 = 5/8 h; + rt x3 = 4/8 w; bot y3 = 6/8 h; + rt x4 = 10/8 w; bot y4 = 4/8 h; + draw z1 -- z2 -- z3 -- z4; +fet_endchar + +fet_beginchar("Mensural 8th rest","3mensural","mensfusarest") + set_char_box(0,mensrestsize#,0,mensrestsize#); pickup pencircle - xscaled 1.4 stemthick - yscaled 0.6 stemthick - rotated 45; - - za = (0.00 staff_space, +1.80 staff_space); - zb = (0.00 staff_space, -0.25 staff_space); - zc = (0.35 staff_space, -0.25 staff_space); - zd = (0.35 staff_space, +0.25 staff_space); - ze = (0.00 staff_space, +0.25 staff_space); - draw za -- zb .. zc .. zd .. ze; - fet_endchar; - -fet_beginchar("Hufnagel Flat" , "hufnagel-1", "hufnagelflat"); - set_char_box(0.5 staff_space#, 0.7 staff_space#, 0.4 staff_space#, - 1.8 staff_space#); - save stemthick; - define_pixels (stemthick, staff_space); - stemthick# = stafflinethickness#; - - save za, zb, zc, zd, ze, zf; - pair za, zb, zc, zd, ze, zf; + xscaled pen_width + yscaled pen_height + rotated pen_rotation; + rt x1 = 10/8 w; y1 = 0; + rt x2 = 10/8 w; top y2 = 5/8 h; + lft x3 = 2/8 w; bot y3 = 6/8 h; + lft x4 = 0; bot y4 = 4/8 h; + draw z1 -- z2 -- z3 -- z4; +fet_endchar + +fet_beginchar("Mensural 16th rest","4mensural","menssemifusarest") + set_char_box(0,mensrestsize#,0,staff_space#); pickup pencircle - xscaled 2.4 stemthick - yscaled 0.4 stemthick - rotated 45; - - za = (0.00 staff_space, +1.80 staff_space); - zb = (0.00 staff_space, -0.15 staff_space); - zc = (0.25 staff_space, -0.30 staff_space); - zd = (0.50 staff_space, +0.00 staff_space); - ze = (0.30 staff_space, +0.30 staff_space); - zf = (0.00 staff_space, +0.15 staff_space); - draw za -- zb -- zc .. zd .. ze -- zf; - fet_endchar; - -fet_endgroup ("accidentals") + xscaled pen_width + yscaled pen_height + rotated pen_rotation; + + rt x1 = 10/8 w; y1 = 0; + rt x2 = 10/8 w; top y2 = 5.5/8 h; + lft x3 = 2/8 w; bot y3 = 6.5/8 h; + lft x4 = 0; bot y4 = 4.5/8 h; + rt x5 = 10/8 w; top y5 = 2.5/8 h; + lft x6 = 2/8 w; bot y6 = 3.5/8 h; + lft x7 = 0; bot y7 = 1.5/8 h; + draw z1 -- z2 -- z3 -- z4; + draw z5 -- z6 -- z7; +fet_endchar + +fet_endgroup ("rests") diff --git a/mf/parmesan-timesig.mf b/mf/parmesan-timesig.mf index ef1e075a49..7e521a81ed 100644 --- a/mf/parmesan-timesig.mf +++ b/mf/parmesan-timesig.mf @@ -1,12 +1,12 @@ +% -*-Fundamental-*- +% parmesan-timesig.mf -- implement ancient time signatures % -% feta-timesig.mf -- implement Time Signatures -% -% source file of the Feta (not an abbreviation of Font-En-Tja) music font +% source file of LilyPond's pretty-but-neat music font % % (c) 1998--2002 Mats Bengtsson , % Christian Mondrup -fet_begingroup("timesig"); +fet_begingroup ("timesig") path threequartercircle; threequartercircle = halfcircle & quartercircle rotated 180; @@ -16,6 +16,16 @@ Cdiameter# := 3/2 staff_space#; Cthickness# := 2 stafflinethickness#; define_pixels(Cdiameter,Cthickness); + +%%%%%%%% +% +% +% +% MENSURAL NOTATION +% +% +% + %% tempus imperfectum cum prolatione imperfecta fet_beginchar ("Mensural 4/4 meter", "old4/4", "oldfourfourmeter") set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, @@ -130,4 +140,4 @@ fet_beginchar ("Mensural 2/4 meter", "old2/4", "oldtwofourmeter") draw_block((-Cthickness, -d), (0, h)); fet_endchar; -fet_endgroup("timesig"); +fet_endgroup ("timesig") diff --git a/mf/parmesan11.mf b/mf/parmesan11.mf new file mode 100644 index 0000000000..53804759ad --- /dev/null +++ b/mf/parmesan11.mf @@ -0,0 +1,16 @@ +% parmesan11.mf +% part of LilyPond's pretty-but-neat music font + +staffsize#:=11pt#; + +input feta-autometric; +fet_beginfont("parmesan", 11); + +test := 0; + +input parmesan-generic; + +fet_endfont("parmesan"); + +end. + diff --git a/mf/parmesan13.mf b/mf/parmesan13.mf new file mode 100644 index 0000000000..765744646e --- /dev/null +++ b/mf/parmesan13.mf @@ -0,0 +1,16 @@ +% parmesan13.mf +% part of LilyPond's pretty-but-neat music font + +staffsize#:=13pt#; + +input feta-autometric; +fet_beginfont("parmesan", 13); + +test := 0; + +input parmesan-generic; + +fet_endfont("parmesan"); + +end. + diff --git a/mf/parmesan16.mf b/mf/parmesan16.mf new file mode 100644 index 0000000000..76abf22974 --- /dev/null +++ b/mf/parmesan16.mf @@ -0,0 +1,16 @@ +% parmesan16.mf +% part of LilyPond's pretty-but-neat music font + +staffsize#:=16pt#; + +input feta-autometric; +fet_beginfont("parmesan", 16); + +test := 0; + +input parmesan-generic; + +fet_endfont("parmesan"); + +end. + diff --git a/mf/parmesan19.mf b/mf/parmesan19.mf new file mode 100644 index 0000000000..48e6549f7f --- /dev/null +++ b/mf/parmesan19.mf @@ -0,0 +1,16 @@ +% parmesan19.mf +% part of LilyPond's pretty-but-neat music font + +staffsize#:=19pt#; + +input feta-autometric; +fet_beginfont("parmesan", 19); + +test := 0; + +input parmesan-generic; + +fet_endfont("parmesan"); + +end. + diff --git a/mf/parmesan20.mf b/mf/parmesan20.mf index 5846868a3b..8cda6b2a3a 100644 --- a/mf/parmesan20.mf +++ b/mf/parmesan20.mf @@ -1,17 +1,16 @@ -% feta20.mf +% parmesan20.mf % part of LilyPond's pretty-but-neat music font staffsize#:=20pt#; input feta-autometric; -fet_beginfont("feta", 20); +fet_beginfont("parmesan", 20); -% AFBLIJVEN! Gebruik feta-test16/20, anders verneuk je de distributie. test := 0; input parmesan-generic; -fet_endfont("feta"); +fet_endfont("parmesan"); end. diff --git a/mf/parmesan23.mf b/mf/parmesan23.mf new file mode 100644 index 0000000000..c6710ccad1 --- /dev/null +++ b/mf/parmesan23.mf @@ -0,0 +1,16 @@ +% parmesan23.mf +% part of LilyPond's pretty-but-neat music font + +staffsize#:=23pt#; + +input feta-autometric; +fet_beginfont("parmesan", 23); + +test := 0; + +input parmesan-generic; + +fet_endfont("parmesan"); + +end. + diff --git a/mf/parmesan26.mf b/mf/parmesan26.mf new file mode 100644 index 0000000000..33c9ae714c --- /dev/null +++ b/mf/parmesan26.mf @@ -0,0 +1,16 @@ +% parmesan26.mf +% part of LilyPond's pretty-but-neat music font + +staffsize#:=26pt#; + +input feta-autometric; +fet_beginfont("parmesan", 26); + +test := 0; + +input parmesan-generic; + +fet_endfont("parmesan"); + +end. + diff --git a/scm/font.scm b/scm/font.scm index ffdae61043..93fd56addf 100644 --- a/scm/font.scm +++ b/scm/font.scm @@ -18,8 +18,7 @@ ((eq? name 'font-series) 1) ((eq? name 'font-shape) 2) ((eq? name 'font-family) 3) - ((eq? name 'font-name) 4) - ((eq? name 'font-design-size) 5) + ((eq? name 'font-design-size) 4) (else (ly-warning "unknown font field name")) ) )) @@ -42,109 +41,118 @@ (define paper-style-sheet-alist '( - ((8 * * braces feta-braces 8) . "feta-braces8") - ((7 * * braces feta-braces 7) . "feta-braces7") - ((6 * * braces feta-braces 6) . "feta-braces6") - ((5 * * braces feta-braces 5) . "feta-braces5") - ((4 * * braces feta-braces 4) . "feta-braces4") - ((3 * * braces feta-braces 3) . "feta-braces3") - ((2 * * braces feta-braces 2) . "feta-braces2") - ((1 * * braces feta-braces 1) . "feta-braces1") - ((0 * * braces feta-braces 0) . "feta-braces0") + ((8 * * braces 8) . "feta-braces8") + ((7 * * braces 7) . "feta-braces7") + ((6 * * braces 6) . "feta-braces6") + ((5 * * braces 5) . "feta-braces5") + ((4 * * braces 4) . "feta-braces4") + ((3 * * braces 3) . "feta-braces3") + ((2 * * braces 2) . "feta-braces2") + ((1 * * braces 1) . "feta-braces1") + ((0 * * braces 0) . "feta-braces0") )) ;; FIXME: what about this comment?: ;; should really have name/pt size at the front of the list. ;; (also tried to vary the order of this list, with little effect) ;; -;; (font-relative-size font-series font-shape font-family font-name +;; (font-relative-size font-series font-shape font-family ;; font-design-size) (define paper20-style-sheet-alist '( ;; why are font file names strings, not symbols? - ((3 medium upright number feta-nummer 13) . "feta-nummer13") - ((2 medium upright number feta-nummer 13) . "feta-nummer13") - ((1 medium upright number feta-nummer 11) . "feta-nummer11") - ((0 medium upright number feta-nummer 10) . "feta-nummer10") - ((-1 medium upright number feta-nummer 8) . "feta-nummer8") - ((-2 medium upright number feta-nummer 7) . "feta-nummer7") - ((-3 medium upright number feta-nummer 6) . "feta-nummer6") - ((-4 medium upright number feta-nummer 5) . "feta-nummer5") - ((-5 medium upright number feta-nummer 4) . "feta-nummer4") - - ((4 medium upright roman cmr 17) . "cmr17") - ((3 medium upright roman cmr 17) . "cmr17") - ((2 medium upright roman cmr 12) . "cmr12") - ((1 medium upright roman cmr 12) . "cmr12") - ((0 medium upright roman cmr 10) . "cmr10") - ((-1 medium upright roman cmr 8) . "cmr8" ) - ((-2 medium upright roman cmr 7) . "cmr7" ) - ((-3 medium upright roman cmr 6) . "cmr6" ) - ((-4 medium upright roman cmr 5) . "cmr5" ) - ((-5 medium upright roman cmr 5) . "cmr5" ) - - ((3 medium italic roman cmti 12) . "cmti12") - ((2 medium italic roman cmti 12) . "cmti12") - ((1 medium italic roman cmti 12) . "cmti12") - ((0 medium italic roman cmti 10) . "cmti10") - ((-1 medium italic roman cmti 8) . "cmti8") - ((-2 medium italic roman cmti 7) . "cmti7") - ((-3 medium italic roman cmti 7) . "cmti7") - - ((2 bold upright roman cmbx 12) . "cmbx12") - ((1 bold upright roman cmbx 12) . "cmbx12") - ((0 bold upright roman cmbx 10) . "cmbx10") - ((-1 bold upright roman cmbx 8) . "cmbx8") - ((-2 bold upright roman cmbx 7) . "cmbx7") + ((3 medium upright number 13) . "feta-nummer13") + ((2 medium upright number 13) . "feta-nummer13") + ((1 medium upright number 11) . "feta-nummer11") + ((0 medium upright number 10) . "feta-nummer10") + ((-1 medium upright number 8) . "feta-nummer8") + ((-2 medium upright number 7) . "feta-nummer7") + ((-3 medium upright number 6) . "feta-nummer6") + ((-4 medium upright number 5) . "feta-nummer5") + ((-5 medium upright number 4) . "feta-nummer4") + + ((4 medium upright roman 17) . "cmr17") + ((3 medium upright roman 17) . "cmr17") + ((2 medium upright roman 12) . "cmr12") + ((1 medium upright roman 12) . "cmr12") + ((0 medium upright roman 10) . "cmr10") + ((-1 medium upright roman 8) . "cmr8" ) + ((-2 medium upright roman 7) . "cmr7" ) + ((-3 medium upright roman 6) . "cmr6" ) + ((-4 medium upright roman 5) . "cmr5" ) + ((-5 medium upright roman 5) . "cmr5" ) + + ((3 medium italic roman 12) . "cmti12") + ((2 medium italic roman 12) . "cmti12") + ((1 medium italic roman 12) . "cmti12") + ((0 medium italic roman 10) . "cmti10") + ((-1 medium italic roman 8) . "cmti8") + ((-2 medium italic roman 7) . "cmti7") + ((-3 medium italic roman 7) . "cmti7") + + ((2 bold upright roman 12) . "cmbx12") + ((1 bold upright roman 12) . "cmbx12") + ((0 bold upright roman 10) . "cmbx10") + ((-1 bold upright roman 8) . "cmbx8") + ((-2 bold upright roman 7) . "cmbx7") - ((2 bold italic roman cmbxti 12) . "cmbxti12") - ((1 bold italic roman cmbxti 12) . "cmbxti12") - ((0 bold italic roman cmbxti 10) . "cmbxti10") - ((-1 bold italic roman cmbxti 8) . "cmbxti8") - ((-2 bold italic roman cmbxti 7) . "cmbxti7") + ((2 bold italic roman 12) . "cmbxti12") + ((1 bold italic roman 12) . "cmbxti12") + ((0 bold italic roman 10) . "cmbxti10") + ((-1 bold italic roman 8) . "cmbxti8") + ((-2 bold italic roman 7) . "cmbxti7") - ((4 medium upright typewriter cmtt 17) . "cmtt17") - ((3 medium upright typewriter cmtt 17) . "cmtt17") - ((2 medium upright typewriter cmtt 12) . "cmtt12") - ((1 medium upright typewriter cmtt 12) . "cmtt12") - ((0 medium upright typewriter cmtt 10) . "cmtt10") - ((-1 medium upright typewriter cmtt 8) . "cmtt8" ) - ((-2 medium upright typewriter cmtt 7) . "cmtt7" ) - ((-3 medium upright typewriter cmtt 6) . "cmtt6" ) - ((-4 medium upright typewriter cmtt 5) . "cmtt5" ) - ((-5 medium upright typewriter cmtt 5) . "cmtt5" ) + ((4 medium upright typewriter 17) . "cmtt17") + ((3 medium upright typewriter 17) . "cmtt17") + ((2 medium upright typewriter 12) . "cmtt12") + ((1 medium upright typewriter 12) . "cmtt12") + ((0 medium upright typewriter 10) . "cmtt10") + ((-1 medium upright typewriter 8) . "cmtt8" ) + ((-2 medium upright typewriter 7) . "cmtt7" ) + ((-3 medium upright typewriter 6) . "cmtt6" ) + ((-4 medium upright typewriter 5) . "cmtt5" ) + ((-5 medium upright typewriter 5) . "cmtt5" ) - ((3 medium caps roman cmcsc 12) . "cmcsc12") - ((2 medium caps roman cmcsc 12) . "cmcsc12") - ((1 medium caps roman cmcsc 12) . "cmcsc12") - ((0 medium caps roman cmcsc 10) . "cmcsc10") - ((-1 medium caps roman cmcsc 8) . "cmcsc8") - ((-2 medium caps roman cmcsc 7) . "cmcsc7") - ((-3 medium caps roman cmcsc 7) . "cmcsc7") - - ((3 * * dynamic feta-din 19) . "feta-din19") - ((2 * * dynamic feta-din 19) . "feta-din19") - ((1 * * dynamic feta-din 17) . "feta-din17") - ((0 * * dynamic feta-din 14) . "feta-din14") - ((-1 * * dynamic feta-din 12) . "feta-din12") - ((-2 * * dynamic feta-din 9) . "feta-din9") - ((-3 * * dynamic feta-din 8) . "feta-din8") - ((-4 * * dynamic feta-din 7) . "feta-din7") - ((-5 * * dynamic feta-din 6) . "feta-din6") - - ((2 * * music feta 26) . "feta26") - ((1 * * music feta 23) . "feta23") - ((0 * * music feta 20) . "feta20") - ((-0.5 * * music feta 20) . "feta19") - ((-1 * * music feta 16) . "feta16") - ((-2 * * music feta 13) . "feta13") - ((-3 * * music feta 11) . "feta11") - ((-4 * * music feta 11) . "feta11") - - ((0 * * math msam 10) . "msam10") - ((-1 * * math msam 10) . "msam10") - ((-2 * * math msam 10) . "msam10") - ((-3 * * math msam 10) . "msam10") + ((3 medium caps roman 12) . "cmcsc12") + ((2 medium caps roman 12) . "cmcsc12") + ((1 medium caps roman 12) . "cmcsc12") + ((0 medium caps roman 10) . "cmcsc10") + ((-1 medium caps roman 8) . "cmcsc8") + ((-2 medium caps roman 7) . "cmcsc7") + ((-3 medium caps roman 7) . "cmcsc7") + + ((3 * * dynamic 19) . "feta-din19") + ((2 * * dynamic 19) . "feta-din19") + ((1 * * dynamic 17) . "feta-din17") + ((0 * * dynamic 14) . "feta-din14") + ((-1 * * dynamic 12) . "feta-din12") + ((-2 * * dynamic 9) . "feta-din9") + ((-3 * * dynamic 8) . "feta-din8") + ((-4 * * dynamic 7) . "feta-din7") + ((-5 * * dynamic 6) . "feta-din6") + + ((2 * * music 26) . "feta26") + ((1 * * music 23) . "feta23") + ((0 * * music 20) . "feta20") + ((-0.5 * * music 20) . "feta19") + ((-1 * * music 16) . "feta16") + ((-2 * * music 13) . "feta13") + ((-3 * * music 11) . "feta11") + ((-4 * * music 11) . "feta11") + + ((2 * * ancient 26) . "parmesan26") + ((1 * * ancient 23) . "parmesan23") + ((0 * * ancient 20) . "parmesan20") + ((-0.5 * * ancient 20) . "parmesan19") + ((-1 * * ancient 16) . "parmesan16") + ((-2 * * ancient 13) . "parmesan13") + ((-3 * * ancient 11) . "parmesan11") + ((-4 * * ancient 11) . "parmesan11") + + ((0 * * math 10) . "msam10") + ((-1 * * math 10) . "msam10") + ((-2 * * math 10) . "msam10") + ((-3 * * math 10) . "msam10") )) ;; @@ -316,7 +324,7 @@ and warn if the selected font is not unique. (define (properties-to-font-name fonts properties-alist-list) (let* ( ;; change order to change priorities of qualifiers. - (q-order '(font-name font-family font-series font-shape + (q-order '(font-family font-series font-shape font-design-size font-relative-size)) (rawqualifiers (map (lambda (x) (chain-assoc x properties-alist-list)) diff --git a/scm/grob-description.scm b/scm/grob-description.scm index bc59224334..7076f11149 100644 --- a/scm/grob-description.scm +++ b/scm/grob-description.scm @@ -171,6 +171,7 @@ (visibility-lambda . ,end-of-line-visible) (style . vaticana) (Y-offset-callbacks . (,Staff_symbol_referencer::callback)) + (font-family . music) (meta . ,(grob-description custos-interface staff-symbol-referencer-interface break-aligned-interface) ) )) @@ -625,6 +626,7 @@ (X-offset-callbacks . (,Stem::off_callback)) (X-extent-callback . ,Stem::dim_callback) (Y-extent-callback . ,Stem::height) + (font-family . music) (meta . ,(grob-description stem-interface font-interface)) )) diff --git a/scm/grob-property-description.scm b/scm/grob-property-description.scm index 22249189e3..173eccbbf3 100644 --- a/scm/grob-property-description.scm +++ b/scm/grob-property-description.scm @@ -245,7 +245,6 @@ FIXME: also pair? (cons LEFT RIGHT) (grob-property-description 'no-spacing-rods boolean? "read from grobs: boolean that makes Separation_item ignore this item (MOVE ME TO ITEM).") (grob-property-description 'no-stem-extend boolean? "should stem not be extended to middle staff line?.") (grob-property-description 'non-default boolean? "not set because of existence of a bar?.") -(grob-property-description 'note-character string? "character to print in a note head.") (grob-property-description 'note-width number? "unit for horizontal translation, measured in staff-space.") (grob-property-description 'note-heads list? "List of note head grobs") (grob-property-description 'number-gap number? "size of the gap for tohe number in a tuplet.") diff --git a/scm/interface-description.scm b/scm/interface-description.scm index 930a7dcc8c..ec1a11d952 100644 --- a/scm/interface-description.scm +++ b/scm/interface-description.scm @@ -231,7 +231,7 @@ object." (lily-interface 'note-head-interface "Note head" - '( style stem-attachment-function note-character )) + '( style stem-attachment-function )) (lily-interface diff --git a/scm/translator-property-description.scm b/scm/translator-property-description.scm index 93aabd8cdd..4e5c23189a 100644 --- a/scm/translator-property-description.scm +++ b/scm/translator-property-description.scm @@ -193,9 +193,6 @@ Do nothing. @end table ") (translator-property-description 'decrescendoSpanner symbol? "Type of spanner to be used for decrescendi. One of: @samp{hairpin}, @samp{line}, @samp{dashed-line}, @samp{dotted-line}. If unset, hairpin type is used.") - -(translator-property-description 'easyPlay boolean? "Copy note names into note head grob property") - (translator-property-description 'explicitClefVisibility procedure? "visibility-lambda function for clef changes.") (translator-property-description 'explicitKeySignatureVisibility diff --git a/stepmake/stepmake/metafont-rules.make b/stepmake/stepmake/metafont-rules.make index eb2e55b1ab..3c750c7bfe 100644 --- a/stepmake/stepmake/metafont-rules.make +++ b/stepmake/stepmake/metafont-rules.make @@ -27,16 +27,12 @@ $(outdir)/%.$(XPM_RESOLUTION)pk: $(outdir)/%.$(XPM_RESOLUTION)gf gftopk $< $@ -$(outdir)/%.pfb: - pktrace $(basename $(@F)) - mv $(basename $(@F)).pfb $(outdir) - - - - +$(outdir)/%.pfa: %.mf + pktrace --simplify --keep-trying $(basename $(@F)) + mv $(basename $(@F)).pfa $(outdir) -$(outdir)/%.pfb: - pktrace $(basename $(@F)) +$(outdir)/%.pfb: %.mf + pktrace --simplify --keep-trying $(basename $(@F)) mv $(basename $(@F)).pfb $(outdir) #%.afm: