From: Han-Wen Nienhuys Date: Tue, 14 Oct 1997 22:39:05 +0000 (+0200) Subject: release: 0.1.23 X-Git-Tag: release/0.1.23 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=460999e232e2126654185e5f5675f72cea495b13;p=lilypond.git release: 0.1.23 --- diff --git a/AUTHORS.text b/AUTHORS.text index 45db5d4374..22eb7acff0 100644 --- a/AUTHORS.text +++ b/AUTHORS.text @@ -61,6 +61,6 @@ CCCCOOOONNNNTTTTRRRRIIIIBBBBUUUUTTTTOOOORRRRSS -10/Oct/97 LilyPond 0.1.22 1 +10/Oct/97 LilyPond 0.1.23 1 diff --git a/Documentation/lilypond.pod b/Documentation/lilypond.pod index 6d4a627446..0e8f4e945f 100644 --- a/Documentation/lilypond.pod +++ b/Documentation/lilypond.pod @@ -263,7 +263,7 @@ If you have bugreports, you should send them to this list. If you want to read all bugreports, you should subscribe to this list. To subscribe: send mail with subject "subscribe" to bug-gnu-music-request@vuse.vanderbilt.edu - + =item gnu-music-discuss@vuse.vanderbilt.edu, For discussions concerning the GNU Music project, to subscribe: send diff --git a/INSTALL.text b/INSTALL.text index 202a89efff..215a2e2509 100644 --- a/INSTALL.text +++ b/INSTALL.text @@ -61,7 +61,7 @@ RRRRUUUUNNNNNNNNIIIINNNNGGGG -8/Oct/97 LilyPond 0.1.22 1 +8/Oct/97 LilyPond 0.1.23 1 @@ -127,7 +127,7 @@ CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRIIIINNNNGGGG a -8/Oct/97 LilyPond 0.1.22 2 +8/Oct/97 LilyPond 0.1.23 2 @@ -193,7 +193,7 @@ INSTALL(1) LilyPond documentation INSTALL(1) -8/Oct/97 LilyPond 0.1.22 3 +8/Oct/97 LilyPond 0.1.23 3 @@ -259,7 +259,7 @@ IIIINNNNSSSSTTTTAAAALLLLLLLLIIIINNNNGGGG -8/Oct/97 LilyPond 0.1.22 4 +8/Oct/97 LilyPond 0.1.23 4 @@ -325,7 +325,7 @@ RRRREEEEDDDDHHHHAAAATTTT LLLLIIIINNNNUUUUXXXX -8/Oct/97 LilyPond 0.1.22 5 +8/Oct/97 LilyPond 0.1.23 5 @@ -391,6 +391,6 @@ AAAAUUUUTTTTHHHHOOOORRRRSSSS -8/Oct/97 LilyPond 0.1.22 6 +8/Oct/97 LilyPond 0.1.23 6 diff --git a/NEWS b/NEWS index f5329244d3..e73a035807 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,11 @@ -pl 22.jcn1 - - redo of quarter rest - - fixes of 8-128 rests +pl 23 + - feta changes: 1/4 rest, flat, bf 8-128 rest + - bf: cadenza + - bf: scripts + - bf: rest-collision + - bf: meter placement + - junked cpgento.sh +********* pl 22 - bf: lyric 's- Zondags @@ -15,6 +20,7 @@ pl 22 - moved staff to centerline == 0; ******** + pl 21 - shrinking uses more energy than stretching - check IO error on writing (disk full?) diff --git a/TODO b/TODO index e8416d1003..b8615af6f3 100644 --- a/TODO +++ b/TODO @@ -6,9 +6,16 @@ done, or is an idea that I want to think about Most of the items are marked in the code as well, with full explanation. grep for TODO and ugh/ugr - * todo key-sig placement. - - * put errorlevel in Input + * LILYSOURCEDIR + + * spurious "Junk beam" warnings + + * standchen: warning: Excentric column (Meter dims?) + + + * optimal pagebreaking. + + * put errorlevel in Input class * AFM for font input? @@ -63,6 +70,7 @@ PROJECTS * Spring_spacer: - write a faster Spring_spacer ( without matrices if possible ) + - use straight QP to find minimal "fitting force" - relate energybound to linelen unitspace fontsize etc. - used fixed point fp diff --git a/VERSION b/VERSION index 1ceb51ba39..b337cd5d37 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ TOPLEVEL_MAJOR_VERSION = 0 TOPLEVEL_MINOR_VERSION = 1 -TOPLEVEL_PATCH_LEVEL = 22 -TOPLEVEL_MY_PATCH_LEVEL = .jcn1 +TOPLEVEL_PATCH_LEVEL = 23 +TOPLEVEL_MY_PATCH_LEVEL = # use the above to send patches, always empty for released version: diff --git a/bin/cpgento.sh b/bin/cpgento.sh deleted file mode 100644 index 74f77787db..0000000000 --- a/bin/cpgento.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# cpgento -# - -if test $# -ne 1 -then - echo "Usage: " - echo " cpgento LOCATION, e.g.:"; - echo - echo " cpgento /mnt/aix/usr/src/lily" - echo " CP=rcp cpgento fred@pcnov095.win.tue.nl:music/lily" - exit 1 -fi - -MAKE=${MAKE:-make} -CP=${CP:-cp} - -genlily="out/parser.hh out/parser.cc out/lexer.cc" -echo generating $genlily ... -$MAKE -C lily $genlily - -genmi2mu="out/midi-parser.hh out/midi-parser.cc out/midi-lexer.cc" -echo generating $genmi2mu ... -$MAKE -C mi2mu $genmi2mu - -lilydir=`pwd | sed "s/.*\///"` -todir=$1/$lilydir -echo "copying $lilydir -> $todir" - -cpto() { - name=$1 - tostuff=$todir/$name/out - genstuff="$2" - if [ "$CP" = "cp" -a \! -d $tostuff ] - then - echo mkdir -p $tostuff - mkdir -p $tostuff - fi - echo $CP $genstuff $tostuff - (cd $name; $CP $genstuff $tostuff) -} - -cpto lily "$genlily" -cpto mi2mu "$genmi2mu" - -# if you cannot gen the above, you-ll probably want: -flexlexerh=/usr/include/FlexLexer.h -cpto lib $flexlexerh - diff --git a/bin/lily-python.py b/bin/lily-python.py new file mode 100644 index 0000000000..6f85149b50 --- /dev/null +++ b/bin/lily-python.py @@ -0,0 +1,63 @@ +#!@PYTHON@ + +# +# lily-python.py -- implement general LilyPond-wide python stuff +# +# source file of the GNU LilyPond music typesetter +# +# (c) 1997 Han-Wen Nienhuys +# + +import posix +import pwd +import regex +import regsub +import string +import sys +import os +import getopt + + + + + +make_assign_re = regex.compile('^\([A-Z_]*\) *= *\(.*\)$') + +def version_str_tuple(file): + lines = file.readlines() + + mi = pa = mp = mj = '' + + for l in lines: + if make_assign_re.search(l) <> -1: + nm = make_assign_re.group(1) + val = make_assign_re.group(2) + if nm == 'TOPLEVEL_MAJOR_VERSION': + mj = val + elif nm == 'TOPLEVEL_MINOR_VERSION': + mi = val + elif nm == 'TOPLEVEL_PATCH_LEVEL': + pa = val + elif nm == 'TOPLEVEL_MY_PATCH_LEVEL': + mp = val + return (mj,mi,pa,mp) + +class Lilydirs: + def __init__(self): + try: + self.topdir = os.environ['LILYPOND_SOURCEDIR'] + '/' + except IndexError: + self.topdir = os.environ['HOME'] + 'musix/current' + + self.release_dir = self.topdir + '../releases/' + self.patch_dir = self.topdir + '../patches/' + + def version_str_tuple(self): + f = open (self.topdir + 'VERSION') + v = version_str_tuple(f) + f.close () + return v + +lilydirs = Lilydirs() + +print lilydirs.version_str_tuple() diff --git a/bin/make-docxx.sh b/bin/make-docxx.sh index dc60f80f1c..b74572e399 100644 --- a/bin/make-docxx.sh +++ b/bin/make-docxx.sh @@ -1,5 +1,8 @@ #!/bin/sh - -p1=`find ./ -name '*.hh' |egrep -v out/` -p2=`find ./ -name '*.cc' |egrep -v out/` +if [ x$LILYTOP = x ]; +then + LILYTOP = . +fi +p1=`find $LILYTOP -name '*.hh' |egrep -v out/` +p2=`find $LILYTOP -name '*.cc' |egrep -v out/` doc++ -d out/ -S -k -p $p1 $p2 diff --git a/bin/make-website.pl b/bin/make-website.pl index 1d690e23ad..3ac7f7bf1f 100644 --- a/bin/make-website.pl +++ b/bin/make-website.pl @@ -295,7 +295,7 @@ sub docxx_update $ban =~ s!index.html!../index.html!g; print BANNER $ban; close BANNER; - my_system "BANNEROPT=\"-B /tmp/lilybanner.html\" $depth/bin/out/make-docxx"; + my_system("BANNEROPT=\"-B /tmp/lilybanner.html\" $depth/bin/out/make-docxx"); } sub do_tar @@ -335,7 +335,7 @@ sub main chdir ("out"); $ENV{"TEXINPUTS"} .= ":$depth/input/:"; $ENV{"LILYINCLUDE"} = "$depth/input/"; - + $ENV{"LILYTOP"} = $depth; gen_html; copy_files; diff --git a/init/font-en-tja16.ly b/init/font-en-tja16.ly index 4d27f2f750..037eee9b66 100644 --- a/init/font-en-tja16.ly +++ b/init/font-en-tja16.ly @@ -1,5 +1,5 @@ % generated automatically by mf-to-table.py version 0.4 -% on Fri Oct 10 21:22:38 1997 +% on Tue Oct 14 23:56:57 1997 % Do not edit % input from out/font-en-tja16.log % name=\symboltables { @@ -8,18 +8,18 @@ "1" "\\halfrest" -0.00\pt 6.00\pt -0.00\pt 2.50\pt "0o" "\\outsidewholerest" -2.50\pt 8.50\pt 1.50\pt 4.00\pt "1o" "\\outsidehalfrest" -2.50\pt 8.50\pt -0.00\pt 2.50\pt - "2" "\\quartrest" -0.00\pt 4.00\pt 3.00\pt 14.00\pt + "2" "\\quartrest" -0.00\pt 4.32\pt 3.00\pt 14.40\pt "3" "\\eighthrest" -0.00\pt 5.33\pt 4.00\pt 11.47\pt - "4" "\\sixteenthrest" -0.00\pt 5.33\pt -0.00\pt 11.47\pt - "5" "\\thirtysecondrest" -0.00\pt 5.33\pt -0.00\pt 15.47\pt - "6" "\\sixtyfourthrest" -0.00\pt 5.33\pt -0.00\pt 19.47\pt - "7" "\\hundredtwentyeighthrest" -0.00\pt 5.33\pt -0.00\pt 23.47\pt + "4" "\\sixteenthrest" -0.00\pt 6.23\pt -0.00\pt 11.47\pt + "5" "\\thirtysecondrest" -0.00\pt 7.03\pt -0.00\pt 15.47\pt + "6" "\\sixtyfourthrest" -0.00\pt 7.53\pt -0.00\pt 19.47\pt + "7" "\\hundredtwentyeighthrest" -0.00\pt 8.38\pt -0.00\pt 23.47\pt } "accidentals" = \table { "1" "\\sharp" -0.00\pt 4.40\pt -6.00\pt 6.00\pt "0" "\\natural" -0.00\pt 2.67\pt -6.00\pt 6.00\pt - "-1" "\\flat" -0.00\pt 3.00\pt -2.00\pt 8.00\pt - "-2" "\\flatflat" -0.00\pt 6.00\pt -2.00\pt 8.00\pt + "-1" "\\flat" -0.48\pt 3.20\pt -2.00\pt 8.00\pt + "-2" "\\flatflat" -0.48\pt 5.80\pt -2.00\pt 8.00\pt "2" "\\sharpsharp" -0.00\pt 4.00\pt -2.00\pt 2.00\pt } "dots" = \table { @@ -34,7 +34,7 @@ } "scripts" = \table { "ufermata" "\\ufermata" -5.30\pt 5.30\pt -0.30\pt 5.80\pt - "dfermata" "\\dfermata" -5.30\pt 5.30\pt -5.80\pt 0.00\pt + "dfermata" "\\dfermata" -5.30\pt 5.30\pt -5.80\pt 0.30\pt "sforzato" "\\sforzatoaccent" -3.60\pt 3.60\pt -2.00\pt 2.00\pt "staccato" "\\staccato" -0.60\pt 0.60\pt -0.60\pt 0.60\pt "ustaccatissimo" "\\ustaccatissimo" -0.80\pt 0.80\pt -0.20\pt 4.00\pt @@ -52,7 +52,7 @@ "pedaltoe" "\\pedaltoe" -2.00\pt 2.00\pt -0.00\pt 6.00\pt } "floogbars" = \table { - "3u" "\\eighthflag" -0.20\pt 4.10\pt -12.77\pt 0.20\pt - "3d" "\\deighthflag" -0.20\pt 4.10\pt -0.20\pt 12.77\pt + "3u" "\\eighthflag" -0.20\pt 4.18\pt -12.77\pt 0.20\pt + "3d" "\\deighthflag" -0.20\pt 4.18\pt -0.20\pt 12.77\pt } % } % $name diff --git a/init/font-en-tja20.ly b/init/font-en-tja20.ly index 63af39049e..716f6bbc76 100644 --- a/init/font-en-tja20.ly +++ b/init/font-en-tja20.ly @@ -1,5 +1,5 @@ % generated automatically by mf-to-table.py version 0.4 -% on Fri Oct 10 21:22:44 1997 +% on Tue Oct 14 23:57:04 1997 % Do not edit % input from out/font-en-tja20.log % name=\symboltables { @@ -8,18 +8,18 @@ "1" "\\halfrest" -0.00\pt 7.50\pt -0.00\pt 3.13\pt "0o" "\\outsidewholerest" -3.13\pt 10.62\pt 1.88\pt 5.00\pt "1o" "\\outsidehalfrest" -3.13\pt 10.62\pt -0.00\pt 3.13\pt - "2" "\\quartrest" -0.00\pt 5.00\pt 3.75\pt 17.50\pt + "2" "\\quartrest" -0.00\pt 5.40\pt 3.75\pt 18.00\pt "3" "\\eighthrest" -0.00\pt 6.67\pt 5.00\pt 14.33\pt - "4" "\\sixteenthrest" -0.00\pt 6.67\pt -0.00\pt 14.33\pt - "5" "\\thirtysecondrest" -0.00\pt 6.67\pt -0.00\pt 19.33\pt - "6" "\\sixtyfourthrest" -0.00\pt 6.67\pt -0.00\pt 24.33\pt - "7" "\\hundredtwentyeighthrest" -0.00\pt 6.67\pt -0.00\pt 29.33\pt + "4" "\\sixteenthrest" -0.00\pt 7.79\pt -0.00\pt 14.33\pt + "5" "\\thirtysecondrest" -0.00\pt 8.78\pt -0.00\pt 19.33\pt + "6" "\\sixtyfourthrest" -0.00\pt 9.41\pt -0.00\pt 24.33\pt + "7" "\\hundredtwentyeighthrest" -0.00\pt 10.47\pt -0.00\pt 29.33\pt } "accidentals" = \table { "1" "\\sharp" -0.00\pt 5.50\pt -7.50\pt 7.50\pt "0" "\\natural" -0.00\pt 3.33\pt -7.50\pt 7.50\pt - "-1" "\\flat" -0.00\pt 3.75\pt -2.50\pt 10.00\pt - "-2" "\\flatflat" -0.00\pt 7.50\pt -2.50\pt 10.00\pt + "-1" "\\flat" -0.60\pt 4.00\pt -2.50\pt 10.00\pt + "-2" "\\flatflat" -0.60\pt 7.25\pt -2.50\pt 10.00\pt "2" "\\sharpsharp" -0.00\pt 5.00\pt -2.50\pt 2.50\pt } "dots" = \table { @@ -34,7 +34,7 @@ } "scripts" = \table { "ufermata" "\\ufermata" -6.63\pt 6.63\pt -0.38\pt 7.25\pt - "dfermata" "\\dfermata" -6.63\pt 6.63\pt -7.25\pt 0.00\pt + "dfermata" "\\dfermata" -6.63\pt 6.63\pt -7.25\pt 0.38\pt "sforzato" "\\sforzatoaccent" -4.50\pt 4.50\pt -2.50\pt 2.50\pt "staccato" "\\staccato" -0.75\pt 0.75\pt -0.75\pt 0.75\pt "ustaccatissimo" "\\ustaccatissimo" -1.00\pt 1.00\pt -0.20\pt 5.00\pt @@ -52,7 +52,7 @@ "pedaltoe" "\\pedaltoe" -2.50\pt 2.50\pt -0.00\pt 7.50\pt } "floogbars" = \table { - "3u" "\\eighthflag" -0.25\pt 5.13\pt -15.91\pt 0.25\pt - "3d" "\\deighthflag" -0.25\pt 5.13\pt -0.25\pt 15.91\pt + "3u" "\\eighthflag" -0.25\pt 5.23\pt -15.91\pt 0.25\pt + "3d" "\\deighthflag" -0.25\pt 5.23\pt -0.25\pt 15.91\pt } % } % $name diff --git a/input/cadenza.ly b/input/cadenza.ly index e7538272f9..2a52afd4bf 100644 --- a/input/cadenza.ly +++ b/input/cadenza.ly @@ -31,28 +31,28 @@ cad = \melodic { \bar "empty"; c [c_"rubato" e g c'] \octave c''; - e4. e [g ~ f_"rit" e d] + e4. e [g () f_"rit" e d] \duration 16; - dis4~ e4 + dis4() e4 \bar "" ; r8 [c d] [e f g gis] \duration 4; - a-> 'f~ 'e g - f-> 'd~ 'cis e + a-> 'f() 'e g + f-> 'd() 'cis e \duration 8; d4^\fermata \bar "" ; r8 'a ['b cis] \duration 16; [d cis d e] - f4~ [f e d c] + f4() [f e d c] 'b4-\turn \octave c'; [2/3 d'8 c'8 a8]1/1 g2 \bar "" ; [g c e g] [c' e g c']\octave c''; - [e 'g c e] g4^\fermata %~ % BUG! + [e 'g c e] g4^\fermata \bar "" ; [g8.(_"a tempo" e g8. )e] a4. g8 [f8 e8 d8 c8] diff --git a/lily/VERSION b/lily/VERSION index c767ffade7..287c16e672 100644 --- a/lily/VERSION +++ b/lily/VERSION @@ -1,6 +1,6 @@ MAJOR_VERSION = 0 MINOR_VERSION = 1 -PATCH_LEVEL = 22 +PATCH_LEVEL = 23 # use to send patches, always empty for released version: # include separator: ".postfix", "-pl" makes rpm barf diff --git a/lily/bar.cc b/lily/bar.cc index 8fb5728314..ac7e0f19a2 100644 --- a/lily/bar.cc +++ b/lily/bar.cc @@ -27,7 +27,9 @@ IMPLEMENT_IS_TYPE_B1(Bar,Item); void Bar::do_print() const { +#ifndef NPRINT DOUT << type_str_; +#endif } Molecule* diff --git a/lily/lookup.cc b/lily/lookup.cc index 38e31d9000..333072ad2f 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -216,11 +216,8 @@ Lookup::linestaff (int lines, Real interline_f, Real wid) const Atom Lookup::meter (Array a) const { - Atom s; - s.dim_.x() = Interval (0 PT, 10 PT); - s.dim_.y() = Interval (0, 20 PT); // todo - String src = (*symtables_)("param")->lookup ("meter").tex_; - s.tex_ = substitute_args (src,a); + Atom s((*symtables_)("param")->lookup ("meter")); + s.tex_ = substitute_args (s.tex_,a); return s; } diff --git a/lily/rest-collision.cc b/lily/rest-collision.cc index 6c50682722..0be9090d2c 100644 --- a/lily/rest-collision.cc +++ b/lily/rest-collision.cc @@ -94,15 +94,10 @@ Rest_collision::do_pre_processing() // meisjes met jongetjes else { -#if 0 // breendet: rests go always under - // geen gemug, trug op je rug - int dir_i = -1; - rest_l_arr_[0]->translate_rests (dir_i * 3); -#else // int dir_i = - ncol_l_arr_[0]->dir_; int dir_i = rest_l_arr_[0]->dir_; // hope it's 4: if it works->doco - int midpos = 4; + int midpos = 0; // minimum move int minpos = 4; @@ -121,7 +116,6 @@ Rest_collision::do_pre_processing() (ncol_l_arr_[i]->head_l_arr_[j]->position_i_ -midpos) + sep_i; } rest_l_arr_[0]->translate_rests (dir_i * minpos); -#endif } } diff --git a/lily/staff-side.cc b/lily/staff-side.cc index eba7d09a13..28df70b255 100644 --- a/lily/staff-side.cc +++ b/lily/staff-side.cc @@ -75,7 +75,7 @@ Staff_side::get_position_i() const Real inter_f = paper()-> internote_f (); if (!inside_staff_b_) { - y = (staff_sym_l_) ? dir_ * (staff_sym_l_->steps_i() + 2) : -2; + y = (staff_sym_l_) ? dir_ * (staff_sym_l_->steps_i()/2 + 2) : -2; y *=inter_f; Interval v= support_height(); diff --git a/make/lelievijver.lsm b/make/lelievijver.lsm index 2e800615f3..0ea5e5d258 100644 --- a/make/lelievijver.lsm +++ b/make/lelievijver.lsm @@ -1,7 +1,7 @@ Begin3 Titel: LilyPond -Versie: 0.1.22.jcn1 -Inschrijf datum: 13OCT97 +Versie: 0.1.23 +Inschrijf datum: 15OCT97 Beschrijving: LilyPond is de muziek typesetter van het GNU Project. Het programma genereert muziek in zichtbare of hoorbare vorm uit uit een muzikale definitie file: @@ -16,8 +16,8 @@ Auteur: hanwen@stack.nl (Han-Wen Nienhuys) jan@digicash.com (Jan Nieuwenhuizen) Onderhouden door: hanwen@stack.nl (Han-Wen Nienhuys) Voornaamste plek: sunsite.unc.edu /pub/Linux/apps - 395k lilypond-0.1.22.jcn1.tar.gz + 395k lilypond-0.1.23.tar.gz Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/ - 395k lilypond-0.1.22.jcn1.tar.gz + 395k lilypond-0.1.23.tar.gz Copi"eer politie: GPL End diff --git a/make/lilypond.lsm b/make/lilypond.lsm index 9077acff9c..d38fbdc838 100644 --- a/make/lilypond.lsm +++ b/make/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 0.1.22 -Entered-date: 10OCT97 +Version: 0.1.23 +Entered-date: 15OCT97 Description: LilyPond is the GNU Project music typesetter. The program generates visual or auditive output from a music definition file: it can typeset formatted sheet music @@ -14,8 +14,8 @@ Author: hanwen@stack.nl (Han-Wen Nienhuys) jan@digicash.com (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps - 395k lilypond-0.1.22.tar.gz + 395k lilypond-0.1.23.tar.gz Original-site: pcnov095.win.tue.nl /pub/lilypond/ - 395k lilypond-0.1.22.tar.gz + 395k lilypond-0.1.23.tar.gz Copying-policy: GPL End diff --git a/make/lilypond.spec b/make/lilypond.spec index 296e2fd7a5..ee21c49a31 100644 --- a/make/lilypond.spec +++ b/make/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 0.1.22 +Version: 0.1.23 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.22.tar.gz +Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.23.tar.gz Summary: A preprocessor to make TeX typeset music. URL: http://www.stack.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys @@ -11,11 +11,13 @@ Icon: lelie_icon.gif Buildroot: /tmp/lilypond-install %description -LilyPond is the GNU Project music typesetter. This program converts -music definition files into visual or auditive output: it can typeset -formatted sheet music to a TeX file and and (mechanical) performances -to MIDI files. Features include multiple staffs, meters, clefs, keys, -lyrics, versatile input-language, cadenzas beams, slurs, triplets. +LilyPond is the GNU Project music typesetter. The program +generates visual or auditive output from a music +definition file: it can typeset formatted sheet music +to a TeX file and play (mechanical) performances to a +MIDI file. Features include multiple staffs, meters, +clefs, keys, lyrics, versatile input-language, +cadenzas, beams, slurs, triplets. %prep %setup diff --git a/mf/TODO b/mf/TODO index 1c9189e7d2..d2ef7043d7 100644 --- a/mf/TODO +++ b/mf/TODO @@ -2,10 +2,12 @@ - design macro for penstroke with rounded endings - y-refpoint for rests should be the 4th staffline (gclef: b') - more symbols + * ledgerlines + * stem-notehead attachments. * flags * clefs * some scripts: - - piano pedals, + * piano pedals, * braces. * trills * maxima notehead @@ -14,8 +16,6 @@ - include important spacing dims in fetalog - lilyrules.mf for different rules (lines) ? - - check out Adobe Sonata/Petrucci font layout. They are the -standard for Music fonts - hack up GS or the mf-gray font to do round pixels iso. square pixels. (Printers don't do square pixels.) diff --git a/mf/dimen.tex b/mf/dimen.tex index 928a0b7602..44c59a4ef4 100644 --- a/mf/dimen.tex +++ b/mf/dimen.tex @@ -9,9 +9,8 @@ \font\slurs=xslhd16 \font\specfont=musixspx \font\egler=opus16 -%\def\thefont{\egler} +\def\thefont{\egler} %\def\thefont{\specfont} -\def\thefont{\fet} \def\mb#1{{\thefont\char#1}} diff --git a/mf/feta-banier.mf b/mf/feta-banier.mf index 5dad6a8216..a7995d6ee1 100644 --- a/mf/feta-banier.mf +++ b/mf/feta-banier.mf @@ -18,7 +18,7 @@ hip_depth# = 15/7 interline#; hip_width# = 7/8 interline# + hip_thickness# /2 + stemthickness#/2; foot_depth# = flare# + 15/7 interline#; -foot_width# = .885 hip_width#; +foot_width# = .8 hip_width#; define_pixels(flare, diff --git a/mf/feta-bolletjes.mf b/mf/feta-bolletjes.mf index f99fed2e69..d558cf751a 100644 --- a/mf/feta-bolletjes.mf +++ b/mf/feta-bolletjes.mf @@ -3,7 +3,7 @@ % most beautiful noteheads are pronounced, not circular, % and not even symmetric. -% These examples are inspired by [Wanske] [see literature list] +% These examples are inspired by [Wanske], see literature list fet_begingroup("balls"); @@ -17,7 +17,7 @@ define_pixels(noteheight); def draw_brevis = save beamheight, head_width; save holeheight, stem_width; - save serif_size; + save serif_size, serif_protrude; head_width# = 2 interline#; holeheight = 3 stafflinethickness; @@ -29,7 +29,7 @@ def draw_brevis = 2 beamheight + holeheight = noteheight; serif_size = (holeheight - stafflinethickness)/2; - + serif_protrude = 1.5 serif_size; penpos1(stem_width, 0); penpos2(stem_width, 0); penpos3(beamheight, 90); @@ -41,7 +41,7 @@ def draw_brevis = z3r = z2r + serif_size *(1,-1); y4r = y3r; x4r = head_width/2; - z5l = z3l + serif_size * (-1,-1); + z5l = z3l + (-serif_size, -serif_protrude); penlabels(1,2,3,4, 5); fill z1r -- z1l -- z5r{down} .. z5l{up} .. z3l{right} diff --git a/mf/feta-macros.mf b/mf/feta-macros.mf index e50ef98781..01a314f985 100644 --- a/mf/feta-macros.mf +++ b/mf/feta-macros.mf @@ -87,6 +87,11 @@ enddef; % drawing % +def simple_serif(expr p,q, a)= + p{dir(angle(q-p) -a)} .. q{ - dir(angle(p -q) + a)} +enddef; +% + % a: x diameter % b: y diameter % err_x: drift of y axis at top diff --git a/mf/feta-params.mf b/mf/feta-params.mf index 51ec99126a..1ae189f1fa 100644 --- a/mf/feta-params.mf +++ b/mf/feta-params.mf @@ -11,7 +11,7 @@ interline#:=staffsize#/(stafflines-1); stafflinethickness#:=0.1 interline#; stemthickness# := stafflinethickness#; -ledgerlinethickness# := 1.5 stafflinethickness#; +ledgerlinethickness# := 2 stafflinethickness#; define_pixels(interline, stemthickness); define_pixels(stafflinethickness,ledgerlinethickness); @@ -32,6 +32,8 @@ overdone_heads = 0.0; % % this is not a meta variable: it is related to absolute sizes. % +% According to [Wanske], only outside corners should be round +% numeric blot_diameter; blot_diameter# = .4pt#; define_pixels(blot_diameter); diff --git a/mf/feta-schrift.mf b/mf/feta-schrift.mf index 05202ee229..8c9d7d795d 100644 --- a/mf/feta-schrift.mf +++ b/mf/feta-schrift.mf @@ -49,9 +49,7 @@ fet_endchar; fet_beginchar("fermata down", "dfermata", "dfermata") draw_fermata; - currentpicture:=currentpicture yscaled -1 ; - set_char_box(w#, w#, h#, 0); - + y_mirror_char; fet_endchar; @@ -64,16 +62,17 @@ fet_beginchar("> accent", "sforzato", "sforzatoaccent") save thickness, diminish; thickness = 2 stafflinethickness; + pickup pencircle scaled thickness; % prevent blobs at crossing lines diminish = .75; - y1 + thickness/2 = h; - x1 = -b; - x2 = w; + top y1 = h; + lft x1 = -b; + rt x2 = w; y2 = .25 thickness* diminish; - z4 = (w,0); + rt z4 = (w,0); x3 =0; z3 = whatever [z1, z4]; @@ -81,10 +80,14 @@ fet_beginchar("> accent", "sforzato", "sforzatoaccent") penpos1(thickness, 90); penpos3(thickness, 90); - penstroke z1e .. z3e .. z2e; - penstroke (z1e .. z3e .. z2e) yscaled -1; + draw z1 .. z3; + draw (z1 .. z3) yscaled -1; + draw z4; + penstroke z3e .. z2e; + penstroke (z3e .. z2e) yscaled -1; penlabels(1,2,3); + labels(4); fet_endchar; fet_beginchar("staccato dot", "staccato", "staccato") @@ -102,7 +105,7 @@ def draw_staccatissimo = radius# = 2 stafflinethickness#; define_pixels(radius, height); - draw_brush((0,0), blot_diameter, (0, height),2 radius); + draw_brush((0,0), stafflinethickness, (0, height),2 radius); set_char_box(radius#,radius#, blot_diameter#/2, height# + radius#); enddef; @@ -134,25 +137,24 @@ fet_endchar; def draw_marcato = - save fatness, thinness; + save fat_factor, thinness; set_char_box(interline#/2, interline#/2, 0, 1.1 interline#); - fatness = 3 stafflinethickness; - thinness = .8 stafflinethickness; - x2 - x1 + blot_diameter = fatness; - x2 + thinness/2 = w; - - y1 = y2; - y1 = thinness/2; - z2 - z3 = whatever * (charwd, -charht); - z1 - z4 = whatever * (charwd, -charht); - z3 - z4 = whatever * (charwd, charht); - y3 + thinness/2 = h; - draw_rounded_path(z1 -- z2 -- z3 -- z4 -- cycle, thinness); + fat_factor = .3; + thinness = stafflinethickness; pickup pencircle scaled thinness; - z3 - z5 = whatever* (z3 - z4); + rt x2 = w; + lft x5 = -b; bot y5 = 0; + top y3 = h; + y1 = y2 = y5; + + x3 =0; + z1 - z4 = whatever * (charwd, -charht); + z4 = fat_factor [z3, z5]; + + filldraw z1 -- z2 -- z3 -- z4 -- cycle; draw z3 .. z5; enddef; @@ -165,8 +167,8 @@ fet_endchar; % % The down marcato char (not very much used). % Contrary to what some MF/TeX `gurus' believe -% it is *point*-symmetric with the "up" version; (at least [Chlapik] -% agrees with us) +% it is *point*-symmetric with the "up" version; (at least [Chlapik] and +% and [Wanske] agree with us) % fet_beginchar("marcato down", "dmarcato", "dmarcato") draw_marcato; @@ -269,7 +271,7 @@ fet_beginchar("Downbow", "downbow", "downbow") fet_endchar; % -% Inspired by a computer-set version of auf dem Strom by Baerenreiter. +% Inspired by a computer-set version of Auf dem Strom by Baerenreiter. % fet_beginchar("Turn","turn","turn") save thin, thick, ball_diam, darkness; @@ -369,6 +371,7 @@ fet_beginchar("Trill (`tr')","trill","trill") kerning# = .75 ex#; define_pixels(ex, ascender_extra, ascender, kerning); + t_overshoot = 0.03 ex; fatness = 12/40 ex; t_fatness = 8/10 fatness; @@ -376,7 +379,7 @@ fet_beginchar("Trill (`tr')","trill","trill") uitschieter = 21/40 ex; hair_thick = blot_diameter; bulb_size = 0.47; - slant = .15; + slant = .2; local_copy(transform)(currenttransform); currenttransform := currenttransform slanted slant; diff --git a/mf/feta-toevallig.mf b/mf/feta-toevallig.mf index 69ef0a7315..1238eb366b 100644 --- a/mf/feta-toevallig.mf +++ b/mf/feta-toevallig.mf @@ -1,8 +1,8 @@ % % Accidentals from various sources, notably % -% Baerenreiter edition of Schuberts `Auf dem Strom' (sharp, natural, flat) -% F Hofmeister edition of Muellers `Etueden fuer Horn' (double sharp) +% Baerenreiter edition of Schuberts `Auf dem Strom' (sharp, natural) +% F Hofmeister edition of Muellers `Etueden fuer Horn' (double sharp, flat) % @@ -19,7 +19,7 @@ fet_beginchar("Sharp" , "1", "sharp"); save interbeam, interstem, beamheight, beamwidth, stemwidth; - interbeam := 1.1 interline; + interbeam := 1.05 interline; interstem := 7/16 ; beamheight := 4 stafflinethickness; beamwidth := w; @@ -102,6 +102,7 @@ fet_beginchar( "Natural", "0", "natural") labels(1,2,3,4); fet_endchar; + % % Dedicated to my mom. (3/10/97) % @@ -109,63 +110,100 @@ fet_beginchar( "Natural", "0", "natural") % -- HW % -% -% FIXME more metaness -% FIXME distribution of the crooks' thickness -% -% FIXME probably doesn't look quite right. -% +% TODO: remove crook_fatness +def draw_meta_flat(expr xcenter, w, crook_fatness) = + clearxy; + save crook_thinness; + save top_stem_thick, bottom_stem_thick, hair; + save center; + pair center; + center = (xcenter, 0); -def flat_meta_symbol(expr w, d, h, - stemwidth, crook_fatness, crook_thinness, - bottom_stem_thick, top_stem_thick)= + crook_thinness = 1.25 stafflinethickness; + top_stem_thick = 2 stafflinethickness; + bottom_stem_thick = 1.2 stafflinethickness; + + + z1 = (0, 2 interline) + center; + z2 = (0, - 1/2 interline)+ center; + + penpos1(top_stem_thick, 0); + penpos2(bottom_stem_thick, 0); + + fill simple_serif(z1r, z1l, 30) -- z2l -- z2r -- cycle; + + + y3l = (interline - stafflinethickness)/2 + ypart center; + z3l = whatever [z2r,z1r]; + + z3r = .26 [z2r, z1r]; - z1 = (0, h); - z2 = (0, -d); - brush(z1, top_stem_thick , z2, bottom_stem_thick); - - z3 = (0, 7/16 interline); - z4 = z3 + whatever * (dir 30); - y4 = 1/2 interline ; - y5 = 4/16 interline; - x5 + crook_fatness/2 = w; - z6 = z2 + (0,-1) * (bottom_stem_thick - crook_thinness); - - penpos3(crook_thinness, 90); - penpos4(crook_thinness, 90); - penpos5(crook_fatness, 0); - penpos6(crook_thinness, -90); - labels(1,2,3,4,5,6); - penstroke z3e{dir 32} .. z4e{dir 30} .. z5e{down} .. {dir 220}z6e; - enddef; - -def flat_symbol (expr w, d, h)= - save stemwidth, bottom_stem_thick, top_stem_thick, - crook_thinness, crook_fatness; - stemwidth = stafflinethickness; - crook_fatness = 1/4 interline; - crook_thinness = stemwidth; - bottom_stem_thick = 5/4 stemwidth; - top_stem_thick = 2 stemwidth; - flat_meta_symbol(w,d,h, stemwidth, crook_fatness, crook_thinness, - bottom_stem_thick, top_stem_thick); - enddef; + z4 = (3/8 interline, interline/2) + center; + penpos4(whatever, 53); + y4l - y4r = 2 crook_thinness ; +% y4l - y4r = 6/20[crook_thinness, crook_fatness] ; + + y5r = 1/4 interline + ypart center; + x5l = w + xpart center; + penpos5(crook_fatness, -175); + + z8 = (0, - interline/2 - stafflinethickness/2) + center; + + z9 = (x5,0); + + save ne_angle; + ne_angle = angle(z9 - z8); + + z7 = 8/33 [z8,z9]; + z6l = 18/33 [z8,z9] + .5 crook_thinness *dir(ne_angle -90); + + penpos7(crook_thinness, ne_angle + 90); + + z6r = .3 (z9-z8) + z7r; + +% penpos7(crook_thinness, angle(dir(z8-center) -180); + + penpos8(whatever, ne_angle + 90); + x8r = xpart center - bottom_stem_thick/2; + penlabels(range 0 thru 10); + + z10 = (bottom_stem_thick/2, -1/5 interline) + center; + + unfill z3r{up} .. z4r{right} .. tension .9 + .. z6r --- + z7r{left} + .. z10 {up} -- cycle; + fill z8r{down} + .. tension 0.8 ..z8l{(z9-z8)} + .. z7l + .. z6l + .. z5l{up} + .. z4l{left} .. z3l -- cycle; + + labels(10); +enddef; + + % % unfortunately, 600dpi is not enough to show the brush of the stem. % fet_beginchar("Flat", "-1", "flat") - set_char_box(0, 9/12 interline#, .5 interline#, 2 interline#); - flat_symbol (w, d, h); + set_char_box(1.2 stafflinethickness#, .8 interline#, .5 interline#, 2 interline#); + draw_meta_flat(0, w, 1/3 interline); fet_endchar; + fet_beginchar("Double flat", "-2", "flatflat") - set_char_box(0, 18/12 interline#, .5 interline#, 2 interline#); - flat_symbol(w/2, d, h); - addto currentpicture also currentpicture - shifted (w/2 - stafflinethickness/2,0); + save left_wid, overlap, right_wid; + left_wid = .7; + right_wid = .8; + overlap = .05; + set_char_box(1.2 stafflinethickness#, (left_wid + right_wid -overlap) *interline#, .5 interline#, 2 interline#); + draw_meta_flat(0, left_wid* interline, 1/3 interline); + draw_meta_flat((left_wid - overlap) *interline, + right_wid *interline, 1/3 interline); fet_endchar; - fet_beginchar("Double sharp", "2", "sharpsharp") set_char_box(0, interline#, .5 interline#, .5 interline#); diff --git a/mf/foo.mf b/mf/foo.mf new file mode 100644 index 0000000000..6bd9b647f7 --- /dev/null +++ b/mf/foo.mf @@ -0,0 +1,22 @@ + +def simple_serif(expr p,q, a)= + p{dir(angle(q-p) -a)} .. q{ - dir(angle(p -q) + a)} +enddef; +% +% Accidentals from various sources, notably +% +% Baerenreiter edition of Schuberts `Auf dem Strom' (sharp, natural, flat) +% F Hofmeister edition of Muellers `Etueden fuer Horn' (double sharp) +% + + +%tracingall; +%proofing := 2; +%\tracingequations:= tracingonline := 1; + +fet_begingroup("accidentals"); + + + +fet_endgroup("accidentals"); + diff --git a/tex/font-en-tja16.tex b/tex/font-en-tja16.tex index e6809e2253..b941882ea8 100644 --- a/tex/font-en-tja16.tex +++ b/tex/font-en-tja16.tex @@ -1,5 +1,5 @@ % generated automatically by mf-to-table.py version 0.4 -% on Fri Oct 10 21:22:38 1997 +% on Tue Oct 14 23:56:57 1997 % Do not edit % input from out/font-en-tja16.log % name diff --git a/tex/font-en-tja20.tex b/tex/font-en-tja20.tex index 1791d0ebad..e105c51ff3 100644 --- a/tex/font-en-tja20.tex +++ b/tex/font-en-tja20.tex @@ -1,5 +1,5 @@ % generated automatically by mf-to-table.py version 0.4 -% on Fri Oct 10 21:22:44 1997 +% on Tue Oct 14 23:57:04 1997 % Do not edit % input from out/font-en-tja20.log % name diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index add2284b62..4e3b74bc83 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -106,7 +106,7 @@ % We know better \staffrulethickness=0.1\interlinedist \stemthickness=\staffrulethickness - \ledgerlinethickness=1.5\staffrulethickness + \ledgerlinethickness=2\staffrulethickness } @@ -196,9 +196,9 @@ \def\hslurcharu#1{{\hslurufont\char#1}} \def\hslurchard#1{{\hslurdfont\char#1}} % stacked numbers -\def\generalmeter#1#2{\botalign{\vbox to0.5\balkheight{\vss \meterfont#1}% - \nointerlineskip - \vbox to 0.5\balkheight{\vss\meterfont #2}}} +\def\generalmeter#1#2{\vbox to 0pt{\vss\hbox{\meterfont + #1}\nointerlineskip + \hbox{\meterfont #2}\vss}} % stacked horizontal lines \def\lines#1#2#3{%