From da7dbf5f2f54bc66984ab2524c490335d567b5e7 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Wed, 30 Jun 1999 19:42:02 +0200 Subject: [PATCH] release: 1.1.52 --- ANNOUNCEMENT-1.0 => ANNOUNCE-1.0 | 0 ANNOUNCE-1.2 | 59 + AUTHORS.txt | 617 ++++- Documentation/faq.yo | 26 +- Documentation/topdocs/AUTHORS.yo | 3 +- Documentation/topdocs/INSTALL.yo | 4 + INSTALL.txt | 3306 +++++++++++++++++++++++--- NEWS | 36 +- TODO | 20 + VERSION | 2 +- flower/data-file.cc | 5 - flower/directed-graph.cc | 2 +- flower/dstream.cc | 2 +- flower/include/array.icc | 11 + flower/include/data-file.hh | 4 + flower/include/file-path.hh | 2 - flower/include/string.hh | 1 - flower/string-convert.cc | 2 - input/bugs/foo.ly | 2 +- input/bugs/grace-accident.ly | 7 + input/bugs/grace-grace.fly | 2 + input/bugs/hairy-grace.ly | 14 + input/test/auto-staff-switch.ly | 10 +- input/test/grace.ly | 2 +- lily/auto-beam-engraver.cc | 149 +- lily/bar.cc | 8 +- lily/beam-engraver.cc | 6 +- lily/beam.cc | 11 +- lily/break.cc | 2 +- lily/grace-iterator.cc | 2 +- lily/graphical-axis-group.cc | 4 +- lily/include/auto-beam-engraver.hh | 1 + lily/include/graphical-axis-group.hh | 2 +- lily/include/key-engraver.hh | 1 + lily/include/local-key-engraver.hh | 6 +- lily/include/lookup.hh | 1 - lily/include/paper-outputter.hh | 7 + lily/include/stem-info.hh | 1 - lily/include/stem.hh | 1 + lily/key-engraver.cc | 6 + lily/leastsquares.cc | 14 +- lily/local-key-engraver.cc | 43 +- lily/lookup.cc | 11 +- lily/note-column.cc | 2 +- lily/paper-outputter.cc | 43 +- lily/rhythmic-column-engraver.cc | 4 + lily/spacing-spanner.cc | 4 +- lily/span-score-bar-engraver.cc | 6 +- lily/staff-switching-translator.cc | 27 +- lily/stem-engraver.cc | 6 + lily/stem-info.cc | 34 +- lily/stem.cc | 27 +- lily/timing-translator.cc | 13 +- ly/engraver.ly | 25 +- ly/params.ly | 21 + make/out/lelievijver.lsm | 8 +- make/out/lilypond.lsm | 8 +- make/out/lilypond.spec | 4 +- make/toplevel.make.in | 2 +- mf/feta-banier.mf | 66 +- mf/feta-generic.mf | 2 +- mutopia/E.Satie/gnossienne-4.ly | 73 +- mutopia/N.W.Gade/brass.ly | 8 +- mutopia/N.W.Gade/strings.ly | 41 +- mutopia/N.W.Gade/wood.ly | 23 +- mutopia/W.A.Mozart/cadenza.ly | 10 +- 66 files changed, 4191 insertions(+), 681 deletions(-) rename ANNOUNCEMENT-1.0 => ANNOUNCE-1.0 (100%) create mode 100644 ANNOUNCE-1.2 create mode 100644 input/bugs/grace-accident.ly create mode 100644 input/bugs/grace-grace.fly create mode 100644 input/bugs/hairy-grace.ly diff --git a/ANNOUNCEMENT-1.0 b/ANNOUNCE-1.0 similarity index 100% rename from ANNOUNCEMENT-1.0 rename to ANNOUNCE-1.0 diff --git a/ANNOUNCE-1.2 b/ANNOUNCE-1.2 new file mode 100644 index 0000000000..2dc95271e8 --- /dev/null +++ b/ANNOUNCE-1.2 @@ -0,0 +1,59 @@ +[DRAFT] + +Keywords: midi notation music typesetting gnu font engraving +Subject: GNU LilyPond 1.2 released - The Music Typesetter + +GNU LilyPond - The Music Typesetter + + +WHAT IS LilyPond? + +LilyPond is the GNU Project music typesetter. It transforms a musical +description file into beautiful sheet music. + + +BROWSE + +Documentation and examples can be found on + + http://www.cs.uu.nl/~hanwen/lilypond/ + + +DOWNLOAD + +Sources for this project are on + + ftp://ftp.cs.uu.nl/~hanwen/lilypond/ (Europe) + +Prepackaged i386 and PPC for both Debian and RedHat are also +available. + + +WHAT'S NEW? + +* Large cleanups, enhanced design and GUILE integration for smaller + memory footprint and more flexible code. + +* Direct output to PostScript (optional), or as GUILE script. + +* convertors for ABC and MUP formats. + +* Font: now available as scaleable PostScript. New glyphs: time + signature, more note heads. + +* Enhanced input: semi-automatic beaming, (nested) tuplets, (nested) + repeats, automatic staff switching, chordnames. + +* Grace notes, volta brackets, better spacing, multiple styles for + note heads and time signatures, breathing signs, lyric extenders, + cross staff beaming and slurring. + +* --safe option for the paranoid + +* Exact spacing for text (eg. Lyrics) + +* mutopia archive is now a separate effort + +* lots of bugfixes + + diff --git a/AUTHORS.txt b/AUTHORS.txt index 292a11b1fa..0ba17b7a86 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,68 +1,549 @@ - - AUTHORS - who did what on GNU LilyPond? - -Contents - -This file lists authors of GNU LilyPond, and what they -wrote. This list is alphabetically ordered. - -o Tom Cato Amundsen , cembalo-par- - tita in mudela, accordion symbols, some mudela-book.py - -o Mats Bengtsson , - http://www.s3.kth.se/~matsb/ clef stuff, key stuff, - swedish notenames, testing, general comments. - -o Eric Bullinger , accidental trans- - position. - -o Jan Arne Fagertun , - TeX titling and lytodvi.sh - -o Anthony Fok , debian package: debian/* - -o Bjoern Jacke german glossary - stuff. - -o Neil Jerram . parts of Documenta- - tion/Vocab* - -o Donald Ervin Knuth, http://www-cs-staff.stan- - ford.edu/~knuth/ mf/ital-*.mf (these were taken from - the CM fonts) - -o Michael Krause , breathing - signs - -o Werner Lemberg , misc - bugfixes, some Beam and Stem code. - -o David R. Linn , Mailing list - maintenance. - -o Adrian Mariano <> Reference manual, tutorial fixes, - glossary. - -o Han-Wen Nienhuys , - http://www.cs.uu.nl/~hanwen/ Main author (initials: - HWN). - -o Jan Nieuwenhuizen , - http://www.xs4all.nl/~jantien/ Main author (initials: - JCN). - -o Alexandre Oliva , http://sun- - site.unicamp.br/~oliva/ testing - -o Franc,ois Pinard , parts of - Documentation/Vocab*, started internationalization - - stuff - -o Jeffrey B. Reed , Windows-NT sup- - port. - -o Shay Rojanski Some mudela source. - -Your name could be here! If you want to fix something, do -it, and send us a patch! +x T ascii +x res 240 24 40 +x init +p1 +x font 3 B +f3 +s10 +V400 +H240 +tAUTHORS +wh24 +t- +wh24 +twho +wh24 +tdid +wh24 +twhat +wh24 +ton +wh24 +tGNU +wh24 +tLilyPond? +n40 0 +V520 +H0 +tContents +n40 0 +V2560 +H1440 +n40 0 +V2640 +p2 +x font 1 R +f1 +s10 +V160 +H696 +t-2- +h672 +n40 0 +V280 +H0 +tThis +wh48 +tfile +wh48 +tlists +wh48 +tauthors +wh48 +tof +wh48 +tGNU +wh48 +tLilyPond, +wh24 +tand +wh24 +twhat +wh24 +tthey +n40 0 +V320 +H0 +twrote. +wh48 +tThis +wh24 +tlist +wh24 +tis +wh24 +talphabetically +wh24 +tordered. +n40 0 +V440 +H0 +to +h96 +tTom +wh24 +tCato +wh24 +tAmundsen +wh24 +t, +wh48 +tcembalo-par +Chy +h24 +n40 0 +V480 +H120 +ttita +wh24 +tin +wh24 +tmudela, +wh24 +taccordion +wh24 +tsymbols, +wh24 +tsome +wh24 +tmudela-book.py +n40 0 +V560 +H0 +to +h96 +tMats +wh288 +tBengtsson +wh288 +t, +n40 0 +V600 +H120 +thttp://www.s3.kth.se/~matsb/ +wh24 +tlots +wh48 +tof +wh48 +ttesting, +wh48 +tfixes, +n40 0 +V640 +H120 +tgeneral +wh24 +tcomments +wh24 +tand +wh24 +tcontributions. +n40 0 +V720 +H0 +to +h96 +tEric +wh24 +tBullinger +wh24 +t, +wh24 +taccidental +wh24 +ttrans +Chy +h24 +n40 0 +V760 +H120 +tposition. +n40 0 +V840 +H0 +to +h96 +tJan +wh48 +tArne +wh48 +tFagertun +wh48 +t, +n40 0 +V880 +H120 +tTeX +wh24 +ttitling +wh24 +tand +wh24 +tlytodvi.sh +n40 0 +V960 +H0 +to +h96 +tAnthony +wh24 +tFok +wh24 +t, +wh24 +tdebian +wh24 +tpackage: +wh24 +tdebian/* +n40 0 +V1040 +H0 +to +h96 +tBjoern +wh48 +tJacke +wh48 +t +wh48 +tgerman +wh72 +tglossary +n40 0 +V1080 +H120 +tstuff. +n40 0 +V1160 +H0 +to +h96 +tNeil +wh24 +tJerram +wh24 +t. +wh48 +tparts +wh24 +tof +wh24 +tDocumenta +Chy +h24 +n40 0 +V1200 +H120 +ttion/Vocab* +n40 0 +V1280 +H0 +to +h96 +tDonald +wh96 +tErvin +wh96 +tKnuth, +wh120 +thttp://www-cs-staff.stan +Chy +h24 +n40 0 +V1320 +H120 +tford.edu/~knuth/ +wh48 +tmf/ital-*.mf +wh48 +t(these +wh48 +twere +wh24 +ttaken +wh24 +tfrom +n40 0 +V1360 +H120 +tthe +wh24 +tCM +wh24 +tfonts) +n40 0 +V1440 +H0 +to +h96 +tMichael +wh48 +tKrause +wh72 +t, +wh72 +tbreathing +n40 0 +V1480 +H120 +tsigns +n40 0 +V1560 +H0 +to +h96 +tWerner +wh48 +tLemberg +wh24 +t, +wh24 +tmisc +n40 0 +V1600 +H120 +tbugfixes, +wh24 +tsome +wh24 +tBeam +wh24 +tand +wh24 +tStem +wh24 +tcode. +n40 0 +V1680 +H0 +to +h96 +tDavid +wh24 +tR. +wh24 +tLinn +wh24 +t, +wh48 +tMailing +wh48 +tlist +n40 0 +V1720 +H120 +tmaintenance. +n40 0 +V1800 +H0 +to +h96 +tAdrian +wh48 +tMariano +wh48 +t<> +wh48 +tReference +wh48 +tmanual, +wh24 +ttutorial +wh24 +tfixes, +n40 0 +V1840 +H120 +tglossary. +n40 0 +V1920 +H0 +to +h96 +tHan-Wen +wh264 +tNienhuys +wh264 +t, +n40 0 +V1960 +H120 +thttp://www.cs.uu.nl/~hanwen/ +wh72 +tMain +wh48 +tauthor +wh48 +t(initials: +n40 0 +V2000 +H120 +tHWN). +n40 0 +V2080 +H0 +to +h96 +tJan +wh240 +tNieuwenhuizen +wh264 +t, +n40 0 +V2120 +H120 +thttp://www.xs4all.nl/~jantien/ +wh48 +tMain +wh48 +tauthor +wh24 +t(initials: +n40 0 +V2160 +H120 +tJCN). +n40 0 +V2240 +H0 +to +h96 +tAlexandre +wh48 +tOliva +wh48 +t, +wh72 +thttp://sun +Chy +h24 +n40 0 +V2280 +H120 +tsite.unicamp.br/~oliva/ +wh24 +ttesting +n40 0 +V2360 +H0 +to +h96 +tFranc,ois +wh48 +tPinard +wh48 +t, +wh48 +tparts +wh24 +tof +n40 0 +V2400 +H120 +tDocumentation/Vocab*, +wh72 +tstarted +wh96 +tinternationalization +n40 0 +V2560 +H1440 +n40 0 +V2640 +p3 +x font 1 R +f1 +s10 +V160 +H696 +t-3- +h672 +n40 0 +V280 +H120 +tstuff +n40 0 +V360 +H0 +to +h96 +tJeffrey +wh24 +tB. +wh24 +tReed +wh24 +t, +wh24 +tWindows-NT +wh24 +tsup +Chy +h24 +n40 0 +V400 +H120 +tport. +n40 0 +V480 +H0 +to +h96 +tShay +wh24 +tRojanski +wh24 +tSome +wh24 +tmudela +wh24 +tsource. +n40 0 +V560 +H0 +tYour +wh24 +tname +wh24 +tcould +wh24 +tbe +wh24 +there! +wh24 +tIf +wh24 +tyou +wh24 +twant +wh24 +tto +wh48 +tfix +wh48 +tsomething, +wh48 +tdo +n40 0 +V600 +H0 +tit, +wh24 +tand +wh24 +tsend +wh24 +tus +wh24 +ta +wh24 +tpatch! +n40 0 +V2560 +H1440 +n40 0 +x trailer +V2640 +x stop diff --git a/Documentation/faq.yo b/Documentation/faq.yo index 3ef3231a36..02fe4d64a1 100644 --- a/Documentation/faq.yo +++ b/Documentation/faq.yo @@ -289,9 +289,8 @@ In any case email(Derek Wyatt)(wyatt@scar.utoronto.edu) is working on GTK based editor, but that effort practically died. (see lurl(http://harmonia.scar.utoronto.ca). -Matthew Hiller is working on extending Midiscore to handle mudela. -lurl(http://zoo.cs.yale.edu/~meh25/MISClily/MISClily-0.0.3.tar.gz) - +Matthew Hiller is working on extending Midiscore and Koobase to handle +mudela. Check out lurl(http://zoo.cs.yale.edu/~meh25/). There is also a GUI package RoseGarden that could be extended to output mudela. @@ -337,24 +336,15 @@ Seriously, read, reread and reread internals and CodingStyle, and just start anywhere. Anywhere? Well, most of the comment doco are in the header files, so -your best bet would be code(less lily/include/*.hh). Some of the most -important data-structures are to be found in: -verb( - - *request.hh - - engraver.hh - - performer.hh - - translator.hh - - score-elem.hh - - music.hh - - music-list.hh - - music-iterator.hh - - item.hh - - spanner.hh -) +your best bet would be code(less lily/include/*.hh). + +You should also have a look using Javadoc like tools. Try +DOC++, lurl(http://www.imaginator.com/doc++) + question(Why GPL?) -Yes. +No comment. COMMENT(look out: can't have line breaks in subsect() macro) diff --git a/Documentation/topdocs/AUTHORS.yo b/Documentation/topdocs/AUTHORS.yo index 5594db317c..f5499af35b 100644 --- a/Documentation/topdocs/AUTHORS.yo +++ b/Documentation/topdocs/AUTHORS.yo @@ -8,8 +8,7 @@ it()nemail(Tom Cato Amundsen)(tomcato@xoommail.com), cembalo-partita in mudela, accordion symbols, some mudela-book.py it()nemail(Mats Bengtsson)(matsb@s3.kth.se), lurl(http://www.s3.kth.se/~matsb/) - clef stuff, key stuff, swedish notenames, testing, general - comments. + lots of testing, fixes, general comments and contributions. it()nemail(Eric Bullinger)(eric@aut.ee.ethz.ch), accidental transposition. it()nemail(Jan Arne Fagertun)(Jan.A.Fagertun@energy.sintef.no), diff --git a/Documentation/topdocs/INSTALL.yo b/Documentation/topdocs/INSTALL.yo index 36590d3185..5dd12b7ffc 100644 --- a/Documentation/topdocs/INSTALL.yo +++ b/Documentation/topdocs/INSTALL.yo @@ -290,6 +290,10 @@ verb( rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z ) +Precompiled i386 eRedHat RPMS are available from +lurl(http://linux.umbc.edu/software/lilypond/rpms/). + + sect(DEBIAN GNU/LINUX) diff --git a/INSTALL.txt b/INSTALL.txt index 622b63747e..c7df9a8f55 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,311 +1,2995 @@ - - INSTALL - compiling and installing GNU LilyPond - - HWN & JCN - -Contents - - 1: ABSTRACT -2: OBTAINING -3: PREREQUISITES -4: RUNNING -5: WEBSITE -6: CONFIGURING and COMPILING -7: CONFIGURING FOR MULTIPLE PLATFORMS -8: INSTALLING -9: REDHAT LINUX -10: DEBIAN GNU/LINUX -11: WINDOWS NT/95 -12: AUTHORS - -1: ABSTRACT - -This document explains what you need to install LilyPond, -and what you should do. If you are going to compile and -install LilyPond often, e.g. when doing development, you -might want to check out the buildscripts/set-lily.sh script. -It sets some environment variables and symlinks, which comes -in handly when you have to compile LilyPond more often. - -2: OBTAINING - -You can get the latest version of LilyPond at -ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/. Refer to the links -document for mirror sites. - -If you upgrade by patching do remember to rerun autoconf -after applying the patch. - -3: PREREQUISITES - -For compilation you need: - -o A GNU system: GNU LilyPond is known to run on these GNU - systems: Linux (PPC, intel), FreeBSD, AIX, NeXTStep, - IRIX, Digital Unix and Solaris. - -o Lots of disk space: LilyPond takes between 30 and 100 - mb to compile if you use debugging information. If you - are short on disk-space run configure with --disable- - debugging. - - Although we recommend to use Unix, LilyPond is known to - run on Windows NT/95/98 as well. See Section 11. - -o EGCS 1.1 or newer. - -o Python 1.5, Check out ftp://ftp.python.org or - ftp://ftp.cwi.nl/pub/python. - -o GUILE 1.3, check out http://www.gnu.org/soft- - ware/guile/guile.html. - -o GNU make. Check out ftp://ftp.gnu.org. - -o Flex (version 2.5.4 or newer). Check out - ftp://ftp.gnu.org. - -o Bison (version 1.25 or newer). Check out - ftp://ftp.gnu.org. - -o Yodl. All documentation will be in Yodl. (1.30.17) - ftp://ftp.lilypond.org/pub/yodl - -o The geometry package for LaTeX is needed to use ly2dvi. - Available at ftp://ftp.ctan.org/tex- - archive/macros/latex/contrib/supported/geometry or at - mirror site ftp://ftp.dante.de - -4: RUNNING - -GNU LilyPond does use a lot of resources. For operation you -need the following software - -o TeX - -o A PostScript printer and/or viewer (such as - Ghostscript) is strongly recommended. Xdvi will show - all embedded PostScript too if you have Ghostscript - installed. - -o GUILE 1.3, check out http://www.gnu.org/pro- - grams/guile.html - -For running LilyPond successfully you have to help TeX and -MetaFont find various files. The recommended way of doing -so is adjusting the environment variables in the start-up -scripts of your shell. An example is given here for the -Bourne shell: - - export MFINPUTS="/usr/local/share/lilypond/mf:" - export TEXINPUTS="/usr/local/share/lilypond/tex:/usr/local/share/lilypond/ps:" - -The empty path component represents and MetaFont's default - -search paths. Scripts with the proper paths for the bourne -and C-shell respectively are generated in build- -scripts/out/lilypond-profile and buildscripts/out/lilypond- -login during compilation. - -LilyPond is a hideously slow program. A fast CPU and plenty -of RAM is recommended for comfortable use. - -5: WEBSITE - -If you want to auto-generate Lily's website, you'll need -some additional conversion tools. - -o xpmtoppm (from the Portable Bitmap Utilities) (For Red- - Hat Linux users: it is included within the package - libgr-progs). - -o Bib2html http://pertsserver.cs.uiuc.edu/~hull/bib2html. - Which, in turn depends on man2html for proper installa- - tion. man2html can be had from http://askdon- - ald.ask.uni-karlsruhe.de/hppd/hpux/Network- - ing/WWW/Man2html-1.05. - - TeTeX users should not forget to rerun texhash. - -Building the website requires pnmtopng. The version of pnm- -topng that is distributed with RedHat 5.1 and 5.2 contains a -bug: pnmtopng is dynamically linked to the wrong version of -libpng. Recompile it from source, and make sure that the -pnmtopng binary is linked statically to the libpng that is -included in libgr. RedHat 6.0 does not have this problem. - - tar xzf libgr-2.0.13.tar.gz - make - cd png - rm libpng.so* - make pnmtopng - -You can then install the new pnmtopng into /usr/local/bin/ - -6: CONFIGURING and COMPILING - -to install GNU LilyPond, simply type: - - gunzip -c lilypond-x.y.z | tar xf - - cd lilypond-x.y.z - ./configure # fill in your standard prefix with --prefix - make - make install - -This will install a number of files, something close to: - - /usr/local/man/man1/mi2mu.1 - /usr/local/man/man1/convert-mudela.1 - /usr/local/man/man1/mudela-book.1 - /usr/local/man/man1/lilypond.1 - /usr/local/bin/lilypond - /usr/local/bin/mi2mu - /usr/local/share/lilypond/* - /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo - -The above assumes that you are root and have the GNU devel- -opment tools, and your make is GNU make. If this is not the -case, you can adjust your environment variables to your -taste: - - export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" - ./configure - -CPPFLAGS are the preprocessor flags. - -The configure script is Cygnus configure, and it will accept ---help. If you are not root, you will probably have to make -it with a different --prefix option. Our favourite location -is - - ./configure --prefix=$HOME/usr - -In this case, you will have to set up MFINPUTS, and TEXIN- -PUTS accordingly. - -Since GNU LilyPond currently is beta, you are advised to -also use - - --enable-debugging - --enable-checking - -Options to configure include: - ---enable-printing - Enable debugging print routines (lilypond -D option) - ---enable-optimise - Set maximum optimisation: compile with -O2. This can - be unreliable on some compiler/platform combinations - (eg, DEC Alpha and PPC) - ---enable-profiling - Compile with support for profiling. - ---enable-config - Output to a different configuration file. Needed for - multi-platform builds - -All options are documented in the configure help The option ---enable-optimise is recommended for Real Life usage. - -If you do - - make all - -everything will be compiled, but nothing will be installed. -The resulting binaries can be found in the subdirectories -out/ (which contain all files generated during compilation). - -7: CONFIGURING FOR MULTIPLE PLATFORMS - -If you want to compile LilyPond with different configuration -settings, then, you can use the --enable-config option. -Example: suppose I want to build with and without profil- -ing. Then I'd use the following for the normal build, - - ./configure --prefix=~ --disable-optimise --enable-checking - make - make install - -and for the profiling version, I specify a different config- -uration. - - ./configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking - make config=optprof - make config=optprof install - -8: INSTALLING - -If you have done a successful make, then a simple - - make install - -should do the trick. - -If you are doing an upgrade, please remember to remove obso- -lete .pk and .tfm files of the fonts. A script has been -provided to do the work for you, see bin/clean-fonts.sh. - -CAVEATS - -o The -O2 option triggers bugs on various platforms - (PowerPC, Alpha). If you experience problems, you - should first try turning off this. - -EXAMPLE - -This is what I type in my xterm: - - lilypond someinput.ly - tex someinput.tex - xdvi someinput& - -This is what the output looks like over here: - - GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0 - Parsing ... [/home/hw/share/lilypond/init// - <..etc..> - init//performer.ly]]][input/kortjakje.ly] - Creating elements ...[8][16][24][25] - Preprocessing elements... - Calculating column positions ... [14][25] - Postprocessing elements... - TeX output to someinput.tex ... - Creating MIDI elements ...MIDI output to someinput.midi ... - - hw:~/musix/spacer$ xdvi someinput& - [1] 855 - -Check out the input files, some of them have comments Please -refer to the man page for more information. - -9: REDHAT LINUX - -RedHat Linux users can compile an RPM. A spec file is in -make/out/lilypond.spec, it is distributed along with the -sources. - -You can make the rpm by issuing - - rpm -tb lilypond-x.y.z.tar.gz - rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z - -10: DEBIAN GNU/LINUX - -A Debian package is also available; contact Anthony Fok -foka@debian.org. The build scripts are in the subdirectory -debian/. - -11: WINDOWS NT/95 - -Separate instructions on building for W32 are avaible in the -file README-W32.yo. - -12: AUTHORS - -Han-Wen Nienhuys - -Jan Nieuwenhuizen - -Have fun! +x T ascii +x res 240 24 40 +x init +p1 +x font 3 B +f3 +s10 +V400 +H144 +tINSTALL +wh24 +t- +wh24 +tcompiling +wh24 +tand +wh24 +tinstalling +wh24 +tGNU +wh24 +tLilyPond +n40 0 +x font 2 I +f2 +V480 +H600 +tHWN +wh24 +t& +wh24 +tJCN +n40 0 +f3 +V600 +H0 +tContents +n40 0 +x font 1 R +f1 +V680 +H120 +t1: +wh24 +tABSTRACT +n40 0 +V720 +H0 +t2: +wh24 +tOBTAINING +n40 0 +V760 +H0 +t3: +wh24 +tPREREQUISITES +n40 0 +V800 +H0 +t4: +wh24 +tRUNNING +n40 0 +V840 +H0 +t5: +wh24 +tWEBSITE +n40 0 +V880 +H0 +t6: +wh24 +tCONFIGURING +wh24 +tand +wh24 +tCOMPILING +n40 0 +V920 +H0 +t7: +wh24 +tCONFIGURING +wh24 +tFOR +wh24 +tMULTIPLE +wh24 +tPLATFORMS +n40 0 +V960 +H0 +t8: +wh24 +tINSTALLING +n40 0 +V1000 +H0 +t9: +wh24 +tREDHAT +wh24 +tLINUX +n40 0 +V1040 +H0 +t10: +wh24 +tDEBIAN +wh24 +tGNU/LINUX +n40 0 +V1080 +H0 +t11: +wh24 +tWINDOWS +wh24 +tNT/95 +n40 0 +V1120 +H0 +t12: +wh24 +tAUTHORS +n40 0 +V2560 +H1440 +n40 0 +V2640 +p2 +x font 1 R +f1 +s10 +V160 +H696 +t-2- +h672 +n40 0 +x font 3 B +f3 +V280 +H0 +t1: +wh24 +tABSTRACT +n40 0 +f1 +V400 +H0 +tThis +wh48 +tdocument +wh48 +texplains +wh48 +twhat +wh24 +tyou +wh24 +tneed +wh24 +tto +wh24 +tinstall +wh24 +tLilyPond, +n40 0 +V440 +H0 +tand +wh24 +twhat +wh24 +tyou +wh24 +tshould +wh24 +tdo. +wh48 +tIf +wh24 +tyou +wh24 +tare +wh48 +tgoing +wh48 +tto +wh48 +tcompile +wh48 +tand +n40 0 +V480 +H0 +tinstall +wh48 +tLilyPond +wh48 +toften, +wh48 +te.g. +wh48 +twhen +wh24 +tdoing +wh24 +tdevelopment, +wh24 +tyou +n40 0 +V520 +H0 +tmight +wh24 +twant +wh24 +tto +wh24 +tcheck +wh24 +tout +wh24 +tthe +wf3 +h24 +tbuildscripts/set-lily.sh +wf1 +h24 +tscript. +n40 0 +V560 +H0 +tIt +wh24 +tsets +wh24 +tsome +wh24 +tenvironment +wh24 +tvariables +wh24 +tand +wh24 +tsymlinks, +wh24 +twhich +wh24 +tcomes +n40 0 +V600 +H0 +tin +wh24 +thandly +wh24 +twhen +wh24 +tyou +wh24 +thave +wh24 +tto +wh24 +tcompile +wh24 +tLilyPond +wh24 +tmore +wh24 +toften. +n40 0 +f3 +V720 +H0 +t2: +wh24 +tOBTAINING +n40 0 +f1 +V840 +H0 +tYou +wh48 +tcan +wh72 +tget +wh72 +tthe +wh72 +tlatest +wh72 +tversion +wh72 +tof +wh72 +tLilyPond +wh72 +tat +n40 0 +V880 +H0 +tftp://ftp.cs.uu.nl/pub/GNU/LilyPond/. +wh72 +tRefer +wh48 +tto +wh48 +tthe +wh24 +tlinks +n40 0 +V920 +H0 +tdocument +wh24 +tfor +wh24 +tmirror +wh24 +tsites. +n40 0 +x font 2 I +f2 +V1000 +H0 +tIf +wh24 +tyou +wh24 +tupgrade +wh24 +tby +wh24 +tpatching +wh24 +tdo +wh48 +tremember +wh48 +tto +wh48 +trerun +wh48 +tautoconf +n40 0 +V1040 +H0 +tafter +wh24 +tapplying +wh24 +tthe +wh24 +tpatch +f1 +t. +n40 0 +f3 +V1160 +H0 +t3: +wh24 +tPREREQUISITES +n40 0 +f1 +V1280 +H0 +tFor +wh24 +tcompilation +wh24 +tyou +wh24 +tneed: +n40 0 +V1400 +H0 +to +h96 +tA +wh24 +tGNU +wh24 +tsystem: +wh24 +tGNU +wh24 +tLilyPond +wh24 +tis +wh24 +tknown +wh24 +tto +wh24 +trun +wh24 +ton +wh24 +tthese +wh24 +tGNU +n40 0 +V1440 +H120 +tsystems: +wh24 +tLinux +wh24 +t(PPC, +wh24 +tintel), +wh48 +tFreeBSD, +wh48 +tAIX, +wh48 +tNeXTStep, +n40 0 +V1480 +H120 +tIRIX, +wh24 +tDigital +wh24 +tUnix +wh24 +tand +wh24 +tSolaris. +n40 0 +V1600 +H0 +to +h96 +tLots +wh48 +tof +wh48 +tdisk +wh24 +tspace: +wh24 +tLilyPond +wh24 +ttakes +wh24 +tbetween +wh24 +t30 +wh24 +tand +wh24 +t100 +n40 0 +V1640 +H120 +tmb +wh24 +tto +wh24 +tcompile +wh24 +tif +wh24 +tyou +wh24 +tuse +wh24 +tdebugging +wh24 +tinformation. +wh48 +tIf +wh24 +tyou +n40 0 +V1680 +H120 +tare +wh48 +tshort +wh48 +ton +wh24 +tdisk-space +wh24 +trun +wh24 +tconfigure +wh24 +twith +wh24 +t--disable- +n40 0 +V1720 +H120 +tdebugging. +n40 0 +V1800 +H120 +tAlthough +wh24 +twe +wh24 +trecommend +wh24 +tto +wh24 +tuse +wh24 +tUnix, +wh24 +tLilyPond +wh24 +tis +wh24 +tknown +wh24 +tto +n40 0 +V1840 +H120 +trun +wh24 +ton +wh24 +tWindows +wh24 +tNT/95/98 +wh24 +tas +wh24 +twell. +wh48 +tSee +wh24 +tSection +wh24 +t11. +n40 0 +V1960 +H0 +to +h96 +tEGCS +wh24 +t1.1 +wh24 +tor +wh24 +tnewer. +n40 0 +V2080 +H0 +to +h96 +tPython +wh72 +t1.5, +wh72 +tCheck +wh72 +tout +wh72 +tftp://ftp.python.org +wh72 +tor +n40 0 +V2120 +H120 +tftp://ftp.cwi.nl/pub/python. +n40 0 +V2240 +H0 +to +h96 +tGUILE +wh72 +t1.3, +wh96 +tcheck +wh72 +tout +wh96 +thttp://www.gnu.org/soft +Chy +h24 +n40 0 +V2280 +H120 +tware/guile/guile.html. +n40 0 +V2560 +H1440 +n40 0 +V2640 +p3 +x font 1 R +f1 +s10 +V160 +H696 +t-3- +h672 +n40 0 +V280 +H0 +to +h96 +tGNU +wh24 +tmake. +wh48 +tCheck +wh24 +tout +wh24 +tftp://ftp.gnu.org. +n40 0 +V400 +H0 +to +h96 +tFlex +wh96 +t(version +wh96 +t2.5.4 +wh72 +tor +wh72 +tnewer). +wh96 +tCheck +wh72 +tout +n40 0 +V440 +H120 +tftp://ftp.gnu.org. +n40 0 +V560 +H0 +to +h96 +tBison +wh72 +t(version +wh72 +t1.25 +wh72 +tor +wh72 +tnewer). +wh120 +tCheck +wh96 +tout +n40 0 +V600 +H120 +tftp://ftp.gnu.org. +n40 0 +V720 +H0 +to +h96 +tYodl. +wh72 +tAll +wh48 +tdocumentation +wh48 +twill +wh48 +tbe +wh24 +tin +wh24 +tYodl. +wh24 +t(1.30.17) +n40 0 +V760 +H120 +tftp://ftp.lilypond.org/pub/yodl +n40 0 +V880 +H0 +to +h96 +tThe +wh24 +tgeometry +wh24 +tpackage +wh24 +tfor +wh24 +tLaTeX +wh24 +tis +wh24 +tneeded +wh24 +tto +wh24 +tuse +wh24 +tly2dvi. +n40 0 +V920 +H120 +tAvailable +wh264 +tat +wh240 +tftp://ftp.ctan.org/tex- +n40 0 +V960 +H120 +tarchive/macros/latex/contrib/supported/geometry +wh48 +tor +wh48 +tat +n40 0 +V1000 +H120 +tmirror +wh24 +tsite +wh24 +tftp://ftp.dante.de +n40 0 +x font 3 B +f3 +V1120 +H0 +t4: +wh24 +tRUNNING +n40 0 +f1 +V1240 +H0 +tGNU +wh48 +tLilyPond +wh24 +tdoes +wh24 +tuse +wh24 +ta +wh24 +tlot +wh24 +tof +wh24 +tresources. +wh24 +tFor +wh24 +toperation +wh24 +tyou +n40 0 +V1280 +H0 +tneed +wh24 +tthe +wh24 +tfollowing +wh24 +tsoftware +n40 0 +V1400 +H0 +to +h96 +tTeX +n40 0 +V1480 +H0 +to +h96 +tA +wh72 +tPostScript +wh72 +tprinter +wh72 +tand/or +wh72 +tviewer +wh72 +t(such +wh72 +tas +n40 0 +V1520 +H120 +tGhostscript) +wh48 +tis +wh48 +tstrongly +wh24 +trecommended. +wh48 +tXdvi +wh24 +twill +wh24 +tshow +n40 0 +V1560 +H120 +tall +wh24 +tembedded +wh24 +tPostScript +wh24 +ttoo +wh48 +tif +wh48 +tyou +wh48 +thave +wh48 +tGhostscript +n40 0 +V1600 +H120 +tinstalled. +n40 0 +V1680 +H0 +to +h96 +tGUILE +wh96 +t1.3, +wh96 +tcheck +wh96 +tout +wh72 +thttp://www.gnu.org/pro +Chy +h24 +n40 0 +V1720 +H120 +tgrams/guile.html +n40 0 +V1800 +H0 +tFor +wh24 +trunning +wh24 +tLilyPond +wh24 +tsuccessfully +wh24 +tyou +wh24 +thave +wh24 +tto +wh24 +thelp +wh48 +tTeX +wh48 +tand +n40 0 +V1840 +H0 +tMetaFont +wh48 +tfind +wh48 +tvarious +wh24 +tfiles. +wh48 +tThe +wh24 +trecommended +wh24 +tway +wh24 +tof +wh24 +tdoing +n40 0 +V1880 +H0 +tso +wh24 +tis +wh24 +tadjusting +wh24 +tthe +wh24 +tenvironment +wh24 +tvariables +wh48 +tin +wh48 +tthe +wh48 +tstart-up +n40 0 +V1920 +H0 +tscripts +wh48 +tof +wh48 +tyour +wh48 +tshell. +wh72 +tAn +wh24 +texample +wh24 +tis +wh24 +tgiven +wh24 +there +wh24 +tfor +wh24 +tthe +n40 0 +V1960 +H0 +tBourne +wh24 +tshell: +n40 0 +V2160 +H120 +texport +wh24 +tMFINPUTS="/usr/local/share/lilypond/mf:" +n40 0 +V2200 +H120 +texport +wh24 +tTEXINPUTS="/usr/local/share/lilypond/tex:/usr/local/share/lilypond/ps:" +n40 0 +V2400 +H0 +tThe +wh24 +tempty +wh24 +tpath +wh24 +tcomponent +wh24 +trepresents +wh48 +tand +wh24 +tMetaFont +Caa +h24 +ts +wh48 +tdefault +n40 0 +V2560 +H1440 +n40 0 +V2640 +p4 +x font 1 R +f1 +s10 +V160 +H696 +t-4- +h672 +n40 0 +V280 +H0 +tsearch +wh48 +tpaths. +wh48 +tScripts +wh24 +twith +wh24 +tthe +wh24 +tproper +wh24 +tpaths +wh24 +tfor +wh24 +tthe +wh24 +tbourne +n40 0 +V320 +H0 +tand +wh72 +tC-shell +wh72 +trespectively +wh72 +tare +wh72 +tgenerated +wh72 +tin +wx font 3 B +f3 +h72 +tbuild +Chy +h24 +n40 0 +V360 +H0 +tscripts/out/lilypond-profile +wf1 +h48 +tand +wf3 +h24 +tbuildscripts/out/lilypond- +n40 0 +V400 +H0 +tlogin +wf1 +h24 +tduring +wh24 +tcompilation. +n40 0 +V480 +H0 +tLilyPond +wh24 +tis +wh24 +ta +wh24 +thideously +wh24 +tslow +wh24 +tprogram. +wh48 +tA +wh24 +tfast +wh24 +tCPU +wh24 +tand +wh24 +tplenty +n40 0 +V520 +H0 +tof +wh24 +tRAM +wh24 +tis +wh24 +trecommended +wh24 +tfor +wh24 +tcomfortable +wh24 +tuse. +n40 0 +f3 +V640 +H0 +t5: +wh24 +tWEBSITE +n40 0 +f1 +V760 +H0 +tIf +wh48 +tyou +wh48 +twant +wh48 +tto +wh48 +tauto-generate +wh24 +tLily +Caa +h24 +ts +wh24 +twebsite, +wh24 +tyou +Caa +h24 +tll +wh24 +tneed +n40 0 +V800 +H0 +tsome +wh24 +tadditional +wh24 +tconversion +wh24 +ttools. +n40 0 +V920 +H0 +to +h96 +txpmtoppm +wh24 +t(from +wh24 +tthe +wh24 +tPortable +wh24 +tBitmap +wh24 +tUtilities) +wh24 +t(For +wh24 +tRed +Chy +h24 +n40 0 +V960 +H120 +tHat +wh48 +tLinux +wh48 +tusers: +wh48 +tit +wh48 +tis +wh48 +tincluded +wh24 +twithin +wh24 +tthe +wh24 +tpackage +n40 0 +V1000 +H120 +tlibgr-progs). +n40 0 +V1080 +H0 +to +h96 +tBib2html +wh24 +thttp://pertsserver.cs.uiuc.edu/~hull/bib2html. +n40 0 +V1120 +H120 +tWhich, +wh24 +tin +wh24 +tturn +wh24 +tdepends +wh24 +ton +wh24 +tman2html +wh24 +tfor +wh24 +tproper +wh24 +tinstalla +Chy +h24 +n40 0 +V1160 +H120 +ttion. +wh72 +tman2html +wh48 +tcan +wh48 +tbe +wh72 +thad +wh72 +tfrom +wh72 +thttp://askdon +Chy +h24 +n40 0 +V1200 +H120 +tald.ask.uni-karlsruhe.de/hppd/hpux/Network +Chy +h24 +n40 0 +V1240 +H120 +ting/WWW/Man2html-1.05. +n40 0 +V1320 +H120 +tTeTeX +wh24 +tusers +wh24 +tshould +wh24 +tnot +wh24 +tforget +wh24 +tto +wh24 +trerun +wh24 +ttexhash. +n40 0 +V1400 +H0 +tBuilding +wh24 +tthe +wh24 +twebsite +wh24 +trequires +wh24 +tpnmtopng. +wh48 +tThe +wh24 +tversion +wh24 +tof +wf3 +h24 +tpnm +Chy +h24 +n40 0 +V1440 +H0 +ttopng +wf1 +h24 +tthat +wh24 +tis +wh24 +tdistributed +wh24 +twith +wh24 +tRedHat +wh24 +t5.1 +wh24 +tand +wh24 +t5.2 +wh24 +tcontains +wh24 +ta +n40 0 +V1480 +H0 +tbug: +wh24 +tpnmtopng +wh24 +tis +wh24 +tdynamically +wh24 +tlinked +wh24 +tto +wh24 +tthe +wh24 +twrong +wh24 +tversion +wh48 +tof +n40 0 +V1520 +H0 +tlibpng. +wh72 +tRecompile +wh48 +tit +wh48 +tfrom +wh24 +tsource, +wh24 +tand +wh24 +tmake +wh24 +tsure +wh24 +tthat +wh24 +tthe +n40 0 +V1560 +H0 +tpnmtopng +wh24 +tbinary +wh24 +tis +wh24 +tlinked +wh24 +tstatically +wh24 +tto +wh24 +tthe +wh24 +tlibpng +wh48 +tthat +wh48 +tis +n40 0 +V1600 +H0 +tincluded +wh48 +tin +wh24 +tlibgr. +wh72 +tRedHat +wh24 +t6.0 +wh24 +tdoes +wh24 +tnot +wh24 +thave +wh24 +tthis +wh24 +tproblem. +n40 0 +V1840 +H144 +ttar +wh24 +txzf +wh24 +tlibgr-2.0.13.tar.gz +n40 0 +V1880 +H264 +tmake +n40 0 +V1920 +H264 +tcd +wh24 +tpng +n40 0 +V1960 +H264 +trm +wh24 +tlibpng.so* +n40 0 +V2000 +H264 +tmake +wh24 +tpnmtopng +n40 0 +V2240 +H0 +tYou +wh24 +tcan +wh24 +tthen +wh24 +tinstall +wh24 +tthe +wh24 +tnew +wh24 +tpnmtopng +wh24 +tinto +wh24 +t/usr/local/bin/ +n40 0 +V2560 +H1440 +n40 0 +V2640 +p5 +x font 1 R +f1 +s10 +V160 +H696 +t-5- +h672 +n40 0 +x font 3 B +f3 +V280 +H0 +t6: +wh24 +tCONFIGURING +wh24 +tand +wh24 +tCOMPILING +n40 0 +f1 +V400 +H0 +tto +wh24 +tinstall +wh24 +tGNU +wh24 +tLilyPond, +wh24 +tsimply +wh24 +ttype: +n40 0 +V640 +H240 +tgunzip +wh24 +t-c +wh24 +tlilypond-x.y.z +wh24 +t| +wh24 +ttar +wh24 +txf +wh24 +t- +n40 0 +V680 +H240 +tcd +wh24 +tlilypond-x.y.z +n40 0 +V720 +H240 +t./configure +h216 +t# +wh24 +tfill +wh24 +tin +wh24 +tyour +wh24 +tstandard +wh24 +tprefix +wh24 +twith +wh24 +t--prefix +n40 0 +V760 +H240 +tmake +n40 0 +V800 +H240 +tmake +wh24 +tinstall +n40 0 +V1040 +H0 +tThis +wh24 +twill +wh24 +tinstall +wh24 +ta +wh24 +tnumber +wh24 +tof +wh24 +tfiles, +wh24 +tsomething +wh24 +tclose +wh24 +tto: +n40 0 +V1280 +H240 +t/usr/local/man/man1/mi2mu.1 +n40 0 +V1320 +H240 +t/usr/local/man/man1/convert-mudela.1 +n40 0 +V1360 +H240 +t/usr/local/man/man1/mudela-book.1 +n40 0 +V1400 +H240 +t/usr/local/man/man1/lilypond.1 +n40 0 +V1440 +H240 +t/usr/local/bin/lilypond +n40 0 +V1480 +H240 +t/usr/local/bin/mi2mu +n40 0 +V1520 +H240 +t/usr/local/share/lilypond/* +n40 0 +V1560 +H240 +t/usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo +n40 0 +V1800 +H0 +tThe +wh24 +tabove +wh24 +tassumes +wh24 +tthat +wh24 +tyou +wh24 +tare +wh24 +troot +wh24 +tand +wh24 +thave +wh24 +tthe +wh24 +tGNU +wh48 +tdevel +Chy +h24 +n40 0 +V1840 +H0 +topment +wh24 +ttools, +wh24 +tand +wh24 +tyour +wh24 +tmake +wh24 +tis +wh24 +tGNU +wh24 +tmake. +wh48 +tIf +wh24 +tthis +wh24 +tis +wh24 +tnot +wh24 +tthe +n40 0 +V1880 +H0 +tcase, +wh24 +tyou +wh24 +tcan +wh24 +tadjust +wh48 +tyour +wh48 +tenvironment +wh48 +tvariables +wh48 +tto +wh48 +tyour +n40 0 +V1920 +H0 +ttaste: +n40 0 +V2200 +H240 +texport +wh24 +tCPPFLAGS="-I +wh24 +t/home/me/my_include +wh24 +t-DWEIRD_FOOBAR" +n40 0 +V2240 +H240 +t./configure +n40 0 +V2560 +H1440 +n40 0 +V2640 +p6 +x font 1 R +f1 +s10 +V160 +H696 +t-6- +h672 +n40 0 +V280 +H0 +tCPPFLAGS +wh24 +tare +wh24 +tthe +wh24 +tpreprocessor +wh24 +tflags. +n40 0 +V360 +H0 +tThe +wh24 +tconfigure +wh24 +tscript +wh24 +tis +wh24 +tCygnus +wh24 +tconfigure, +wh24 +tand +wh24 +tit +wh24 +twill +wh24 +taccept +n40 0 +x font 3 B +f3 +V400 +H0 +t--help +f1 +t. +wh24 +tIf +wh24 +tyou +wh24 +tare +wh24 +tnot +wh24 +troot, +wh24 +tyou +wh24 +twill +wh24 +tprobably +wh24 +thave +wh24 +tto +wh48 +tmake +n40 0 +V440 +H0 +tit +wh24 +twith +wh24 +ta +wh24 +tdifferent +wf3 +h24 +t--prefix +wf1 +h24 +toption. +wh48 +tOur +wh24 +tfavourite +wh24 +tlocation +n40 0 +V480 +H0 +tis +n40 0 +V760 +H240 +t./configure +wh24 +t--prefix=$HOME/usr +n40 0 +V1000 +H0 +tIn +wh24 +tthis +wh24 +tcase, +wh24 +tyou +wh24 +twill +wh24 +thave +wh24 +tto +wh24 +tset +wh24 +tup +wh24 +tMFINPUTS, +wh48 +tand +wh48 +tTEXIN +Chy +h24 +n40 0 +V1040 +H0 +tPUTS +wh24 +taccordingly. +n40 0 +V1120 +H0 +tSince +wh48 +tGNU +wh48 +tLilyPond +wh48 +tcurrently +wh48 +tis +wh24 +tbeta, +wh24 +tyou +wh24 +tare +wh24 +tadvised +wh24 +tto +n40 0 +V1160 +H0 +talso +wh24 +tuse +n40 0 +V1440 +H240 +t--enable-debugging +n40 0 +V1480 +H240 +t--enable-checking +n40 0 +V1720 +H0 +tOptions +wh24 +tto +wh24 +tconfigure +wh24 +tinclude: +n40 0 +f3 +V1840 +H0 +t--enable-printing +n40 0 +f1 +V1880 +H120 +tEnable +wh24 +tdebugging +wh24 +tprint +wh24 +troutines +wh24 +t(lilypond +wf3 +h24 +t-D +wf1 +h24 +toption) +n40 0 +f3 +V1960 +H0 +t--enable-optimise +n40 0 +f1 +V2000 +H120 +tSet +wh24 +tmaximum +wh24 +toptimisation: +wh24 +tcompile +wh24 +twith +wf3 +h24 +t-O2 +f1 +t. +wh72 +tThis +wh48 +tcan +n40 0 +V2040 +H120 +tbe +wh48 +tunreliable +wh48 +ton +wh48 +tsome +wh24 +tcompiler/platform +wh24 +tcombinations +n40 0 +V2080 +H120 +t(eg, +wh24 +tDEC +wh24 +tAlpha +wh24 +tand +wh24 +tPPC) +n40 0 +f3 +V2160 +H0 +t--enable-profiling +n40 0 +f1 +V2200 +H120 +tCompile +wh24 +twith +wh24 +tsupport +wh24 +tfor +wh24 +tprofiling. +n40 0 +f3 +V2280 +H0 +t--enable-config +n40 0 +f1 +V2320 +H120 +tOutput +wh24 +tto +wh24 +ta +wh24 +tdifferent +wh24 +tconfiguration +wh24 +tfile. +wh72 +tNeeded +wh48 +tfor +n40 0 +V2360 +H120 +tmulti-platform +wh24 +tbuilds +n40 0 +V2560 +H1440 +n40 0 +V2640 +p7 +x font 1 R +f1 +s10 +V160 +H696 +t-7- +h672 +n40 0 +V280 +H0 +tAll +wh48 +toptions +wh24 +tare +wh24 +tdocumented +wh24 +tin +wh24 +tthe +wx font 3 B +f3 +h24 +tconfigure +wf1 +h24 +thelp +wh24 +tThe +wh24 +toption +n40 0 +f3 +V320 +H0 +t--enable-optimise +wf1 +h24 +tis +wh24 +trecommended +wh24 +tfor +wh24 +tReal +wh24 +tLife +wh24 +tusage. +n40 0 +V400 +H0 +tIf +wh24 +tyou +wh24 +tdo +n40 0 +V680 +H240 +tmake +wh24 +tall +n40 0 +V920 +H0 +teverything +wh24 +twill +wh24 +tbe +wh24 +tcompiled, +wh24 +tbut +wh24 +tnothing +wh24 +twill +wh24 +tbe +wh48 +tinstalled. +n40 0 +V960 +H0 +tThe +wh48 +tresulting +wh48 +tbinaries +wh48 +tcan +wh24 +tbe +wh24 +tfound +wh24 +tin +wh24 +tthe +wh24 +tsubdirectories +n40 0 +f3 +V1000 +H0 +tout/ +wf1 +h24 +t(which +wh24 +tcontain +wh24 +tall +wh24 +tfiles +wh24 +tgenerated +wh24 +tduring +wh24 +tcompilation). +n40 0 +f3 +V1120 +H0 +t7: +wh24 +tCONFIGURING +wh24 +tFOR +wh24 +tMULTIPLE +wh24 +tPLATFORMS +n40 0 +f1 +V1240 +H0 +tIf +wh24 +tyou +wh24 +twant +wh24 +tto +wh24 +tcompile +wh24 +tLilyPond +wh24 +twith +wh24 +tdifferent +wh24 +tconfiguration +n40 0 +V1280 +H0 +tsettings, +wh24 +tthen, +wh24 +tyou +wh48 +tcan +wh48 +tuse +wh48 +tthe +wf3 +h48 +t--enable-config +wf1 +h48 +toption. +n40 0 +V1320 +H0 +tExample: +wh48 +tsuppose +wh24 +tI +wh24 +twant +wh24 +tto +wh24 +tbuild +wh24 +twith +wh24 +tand +wh72 +twithout +wh24 +tprofil +Chy +h24 +n40 0 +V1360 +H0 +ting. +wh48 +tThen +wh24 +tI +Caa +h24 +td +wh24 +tuse +wh24 +tthe +wh24 +tfollowing +wh24 +tfor +wh24 +tthe +wh24 +tnormal +wh24 +tbuild, +n40 0 +V1640 +H264 +t./configure +wh24 +t--prefix=~ +wh24 +t--disable-optimise +wh24 +t--enable-checking +n40 0 +V1680 +H264 +tmake +n40 0 +V1720 +H264 +tmake +wh24 +tinstall +n40 0 +V1960 +H0 +tand +wh24 +tfor +wh24 +tthe +wh24 +tprofiling +wh24 +tversion, +wh24 +tI +wh24 +tspecify +wh24 +ta +wh24 +tdifferent +wh24 +tconfig +Chy +h24 +n40 0 +V2000 +H0 +turation. +n40 0 +V2560 +H1440 +n40 0 +V2640 +p8 +x font 1 R +f1 +s10 +V160 +H696 +t-8- +h672 +n40 0 +V280 +H264 +t./configure +wh24 +t--prefix=~ +wh24 +t--enable-profiling +wh24 +t--enable-config=optprof +wh24 +t--enable-optimise +wh24 +t--disable-checking +n40 0 +V320 +H264 +tmake +wh24 +tconfig=optprof +n40 0 +V360 +H264 +tmake +wh24 +tconfig=optprof +wh24 +tinstall +n40 0 +x font 3 B +f3 +V640 +H0 +t8: +wh24 +tINSTALLING +n40 0 +f1 +V760 +H0 +tIf +wh24 +tyou +wh24 +thave +wh24 +tdone +wh24 +ta +wh24 +tsuccessful +wh24 +tmake, +wh24 +tthen +wh24 +ta +wh24 +tsimple +n40 0 +V1040 +H240 +tmake +wh24 +tinstall +n40 0 +V1280 +H0 +tshould +wh24 +tdo +wh24 +tthe +wh24 +ttrick. +n40 0 +V1360 +H0 +tIf +wh24 +tyou +wh24 +tare +wh24 +tdoing +wh24 +tan +wh24 +tupgrade, +wh24 +tplease +wh24 +tremember +wh24 +tto +wh24 +tremove +wh24 +tobso +Chy +h24 +n40 0 +V1400 +H0 +tlete +wf3 +h24 +t.pk +wf1 +h24 +tand +wf3 +h24 +t.tfm +wf1 +h24 +tfiles +wh24 +tof +wh24 +tthe +wh24 +tfonts. +wh72 +tA +wh48 +tscript +wh48 +thas +wh48 +tbeen +n40 0 +V1440 +H0 +tprovided +wh24 +tto +wh24 +tdo +wh24 +tthe +wh24 +twork +wh24 +tfor +wh24 +tyou, +wh24 +tsee +wf3 +h24 +tbin/clean-fonts.sh +f1 +t. +n40 0 +f3 +V1560 +H0 +tCAVEATS +n40 0 +f1 +V1720 +H0 +to +h96 +tThe +wh48 +t-O2 +wh48 +toption +wh72 +ttriggers +wh72 +tbugs +wh24 +ton +wh24 +tvarious +wh24 +tplatforms +n40 0 +V1760 +H120 +t(PowerPC, +wh24 +tAlpha). +wh72 +tIf +wh48 +tyou +wh48 +texperience +wh48 +tproblems, +wh48 +tyou +n40 0 +V1800 +H120 +tshould +wh24 +tfirst +wh24 +ttry +wh48 +tturning +wh24 +toff +wh24 +tthis. +n40 0 +f3 +V1920 +H0 +tEXAMPLE +n40 0 +f1 +V2040 +H0 +tThis +wh24 +tis +wh24 +twhat +wh24 +tI +wh24 +ttype +wh24 +tin +wh24 +tmy +wh24 +txterm: +n40 0 +V2560 +H1440 +n40 0 +V2640 +p9 +x font 1 R +f1 +s10 +V160 +H696 +t-9- +h672 +n40 0 +V280 +H240 +tlilypond +wh24 +tsomeinput.ly +n40 0 +V320 +H240 +ttex +wh24 +tsomeinput.tex +n40 0 +V360 +H240 +txdvi +wh24 +tsomeinput& +n40 0 +V600 +H0 +tThis +wh24 +tis +wh24 +twhat +wh24 +tthe +wh24 +toutput +wh24 +tlooks +wh24 +tlike +wh24 +tover +wh24 +there: +n40 0 +V880 +H240 +tGNU +wh24 +tLilyPond +wh24 +t0.0.78 +wh24 +t#4/FlowerLib +wh24 +t1.1.24 +wh24 +t#0 +n40 0 +V920 +H240 +tParsing +wh24 +t... +wh24 +t[/home/hw/share/lilypond/init// +n40 0 +V960 +H360 +t<..etc..> +n40 0 +V1000 +H360 +tinit//performer.ly]]][input/kortjakje.ly] +n40 0 +V1040 +H240 +tCreating +wh24 +telements +wh24 +t...[8][16][24][25] +n40 0 +V1080 +H240 +tPreprocessing +wh24 +telements... +n40 0 +V1120 +H240 +tCalculating +wh24 +tcolumn +wh24 +tpositions +wh24 +t... +wh24 +t[14][25] +n40 0 +V1160 +H240 +tPostprocessing +wh24 +telements... +n40 0 +V1200 +H240 +tTeX +wh24 +toutput +wh24 +tto +wh24 +tsomeinput.tex +wh24 +t... +n40 0 +V1240 +H240 +tCreating +wh24 +tMIDI +wh24 +telements +wh24 +t...MIDI +wh24 +toutput +wh24 +tto +wh24 +tsomeinput.midi +wh24 +t... +n40 0 +V1360 +H240 +thw:~/musix/spacer$ +wh24 +txdvi +wh24 +tsomeinput& +n40 0 +V1400 +H240 +t[1] +wh24 +t855 +n40 0 +V1640 +H0 +tCheck +wh24 +tout +wh24 +tthe +wh24 +tinput +wh24 +tfiles, +wh24 +tsome +wh24 +tof +wh24 +tthem +wh24 +thave +wh24 +tcomments +wh24 +tPlease +n40 0 +V1680 +H0 +trefer +wh24 +tto +wh24 +tthe +wh24 +tman +wh24 +tpage +wh24 +tfor +wh24 +tmore +wh24 +tinformation. +n40 0 +x font 3 B +f3 +V1800 +H0 +t9: +wh24 +tREDHAT +wh24 +tLINUX +n40 0 +f1 +V1920 +H0 +tRedHat +wh24 +tLinux +wh24 +tusers +wh24 +tcan +wh24 +tcompile +wh24 +tan +wh24 +tRPM. +wh24 +tA +wh48 +tspec +wh48 +tfile +wh48 +tis +wh48 +tin +n40 0 +f3 +V1960 +H0 +tmake/out/lilypond.spec +f1 +t, +wh48 +tit +wh48 +tis +wh48 +tdistributed +wh48 +talong +wh24 +twith +wh24 +tthe +n40 0 +V2000 +H0 +tsources. +n40 0 +V2080 +H0 +tYou +wh24 +tcan +wh24 +tmake +wh24 +tthe +wh24 +trpm +wh24 +tby +wh24 +tissuing +n40 0 +V2560 +H1440 +n40 0 +V2640 +p10 +x font 1 R +f1 +s10 +V160 +H672 +t-10- +h672 +n40 0 +V280 +H240 +trpm +wh24 +t-tb +wh24 +tlilypond-x.y.z.tar.gz +n40 0 +V320 +H240 +trpm +wh24 +t-i +wh24 +t/usr/src/redhat/RPMS/i386/lilypond-x.y.z +n40 0 +V560 +H0 +tPrecompiled +wh72 +ti386 +wh72 +teRedHat +wh72 +tRPMS +wh72 +tare +wh72 +tavailable +wh72 +tfrom +n40 0 +V600 +H0 +thttp://linux.umbc.edu/software/lilypond/rpms/. +n40 0 +x font 3 B +f3 +V720 +H0 +t10: +wh24 +tDEBIAN +wh24 +tGNU/LINUX +n40 0 +f1 +V840 +H0 +tA +wh48 +tDebian +wh48 +tpackage +wh48 +tis +wh48 +talso +wh48 +tavailable; +wh24 +tcontact +wh24 +tAnthony +wh24 +tFok +n40 0 +V880 +H0 +tfoka@debian.org +wh24 +t. +wh48 +tThe +wh24 +tbuild +wh24 +tscripts +wh24 +tare +wh24 +tin +n40 0 +V920 +H0 +tthe +wh24 +tsubdirectory +wf3 +h24 +tdebian/ +f1 +t. +n40 0 +f3 +V1040 +H0 +t11: +wh24 +tWINDOWS +wh24 +tNT/95 +n40 0 +f1 +V1160 +H0 +tSeparate +wh24 +tinstructions +wh24 +ton +wh24 +tbuilding +wh24 +tfor +wh24 +tW32 +wh24 +tare +wh24 +tavaible +wh24 +tin +wh24 +tthe +n40 0 +V1200 +H0 +tfile +wh24 +tREADME-W32.yo. +n40 0 +f3 +V1320 +H0 +t12: +wh24 +tAUTHORS +n40 0 +f1 +V1440 +H0 +tHan-Wen +wh24 +tNienhuys +wh24 +t +n40 0 +V1520 +H0 +tJan +wh24 +tNieuwenhuizen +wh24 +t +n40 0 +V1600 +H0 +tHave +wh24 +tfun! +n40 0 +V2560 +H1440 +n40 0 +x trailer +V2640 +x stop diff --git a/NEWS b/NEWS index dffc1bfbdd..95b2f1cbca 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,36 @@ +pl 51.uu2 + - grace note flags, move Lookup::flag into Stem + - faq updates: doc++, Matt's page + - fixes for doc++. + - bartype string uses "brace" and "bracket" iso. "{" and "[" + - some of assert()s replaced by programming_error () + +pl 51.mb1 + - N.W.Gade: added real grace notes + - feta-banier.mf: added grace note flag + +pl 51.uu1 + - use weAreGraceContext \property to determine self_grace_b_ + - made more engravers grace aware. + +pl 50.jcn2 + - filed egcs bug report for powerpc. + - removed unnecessary #ifdef powerpc + - grace and other fixes for auto-beamer + - grace and other fixes for (beam-)stem-lengths + - input/test/bugs/hairy-grace.ly (urg) + - input/test/bugs/grace-accidents.ly (urg) + - input/test/bugs/grace-grace.ly (core) + - fixes: gnossienne-4.ly + +pl 50.hwn2 + - Timing_translator: add proccing moments to nearest global translator, +not to top global translator. + - cadenza.ly: grace notes. + - bf: auto staff switching +************ +pl 51 pl 50.hwn1 - grace notes: * Grace_iterator @@ -1229,7 +1261,7 @@ pl5.jcn4 pl5.jcn3 - website fixes -pl5.jcn2 +opl5.jcn2 - extender-*, see input/test/extender.ly - bf: half-beam length (urg) - fixes: standchen, star @@ -1459,7 +1491,7 @@ pl 17.jcn3 - tex output support - all output through scheme - option: f, output-format=X - - geile placebox +o - geile placebox - mf/mfplain.ini pl 17.jcn2 diff --git a/TODO b/TODO index 8b98d55d5c..9ed49271f0 100644 --- a/TODO +++ b/TODO @@ -10,6 +10,7 @@ Grep for TODO and ugh/ugr/urg. .* BUGS . * indent = 0.0 with linewidth=-1.0 +. * music ending in grace notes. . * PostScript . * header for PS enteredby = "bla " . * ps/lily.ps see comments. @@ -17,8 +18,24 @@ Grep for TODO and ugh/ugr/urg. . * midi key. . * fix singleStaffBracket . * declare performers in \midi +. * check EGCS version . * input/test/stem-spacing.ly: 12/4 touches first note . * timesig: sometimes bottom digit too high +. * [ ] +. * I'm using lilypond version 1.1.50 and have a problem with repeat/alternative. +I tried this code + + \time 4/4; + \repeat semi 2 + { + \partial 4; f'8 g' | a'4 a'8 a'4 g'8 f'4 | f' d'8 c'( )c'2 | + f'4 f' + } + \alternative + { + { [g'8 f'] g' a'( | )a'2 r4 } + { \partial 2; [g'8 f'] e' f'( | )f'2 r2 } + } . * fix MIDI . * \shape 1st dim skipped? . * turn slope-damping on/off @@ -54,6 +71,8 @@ preMudelaExample[eps]{}, and change it in document body sometimes. .* Cleanups needed . * \$ and $ identifier syntax in examples. +. * Key_engraver, Local_key_item +. * Think of comprehensive solution for "if (grace_b == self_grace_b_)" . * Y dimension units: staffspace vs. Point . * Beam . * Stem @@ -65,6 +84,7 @@ preMudelaExample[eps]{}, and change it in document body sometimes. . * parser .* TODO before 1.2 +. * Grace_slur_engraver. . * Morally pure LilyPond. . * Remove non-free software links. . * Remove meta article LilyPond. diff --git a/VERSION b/VERSION index c6ae35befa..2284fb9a18 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=1 -PATCH_LEVEL=51 +PATCH_LEVEL=52 MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/flower/data-file.cc b/flower/data-file.cc index 996752cfce..4852e8588e 100644 --- a/flower/data-file.cc +++ b/flower/data-file.cc @@ -63,9 +63,6 @@ Data_file::get_word() return s; } -/** get a char - Only class member who uses text_file::get - */ char Data_file::data_get() { @@ -80,7 +77,6 @@ Data_file::data_get() return c; } -/// read line, gobble '\n' String Data_file::get_line() { @@ -92,7 +88,6 @@ Data_file::get_line() return s; } -/// gobble stuff before first entry on a line. void Data_file::gobble_leading_white() { diff --git a/flower/directed-graph.cc b/flower/directed-graph.cc index 1eb6d8b449..0c9a7cc085 100644 --- a/flower/directed-graph.cc +++ b/flower/directed-graph.cc @@ -27,7 +27,7 @@ Directed_graph_node::get_out_edge_arr() const return edge_out_l_arr_; } -/** +/* Should not copy deps automatically */ Directed_graph_node::Directed_graph_node (Directed_graph_node const&) diff --git a/flower/dstream.cc b/flower/dstream.cc index 3da8dfeb45..0b7be148c8 100644 --- a/flower/dstream.cc +++ b/flower/dstream.cc @@ -14,7 +14,7 @@ #include "string-convert.hh" #include "rational.hh" -/// indent of each level +/// amount of indentation for each level. const int INDTAB = 2; /* diff --git a/flower/include/array.icc b/flower/include/array.icc index 807382880e..be8e95d680 100644 --- a/flower/include/array.icc +++ b/flower/include/array.icc @@ -22,7 +22,18 @@ template INLINE void arrcpy (T*dest, T*src, int count) { for (int i_shadows_local=0; i_shadows_local < count ; i_shadows_local++) +#ifdef __powerpc__ + { + /* + urg: wierd egcs-1.1.2 bug on ppc + bug report filed + */ + *dest = *src; + dest++, src++; + } +#else *dest++ = *src++; +#endif } template INLINE void diff --git a/flower/include/data-file.hh b/flower/include/data-file.hh index 5440064923..9fde76b305 100644 --- a/flower/include/data-file.hh +++ b/flower/include/data-file.hh @@ -23,6 +23,10 @@ public: Text_stream::eof_b; Text_stream::get_name; + /** + Get a char. + Only class member who uses text_file::get + */ char data_get(); void data_unget (char c) { unget (c); diff --git a/flower/include/file-path.hh b/flower/include/file-path.hh index 02ecb1a884..bdfa5e3870 100644 --- a/flower/include/file-path.hh +++ b/flower/include/file-path.hh @@ -26,10 +26,8 @@ class File_path : private Array { public: - /// locate a file in the search path String find (String nm) const; - /// add to end of path. Array::push; String str ()const; void add (String str); diff --git a/flower/include/string.hh b/flower/include/string.hh index e9d7cd10e7..24b975949a 100644 --- a/flower/include/string.hh +++ b/flower/include/string.hh @@ -139,7 +139,6 @@ public: /// index of rightmost element of string (???) int index_last_i (char const* string) const; - /// index of leftmost #c# int index_i (char c) const; /// index of leftmost occurance of STRING diff --git a/flower/string-convert.cc b/flower/string-convert.cc index 86d44c88c4..3959dbbc94 100644 --- a/flower/string-convert.cc +++ b/flower/string-convert.cc @@ -24,8 +24,6 @@ @see man 3 snprintf */ - -// hmm, this is shorter even than PATH_MAX static const int STRING_BUFFER_LEN=1024; String diff --git a/input/bugs/foo.ly b/input/bugs/foo.ly index fdf15b17fc..5c158b32e7 100644 --- a/input/bugs/foo.ly +++ b/input/bugs/foo.ly @@ -3,7 +3,7 @@ c2. c1 \grace { [c32 d] } - + c4 }} diff --git a/input/bugs/grace-accident.ly b/input/bugs/grace-accident.ly new file mode 100644 index 0000000000..5d2cd4c027 --- /dev/null +++ b/input/bugs/grace-accident.ly @@ -0,0 +1,7 @@ +%grace-accident.ly +\score{ + \context Staff=foo \notes\relative c''{ +% c8 % remove line to dump core + \grace { cis8 dis } e,4 + } +} diff --git a/input/bugs/grace-grace.fly b/input/bugs/grace-grace.fly new file mode 100644 index 0000000000..8b43d9da49 --- /dev/null +++ b/input/bugs/grace-grace.fly @@ -0,0 +1,2 @@ +% core +\grace a8 \grace b8 c4 diff --git a/input/bugs/hairy-grace.ly b/input/bugs/hairy-grace.ly new file mode 100644 index 0000000000..e7a3af1dac --- /dev/null +++ b/input/bugs/hairy-grace.ly @@ -0,0 +1,14 @@ +%hairy grace stuff: + +\score{ + \context Staff=foo \notes\relative c''{ + % two auto beams + d4 \grace c8 d8 \grace { d16 c16 } d8 c2 + \property Voice.verticalDirection = 1 + % colliding beams + d4 \grace c8 d8 \grace { d16 c16 } d8 c2 + \property Voice.verticalDirection = 0 + % leger lines + d,,4 \grace c8 d8 \grace { d16 c16 } d8 c2 + } +} diff --git a/input/test/auto-staff-switch.ly b/input/test/auto-staff-switch.ly index 21cb6c5922..627447148d 100644 --- a/input/test/auto-staff-switch.ly +++ b/input/test/auto-staff-switch.ly @@ -2,7 +2,7 @@ \score { \notes { \context AutoSwitchGrandStaff \relative c' { - c8^8 d^8 b^8 a^8 [a,^8 f'^8 g,^8 ~ g] + c8 d b a' a, f' g,4 ~ g } } @@ -12,19 +12,23 @@ \accepts AutoSwitchGrandStaff; } \translator{ - \context "Line_group_engraver_group"; + \type "Engraver_group_engraver"; \name AutoSwitchGrandStaff; \consists "Span_bar_engraver"; \consists "Vertical_align_engraver"; \consists "Piano_bar_engraver"; + \consistsend "Axis_group_engraver"; minVerticalAlign = 2.*\staffheight; maxVerticalAlign = 2.*\staffheight; + switcherName = "Voice"; + acceptorName = "Thread"; + staffContextName = "Staff"; \accepts "AutoSwitchContext"; \accepts "Staff"; } \translator { - \context "Engraver_group_engraver"; + \type "Engraver_group_engraver"; \name "AutoSwitchContext"; \consists "Staff_switching_translator"; } diff --git a/input/test/grace.ly b/input/test/grace.ly index fecf639c71..47e235cb33 100644 --- a/input/test/grace.ly +++ b/input/test/grace.ly @@ -3,6 +3,6 @@ \grace c8 c4 \grace { [c32 c32] } c4 \grace { [b32 ( c32] } c4 - \grace c16 [c8 c8] + \grace c8 [c8 c8] } } diff --git a/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc index 07cd63aa6c..20cb6b70c8 100644 --- a/lily/auto-beam-engraver.cc +++ b/lily/auto-beam-engraver.cc @@ -230,87 +230,102 @@ Auto_beam_engraver::do_pre_move_processing () void Auto_beam_engraver::do_removal_processing () { + if (stem_l_arr_p_) + end_beam (); typeset_beam (); - if (stem_l_arr_p_ && stem_l_arr_p_->size ()) - { - junk_beam (); - } +} + +bool +Auto_beam_engraver::same_grace_state_b (Score_element* e) +{ + bool gr = (e->get_elt_property (grace_scm_sym) != SCM_BOOL_F) ; + + return gr == get_property ("weAreGraceContext",0).to_bool (); } void Auto_beam_engraver::acknowledge_element (Score_element_info info) { - if (Beam *b = dynamic_cast (info.elem_l_)) - { - if (stem_l_arr_p_) - { - junk_beam (); - } - } - if (Bar *b = dynamic_cast (info.elem_l_)) - { - if (stem_l_arr_p_) - { - junk_beam (); - } - } - if (stem_l_arr_p_) { - Rhythmic_req *rhythmic_req = dynamic_cast (info.req_l_); - if (!rhythmic_req) - return; - - if (dynamic_cast (info.elem_l_)) - { - end_beam (); - return; - } - - Stem* stem_l = dynamic_cast (info.elem_l_); - if (!stem_l) - return; - - if (stem_l->beam_l_) - { - junk_beam (); - return; - } - - - /* - now that we have last_add_mom_, perhaps we can (should) do away - with these individual junk_beams - */ - if (rhythmic_req->duration_.durlog_i_ <= 2) + if (Beam *b = dynamic_cast (info.elem_l_)) { - end_beam (); - return; + if (same_grace_state_b (b)) + junk_beam (); } - - Moment start = get_staff_info().time_C_->whole_in_measure_; - if (!grouping_p_->child_fit_b (start)) + else if (Bar *b = dynamic_cast (info.elem_l_)) { - end_beam (); + if (same_grace_state_b (b)) + junk_beam (); } - else + else if (Rhythmic_req *rhythmic_req = dynamic_cast (info.req_l_)) { - /* - if shortest duration would change - reconsider ending/starting beam first. - */ - Moment mom = rhythmic_req->duration_.length_mom (); - if (mom < shortest_mom_) + if (Rest* rest_l = dynamic_cast (info.elem_l_)) { - shortest_mom_ = mom; - consider_end_and_begin (); + if (same_grace_state_b (rest_l)) + end_beam (); + } + else if (Stem* stem_l = dynamic_cast (info.elem_l_)) + { + /* + if we're a nice grace beam, but the new note is regular, + gracefully end beam, and consider starting a regular one. + */ + /* + When does that happen !? --hwn + */ +#if 0 + if (stem_l_arr_p_ && stem_l_arr_p_->size () + && grace_b (stem_l_arr_p_->top ()) + && !grace_b (stem_l)) + { + end_beam (); + consider_end_and_begin (); + if (!stem_l_arr_p_) + return; + } +#endif + if (same_grace_state_b (stem_l)) + { + if (stem_l->beam_l_) + junk_beam (); + /* + now that we have last_add_mom_, perhaps we can (should) do away + with these individual junk_beams + */ + else if (rhythmic_req->duration_.durlog_i_ <= 2) + end_beam (); + else + { + Moment start = get_staff_info().time_C_->whole_in_measure_; + if (!grouping_p_->child_fit_b (start)) + end_beam (); + else + { + /* + if shortest duration would change + reconsider ending/starting beam first. + */ + Moment mom = rhythmic_req->duration_.length_mom (); + if (mom < shortest_mom_) + { + if (stem_l_arr_p_->size ()) + { + shortest_mom_ = mom; + consider_end_and_begin (); + } + shortest_mom_ = mom; + } + grouping_p_->add_child (start, rhythmic_req->length_mom ()); + + stem_l_arr_p_->push (stem_l); + Moment now = now_mom (); + last_add_mom_ = now; + extend_mom_ = extend_mom_ >? now + rhythmic_req->length_mom (); + } + } + } } - grouping_p_->add_child (start, rhythmic_req->length_mom ()); - - stem_l_arr_p_->push (stem_l); - Moment now = now_mom (); - last_add_mom_ = now; - extend_mom_ = extend_mom_ >? now + rhythmic_req->length_mom (); } } } @@ -319,8 +334,6 @@ void Auto_beam_engraver::junk_beam () { assert (stem_l_arr_p_); - /* for (int i = 0; i < stem_l_arr_p_->size (); i++) - (*stem_l_arr_p_)[i]->flag_i_ = 0;*/ delete stem_l_arr_p_; stem_l_arr_p_ = 0; diff --git a/lily/bar.cc b/lily/bar.cc index dd4e90efb8..31ff0b9c25 100644 --- a/lily/bar.cc +++ b/lily/bar.cc @@ -25,10 +25,6 @@ Bar::do_print () const { #ifndef NPRINT String s = type_str_; - if (s == "{") - s = "brace"; - if (s == "[") - s = "bracket"; DOUT << "type = " << s; #endif } @@ -62,8 +58,8 @@ static char const *bar_breaks[][3] ={ {"||", "||", ""}, {".|.", ".|.", ""}, {"", "scorebar", "scorepostbreak"}, - {"", "{", "{"}, - {"", "[", "["}, + {"", "brace", "brace"}, + {"", "bracket", "bracket"}, {0,0,0} }; diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index cb6ec3ef3c..4e860dcd21 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -138,11 +138,11 @@ Beam_engraver::acknowledge_element (Score_element_info info) if (!stem_l || stem_l->beam_l_) return; - bool self_grace = beam_p_->get_elt_property (grace_scm_sym) != SCM_BOOL_F; + bool stem_grace = stem_l->get_elt_property (grace_scm_sym) != SCM_BOOL_F; - if (!self_grace && stem_grace) - return; + if (get_property ("weAreGraceContext",0).to_bool () != stem_grace) + return; Rhythmic_req *rhythmic_req = dynamic_cast (info.req_l_); if (!rhythmic_req) diff --git a/lily/beam.cc b/lily/beam.cc index 264cdf5b10..c6ae9c7f89 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -320,9 +320,11 @@ Beam::set_steminfo () total_count_i++; } + bool grace_b = get_elt_property (grace_scm_sym) != SCM_BOOL_F; + String type_str = grace_b ? "grace_" : ""; int stem_max = (int)rint(paper_l ()->get_var ("stem_max")); - Real shorten_f = paper_l ()->get_var (String ("forced_stem_shorten" - + to_str (multiple_i_ get_var (type_str + "forced_stem_shorten" + + to_str (multiple_i_ hpos_f () > here->hpos_f ()); - assert (!prev || prev->hpos_f () < here->hpos_f ()); + if ((next && !(next->hpos_f () > here->hpos_f ())) || + (prev && !(prev->hpos_f () < here->hpos_f ()))) + programming_error ("Beams are not left-to-right"); Real staffline_f = paper_l ()->rule_thickness (); Real interbeam_f = paper_l ()->interbeam_f (multiple_i_); diff --git a/lily/break.cc b/lily/break.cc index afe439cd5d..f362ef5ff1 100644 --- a/lily/break.cc +++ b/lily/break.cc @@ -65,7 +65,7 @@ Break_algorithm::find_break_indices () const return retval; } -/// return all breakable columns + Line_of_cols Break_algorithm::find_breaks () const { diff --git a/lily/grace-iterator.cc b/lily/grace-iterator.cc index 3fdf4303f4..f93e13e942 100644 --- a/lily/grace-iterator.cc +++ b/lily/grace-iterator.cc @@ -32,12 +32,12 @@ Grace_iterator::do_process_and_next (Moment m) delete child_iter_p_; child_iter_p_ = 0; t->finish (); - Music_iterator::do_process_and_next (m); } else { warning (_("No Grace context available!")); } + Music_iterator::do_process_and_next (m); } Moment diff --git a/lily/graphical-axis-group.cc b/lily/graphical-axis-group.cc index 05b70e5cf1..484b25368d 100644 --- a/lily/graphical-axis-group.cc +++ b/lily/graphical-axis-group.cc @@ -13,8 +13,8 @@ #include "debug.hh" /** don't copy anything: an element can only be in one - Graphical_axis_group at one time. */ -Graphical_axis_group::Graphical_axis_group (Graphical_axis_group const&s) + Graphical_axis_group at one time. */ +Graphical_axis_group::Graphical_axis_group(Graphical_axis_group const&s) { axes_ = s.axes_; ordered_b_ = s.ordered_b_; diff --git a/lily/include/auto-beam-engraver.hh b/lily/include/auto-beam-engraver.hh index 6f3eefff8c..18b5ffceb0 100644 --- a/lily/include/auto-beam-engraver.hh +++ b/lily/include/auto-beam-engraver.hh @@ -32,6 +32,7 @@ private: Beam* create_beam_p (); void end_beam (); void junk_beam (); + bool same_grace_state_b (Score_element* e); void typeset_beam (); Moment shortest_mom_; diff --git a/lily/include/graphical-axis-group.hh b/lily/include/graphical-axis-group.hh index c21995c39c..eacf5ff1ad 100644 --- a/lily/include/graphical-axis-group.hh +++ b/lily/include/graphical-axis-group.hh @@ -29,7 +29,7 @@ public: Interval extent (Axis) const; virtual void do_print() const; - Graphical_axis_group (Graphical_axis_group const&); + Graphical_axis_group(Graphical_axis_group const&s); Graphical_axis_group (); virtual void set_axes (Axis,Axis); void remove_all (); diff --git a/lily/include/key-engraver.hh b/lily/include/key-engraver.hh index aef3f27faf..fa5dbc4ff7 100644 --- a/lily/include/key-engraver.hh +++ b/lily/include/key-engraver.hh @@ -32,6 +32,7 @@ public: Array old_accidental_idx_arr_; + bool key_changed_b() const; protected: virtual bool do_try_music (Music *req_l); diff --git a/lily/include/local-key-engraver.hh b/lily/include/local-key-engraver.hh index 8109865d24..bba7b4cadd 100644 --- a/lily/include/local-key-engraver.hh +++ b/lily/include/local-key-engraver.hh @@ -13,7 +13,7 @@ #include "parray.hh" struct Local_key_engraver : Engraver { - Local_key_item *key_item_p_; + Local_key_item *key_item_p_; protected: VIRTUAL_COPY_CONS(Translator); virtual void do_process_requests(); @@ -21,15 +21,17 @@ protected: virtual void do_pre_move_processing(); virtual void do_creation_processing (); virtual void process_acknowledged (); + virtual void do_removal_processing (); public: Key local_key_; - Key const *key_C_; + Key_engraver *key_grav_l_; Array mel_l_arr_; Array support_l_arr_; Link_array forced_l_arr_; Link_array tied_l_arr_; Local_key_engraver(); + bool self_grace_b_; }; diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index e1b827e523..58a7e34ccb 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -37,7 +37,6 @@ public: Molecule ledger_line (Interval) const; Molecule fill (Box b) const; Molecule filledbox (Box b) const; - Molecule flag (int, Direction) const; Molecule hairpin (Real width, Real height, bool decresc, bool continued) const; Molecule tuplet_bracket (Real dy, Real dx, Real thick,Real interline, Direction dir) const; Molecule rest (int, bool outside, String) const; diff --git a/lily/include/paper-outputter.hh b/lily/include/paper-outputter.hh index 847ae9ec12..8eeae2cf30 100644 --- a/lily/include/paper-outputter.hh +++ b/lily/include/paper-outputter.hh @@ -15,11 +15,18 @@ #include "string.hh" #include "lily-guile.hh" +#ifdef __powerpc__ +#include "protected-scm.hh" +#endif + /** Abstract interface for a Score_element to output itself. */ class Paper_outputter { +#ifdef __powerpc__ + Protected_scm port_; +#endif public: Paper_outputter (Paper_stream *); ~Paper_outputter (); diff --git a/lily/include/stem-info.hh b/lily/include/stem-info.hh index a909ac952e..e631280c58 100644 --- a/lily/include/stem-info.hh +++ b/lily/include/stem-info.hh @@ -23,7 +23,6 @@ struct Stem_info { Real interstaff_f_; Stem* stem_l_; - Stem_info (); Stem_info (Stem *, int); }; diff --git a/lily/include/stem.hh b/lily/include/stem.hh index 04dd3f1ce1..9f8fb0a7e3 100644 --- a/lily/include/stem.hh +++ b/lily/include/stem.hh @@ -100,6 +100,7 @@ public: Interval_t head_positions() const; protected: + Molecule flag () const; virtual void do_substitute_element_pointer (Score_element*,Score_element*); virtual void do_pre_processing(); virtual Interval do_width() const; diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index 519d8f9500..0fc8ad8946 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -21,6 +21,12 @@ Key_engraver::Key_engraver () do_post_move_processing (); } +bool +Key_engraver::key_changed_b () const +{ + return keyreq_l_ ; +} + void Key_engraver::create_key () { diff --git a/lily/leastsquares.cc b/lily/leastsquares.cc index 0f1568f29f..a9bb8df655 100644 --- a/lily/leastsquares.cc +++ b/lily/leastsquares.cc @@ -1,4 +1,5 @@ #include "leastsquares.hh" +#include "warn.hh" void Least_squares::OK() const @@ -6,7 +7,7 @@ Least_squares::OK() const assert (input.size() > 1); Real dx = 0.0; for (int i=1; i < input.size(); i++) - dx += abs (input[i-1].x() - input[i].x ()); + dx += abs (input[i-1].x() - input[i].x ()); assert (dx); } @@ -14,7 +15,6 @@ Least_squares::OK() const void Least_squares::minimise (Real &coef, Real &offset) { - OK(); Real sx = 0.0; Real sy = 0.0; Real sqx =0.0; @@ -30,9 +30,13 @@ Least_squares::minimise (Real &coef, Real &offset) sxy += x*y; } int N = input.size(); - - coef = (N * sxy - sx*sy)/(N*sqx - sqr (sx)); + coef =0.0; + offset =0.; + + Real den = (N*sqx - sqr (sx)); + if (!N || !den) + programming_error ("Least_squares::minimise(): Nothing to minimise"); + coef = (N * sxy - sx*sy)/den; offset = (sy - coef * sx)/N; - } diff --git a/lily/local-key-engraver.cc b/lily/local-key-engraver.cc index c5230c0905..1307cba000 100644 --- a/lily/local-key-engraver.cc +++ b/lily/local-key-engraver.cc @@ -19,14 +19,15 @@ Local_key_engraver::Local_key_engraver() { - key_C_ = 0; + key_grav_l_ = 0; key_item_p_ =0; + self_grace_b_ = false; } void Local_key_engraver::do_creation_processing () { -/* + /* UGHGUHGUH. Breaks if Key_engraver is removed from under us. @@ -34,15 +35,23 @@ Local_key_engraver::do_creation_processing () Translator * result = daddy_grav_l()->get_simple_translator ("Key_engraver"); - if (!result) + key_grav_l_ = dynamic_cast (result); + + if (!key_grav_l_) { warning (_ ("out of tune") + "! " + _ ("can't find") + " Key_engraver"); } else { - key_C_ = &(dynamic_cast (result))->key_; - local_key_ = *key_C_; + local_key_ = key_grav_l_->key_; } + + self_grace_b_ = get_property ("weAreGraceContext",0 ).to_bool (); + + /* + TODO + (if we are grace) get key info from parent Local_key_engraver + */ } void @@ -84,6 +93,12 @@ Local_key_engraver::process_acknowledged () } } +void +Local_key_engraver::do_removal_processing () +{ + // TODO: signal accidentals to Local_key_engraver the +} + void Local_key_engraver::do_pre_move_processing() { @@ -107,17 +122,17 @@ Local_key_engraver::acknowledge_element (Score_element_info info) { Note_req * note_l = dynamic_cast (info.req_l_); Note_head * note_head = dynamic_cast (info.elem_l_); + + bool gr = (info.elem_l_->get_elt_property (grace_scm_sym)!=SCM_BOOL_F); + if (gr != self_grace_b_) + return; if (note_l && note_head) { mel_l_arr_.push (note_l); support_l_arr_.push (note_head); } - else if (dynamic_cast (info.req_l_)) - { - local_key_ = *key_C_; - } - else if (Tie * tie_l = dynamic_cast (info.elem_l_)) + else if (Tie * tie_l = dynamic_cast (info.elem_l_)) { tied_l_arr_.push (tie_l-> head_l_drul_[RIGHT]); } @@ -130,8 +145,12 @@ Local_key_engraver::do_process_requests() if (time_C_ && !time_C_->whole_in_measure_) { bool no_res = get_property ("noResetKey",0).to_bool (); - if (!no_res && key_C_) - local_key_= *key_C_; + if (!no_res && key_grav_l_) + local_key_= key_grav_l_->key_; + } + else if (key_grav_l_ && key_grav_l_->key_changed_b ()) + { + local_key_ = key_grav_l_->key_; } } diff --git a/lily/lookup.cc b/lily/lookup.cc index b28cc21c59..0aedf8c219 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -156,9 +156,9 @@ Lookup::simple_bar (String type, Real h, Paper_def* paper_l) const Molecule Lookup::bar (String str, Real h, Paper_def *paper_l) const { - if (str == "[") + if (str == "bracket") return staff_bracket (h); - else if (str == "{") + else if (str == "brace") return staff_brace (h); Real kern = paper_l->get_var ("bar_kern"); @@ -309,13 +309,6 @@ Lookup::fill (Box b) const return m; } -Molecule -Lookup::flag (int j, Direction d) const -{ - char c = (d == UP) ? 'u' : 'd'; - return afm_find (String ("flags-") + to_str (c) + to_str (j)); -} - Molecule Lookup::rest (int j, bool o, String style) const { diff --git a/lily/note-column.cc b/lily/note-column.cc index 282ab3cdd1..c5c8dfca33 100644 --- a/lily/note-column.cc +++ b/lily/note-column.cc @@ -65,7 +65,7 @@ Note_column::dir () const else if (head_l_arr_.size ()) return sign (head_positions_interval().center ()); - assert (false); + programming_error ("Note column without heads and stem!"); return CENTER; } diff --git a/lily/paper-outputter.cc b/lily/paper-outputter.cc index 1df5d85a38..bc926f42d3 100644 --- a/lily/paper-outputter.cc +++ b/lily/paper-outputter.cc @@ -30,6 +30,26 @@ Paper_outputter::Paper_outputter (Paper_stream *s) { outstream_l_ = s; output_header (); + +#ifdef __powerpc__ + if (output_global_ch == String ("scm")) + { + int fd = 1; + ofstream * of = dynamic_cast (outstream_l_->os); + if (of) + fd = of->rdbuf()->fd(); + FILE *file = fdopen (fd, "a"); + port_ = scm_standard_stream_to_port (file, "a", ""); + scm_display (gh_str02scm ( + "(primitive-load-path 'lily.scm)\n" + "(eval (tex-scm 'all-definitions))\n" + ";(eval (ps-scm 'all-definitions))\n" + "(display (map (lambda (x) (string-append (eval x) \"%\\n\")) '(\n" + ), port_); + + scm_fflush (port_); + } +#else if (output_global_ch == String ("scm")) *outstream_l_->os << "" "(primitive-load-path 'lily.scm)\n" @@ -37,6 +57,7 @@ Paper_outputter::Paper_outputter (Paper_stream *s) ";(eval (ps-scm 'all-definitions))\n" "(display (map (lambda (x) (string-append (eval x) \"\\n\")) '(\n" ; +#endif } Paper_outputter::~Paper_outputter () @@ -44,10 +65,18 @@ Paper_outputter::~Paper_outputter () SCM scm = gh_list (ly_symbol ("end-output"), SCM_UNDEFINED); output_scheme (scm); +#ifdef __powerpc__ if (String (output_global_ch) == "scm") { - *outstream_l_->os << ")"; + scm_display (gh_str02scm (")))\n"), port_); + scm_fflush (port_); } +#else + if (String (output_global_ch) == "scm") + { + *outstream_l_->os << ")))"; + } +#endif } void @@ -115,6 +144,9 @@ Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm) { Atom * i = ptr->car_; #endif +#if 0 + } +#endif Offset a_off = i->off_; a_off += o; @@ -168,11 +200,20 @@ Paper_outputter::output_comment (String str) void Paper_outputter::output_scheme (SCM scm) { +#ifdef __powerpc__ + if (String (output_global_ch) == "scm") + { + scm_write (scm, port_); + scm_display (gh_str02scm ("\n"), port_); + scm_fflush (port_); + } +#else if (String (output_global_ch) == "scm") { SCM result = scm_eval (scm_listify (ly_symbol ("scm->string"), ly_quote_scm (scm), SCM_UNDEFINED)); *outstream_l_->os << ly_scm2string (result) << endl; } +#endif else { SCM result = scm_eval (scm); diff --git a/lily/rhythmic-column-engraver.cc b/lily/rhythmic-column-engraver.cc index 8aab13a276..d1d322af16 100644 --- a/lily/rhythmic-column-engraver.cc +++ b/lily/rhythmic-column-engraver.cc @@ -71,6 +71,10 @@ Rhythmic_column_engraver::process_acknowledged () void Rhythmic_column_engraver::acknowledge_element (Score_element_info i) { + if (get_property ("weAreGraceContext",0).to_bool () != + (i.elem_l_->get_elt_property (grace_scm_sym) != SCM_BOOL_F)) + return ; + Item * item = dynamic_cast (i.elem_l_); if (Stem*s=dynamic_cast (item)) { diff --git a/lily/spacing-spanner.cc b/lily/spacing-spanner.cc index 9c77ccea57..fad2d6903a 100644 --- a/lily/spacing-spanner.cc +++ b/lily/spacing-spanner.cc @@ -145,9 +145,9 @@ Spacing_spanner::default_bar_spacing (Score_column *lc, Score_column *rc, Moment Real durational_distance = 0; Moment delta_t = rc->when_mom () - lc->when_mom () ; - /* + /* ugh should use shortest_playing distance - */ + */ if (delta_t) { Real k= paper_l()->arithmetic_constant (shortest); diff --git a/lily/span-score-bar-engraver.cc b/lily/span-score-bar-engraver.cc index d494cdd204..048e752936 100644 --- a/lily/span-score-bar-engraver.cc +++ b/lily/span-score-bar-engraver.cc @@ -34,7 +34,7 @@ Piano_bar_engraver::get_span_bar_p () const { Span_bar *s= new Span_bar; s->dim_cache_[X_AXIS]->set_empty (true); - s->type_str_ = "{"; + s->type_str_ = "brace"; return s; } @@ -43,7 +43,7 @@ Staff_group_bar_engraver::get_span_bar_p () const { Span_bar *s= new Span_bar; s->dim_cache_[X_AXIS]->set_empty (true); - s->type_str_ = "["; + s->type_str_ = "bracket"; return s; } @@ -53,7 +53,7 @@ Staff_group_bar_engraver::acknowledge_element (Score_element_info i) Base_span_bar_engraver::acknowledge_element (i); if (Span_bar * b = dynamic_cast (i.elem_l_)) { - if (b->type_str_ == "{") + if (b->type_str_ == "brace") b->translate_axis ( -paper_l ()->get_realvar (interline_scm_sym), X_AXIS); // ugh } diff --git a/lily/staff-switching-translator.cc b/lily/staff-switching-translator.cc index 570631c3a7..ae56d110d3 100644 --- a/lily/staff-switching-translator.cc +++ b/lily/staff-switching-translator.cc @@ -19,6 +19,8 @@ class Staff_switching_translator : public Engraver protected: virtual bool do_try_music (Music* m); virtual void do_creation_processing (); + + void default_voice (Direction); public: Staff_switching_translator (); VIRTUAL_COPY_CONS(Translator); @@ -33,13 +35,22 @@ Staff_switching_translator::do_creation_processing () { Translator_group * daddy =daddy_grav_l (); // staff switching context - staff_handle_drul_[UP].set_translator (daddy->daddy_trans_l_ -> find_create_translator_l ("Staff", "upper")); - staff_handle_drul_[DOWN].set_translator (daddy->daddy_trans_l_-> find_create_translator_l ("Staff", "lower")); + Scalar s = get_property("staffContextName", 0); + staff_handle_drul_[UP].set_translator (daddy->daddy_trans_l_ -> find_create_translator_l (s, "upper")); + staff_handle_drul_[DOWN].set_translator (daddy->daddy_trans_l_-> find_create_translator_l (s, "lower")); staff_handle_drul_[DOWN].report_to_l ()->set_property ("defaultClef", "bass"); + + default_voice (UP); +} - my_voice_.set_translator (staff_handle_drul_[UP].report_to_l ()->find_create_translator_l ("Voice", daddy->id_str_)); + +void +Staff_switching_translator::default_voice (Direction d) +{ + Scalar s = get_property ("acceptorName",0); + my_voice_.set_translator (staff_handle_drul_[d].report_to_l ()->find_create_translator_l ("Thread", daddy_trans_l_->id_str_)); } bool @@ -54,6 +65,16 @@ Staff_switching_translator::do_try_music (Music*m) Translator_group * mv = my_voice_.report_to_l (); Translator_group *dest_staff =staff_handle_drul_[staff].report_to_l (); + Scalar s = get_property ("switcherName", 0); + + while (mv && mv->type_str_ != s) + { + mv = mv -> daddy_trans_l_; + } + + if (!mv) + default_voice (staff); + if (mv->daddy_trans_l_ != dest_staff) { mv->daddy_trans_l_->remove_translator_p (mv); diff --git a/lily/stem-engraver.cc b/lily/stem-engraver.cc index a78be1a199..296422cfea 100644 --- a/lily/stem-engraver.cc +++ b/lily/stem-engraver.cc @@ -124,6 +124,12 @@ Stem_engraver::do_pre_move_processing() stem_p_->set_elt_property (length_scm_sym, gh_double2scm (prop.to_f ())); } + prop = get_property ("stemStyle", 0); + if (prop.to_bool ()) + { + stem_p_->set_elt_property (style_scm_sym, gh_str02scm (prop.ch_C())); + } + typeset_element(stem_p_); stem_p_ = 0; } diff --git a/lily/stem-info.cc b/lily/stem-info.cc index 0cbab88f4d..2993559a84 100644 --- a/lily/stem-info.cc +++ b/lily/stem-info.cc @@ -57,12 +57,15 @@ Stem_info::Stem_info (Stem*s, int mult) // for simplicity, we calculate as if dir == UP idealy_f_ *= beam_dir_; - + + bool grace_b = stem_l_->get_elt_property (grace_scm_sym) != SCM_BOOL_F; + int stem_max = (int)rint(paper_l->get_var ("stem_max")); - Real min_stem_f = paper_l->get_var (String ("minimum_stem_length") - + to_str (mult_i_ get_var (String ("stem_length") - + to_str (mult_i_ get_var (type_str + "minimum_stem_length" + + to_str (mult_i_ get_var (type_str + "stem_length" + + to_str (mult_i_ ? (- 2 * internote_f - beam_f - + (mult_i_ > 0) * beam_f + interbeam_f * (mult_i_ - 1)); + /* + lowest beam of (UP) beam must never be lower than second staffline + + Hmm, reference (Wanske?) + + Although this (additional) rule is probably correct, + I expect that highest beam (UP) should also never be lower + than middle staffline, just as normal stems. + + */ + if (!grace_b) + { + //highest beam of (UP) beam must never be lower than middle staffline + miny_f_ = miny_f_ >? 0; + //lowest beam of (UP) beam must never be lower than second staffline + miny_f_ = miny_f_ >? (- 2 * internote_f - beam_f + + (mult_i_ > 0) * beam_f + interbeam_f * (mult_i_ - 1)); + } } else /* knee */ diff --git a/lily/stem.cc b/lily/stem.cc index 1adaafbfb1..7f5129763f 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -173,8 +173,11 @@ Stem::set_default_stemlen () } else length_f = paper_l ()->get_var ("stem_length0"); - - Real shorten_f = paper_l ()->get_var ("forced_stem_shorten0"); + + bool grace_b = get_elt_property (grace_scm_sym) != SCM_BOOL_F; + String type_str = grace_b ? "grace_" : ""; + + Real shorten_f = paper_l ()->get_var (type_str + "forced_stem_shorten0"); if (!dir_) dir_ = get_default_dir (); @@ -195,7 +198,7 @@ Stem::set_default_stemlen () set_stemend ((dir_ > 0) ? head_positions()[BIGGER] + length_f: head_positions()[SMALLER] - length_f); - if (dir_ * stem_end_f () < 0) + if (!grace_b && (dir_ * stem_end_f () < 0)) set_stemend (0); } @@ -284,6 +287,20 @@ Stem::set_spacing_hints () } } +Molecule +Stem::flag () const +{ + String style; + SCM st = get_elt_property (style_scm_sym); + if ( st != SCM_BOOL_F) + { + st = SCM_CDR(st); + style = ly_scm2string (st); + } + + char c = (dir_ == UP) ? 'u' : 'd'; + return lookup_l ()->afm_find (String ("flags-") + to_str (c) + to_str (flag_i_) + style); +} Interval Stem::do_width () const @@ -293,7 +310,7 @@ Stem::do_width () const ; // TODO! else { - r = lookup_l ()->flag (flag_i_, dir_).dim_.x (); + r = flag ().dim_.x (); r += note_delta_f (); } return r; @@ -326,7 +343,7 @@ Stem::do_brew_molecule_p () const if (!beam_l_ && abs (flag_i_) > 2) { - Molecule fl = lookup_l ()->flag (flag_i_, dir_); + Molecule fl = flag (); fl.translate_axis(stem_y[dir_]*dy, Y_AXIS); mol_p->add_molecule (fl); } diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index 800fab932b..10bc8f196b 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -126,14 +126,19 @@ void Timing_translator::do_pre_move_processing() { timing_req_l_arr_.set_size (0); - Global_translator *global_l = - dynamic_cast (daddy_trans_l_->ancestor_l (100)); // ugh 100. - + Translator *t = this; + Global_translator *global_l =0; + do + { + t = t->daddy_trans_l_ ; + global_l = dynamic_cast (t); + } + while (!global_l); /* allbars == ! skipbars */ bool allbars = ! get_property ("skipBars", 0).to_bool (); - // urg: multi bar rests: should always must process whole of first bar? + // urg: multi bar rests: should always process whole of first bar? if (!time_.cadenza_b_ && allbars) global_l->add_moment_to_process (time_.next_bar_moment ()); } diff --git a/ly/engraver.ly b/ly/engraver.ly index 4be101d52d..dce0e249eb 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -19,21 +19,7 @@ StaffContext=\translator { \consists "Rest_collision_engraver"; \consistsend "Axis_group_engraver"; -%{ - Uncomment to get bar numbers on single staff systems: - - The Bar_number_engraver puts a number over a staff created - at the same level of hierarchy. This why you have to add it - here separately if you want to have numbers on single staff - systems: The Bar_number_engraver in Score_engraver will only - put numbers on bars that are Score ("system") wide. Such - bars are only created when the toplevel system has multiple - children-staffs. -%} -%{ - \consists "Bar_number_engraver"; -%} %{ The Staff_margin_engraver puts the name of the instrument @@ -93,7 +79,6 @@ VoiceContext = \translator { \type "Engraver_group_engraver"; \consists "Dynamic_engraver"; % must come before text_engraver. \name Voice ; - beamAuto = "1"; \consists "Local_key_engraver"; \consists "Breathing_sign_engraver"; @@ -101,6 +86,7 @@ VoiceContext = \translator { \consists "Dot_column_engraver"; \consists "Stem_engraver"; \consists "Beam_engraver"; + beamAuto = "1"; \consists "Auto_beam_engraver"; \include "auto-beam-settings.ly"; % \consists "Abbreviation_beam_engraver"; @@ -125,18 +111,25 @@ GraceContext=\translator { \type "Grace_engraver_group"; \name "Grace"; \consists "Note_heads_engraver"; + \consists "Local_key_engraver"; \consists "Stem_engraver"; \consists "Slur_engraver"; \consists "Timing_engraver"; %UGH. \consists "Beam_engraver"; + beamAuto = "1"; + \consists "Auto_beam_engraver"; + \include "auto-beam-settings.ly"; \consists "Align_note_column_engraver"; \consists "Font_size_engraver"; \consists "Rhythmic_column_engraver"; - + + stemStyle = "grace"; + weAreGraceContext = "1"; fontSize = "-1"; stemLength = "6.0"; verticalDirection = "1"; }; + \translator{\GraceContext} \translator {\VoiceContext} diff --git a/ly/params.ly b/ly/params.ly index 8762d5bb87..c3bbd2edad 100644 --- a/ly/params.ly +++ b/ly/params.ly @@ -12,6 +12,7 @@ interline = \staffheight / 4.0; % thickness of stafflines staffline = \interline / 10.0; +% urg, need grace_ versions of these too? beam_thickness = 0.52 * (\interline - \staffline); interbeam = (2.0 * \interline + \staffline - \beam_thickness) / 2.0; interbeam4 = (3.0 * \interline - \beam_thickness) / 3.0; @@ -27,12 +28,26 @@ stem_length1 = 5.; stem_length2 = 4.; stem_length3 = 3.; +% urg. +% if only these ugly arrays were scm, +% we could override them in the Grace context +grace_factor = 0.8; +grace_stem_length0 = \stem_length0 * \grace_factor; +grace_stem_length1 = \stem_length1 * \grace_factor; +grace_stem_length2 = \stem_length2 * \grace_factor; +grace_stem_length3 = \stem_length3 * \grace_factor; + % only used for beams minimum_stem_length0 = 0.0 ; % not used minimum_stem_length1 = 3. ; minimum_stem_length2 = 2.5; minimum_stem_length3 = 2.0; +grace_minimum_stem_length0 = 0.0 ; % not used +grace_minimum_stem_length1 = \minimum_stem_length1 * \grace_factor; +grace_minimum_stem_length2 = \minimum_stem_length2 * \grace_factor; +grace_minimum_stem_length3 = \minimum_stem_length3 * \grace_factor; + % stems in unnatural (forced) direction should be shortened, % according to [Roush & Gourlay]. Their suggestion to knock off % a whole staffspace seems a bit drastical: we'll do half. @@ -42,6 +57,12 @@ forced_stem_shorten1 = \forced_stem_shorten0; forced_stem_shorten2 = \forced_stem_shorten1; forced_stem_shorten3 = \forced_stem_shorten2; +% don't shorten grace stems, always up +grace_forced_stem_shorten0 = 0.; +grace_forced_stem_shorten1 = \grace_forced_stem_shorten0; +grace_forced_stem_shorten2 = \grace_forced_stem_shorten1; +grace_forced_stem_shorten3 = \grace_forced_stem_shorten2; + % there are several ways to calculate the direction of a beam % % * MAJORITY : number count of up or down notes diff --git a/make/out/lelievijver.lsm b/make/out/lelievijver.lsm index 7f82930eba..e4ebf1611f 100644 --- a/make/out/lelievijver.lsm +++ b/make/out/lelievijver.lsm @@ -1,15 +1,15 @@ Begin3 Titel: LilyPond -Versie: 1.1.51 -Inschrijf datum: 28JUN99 +Versie: 1.1.52 +Inschrijf datum: 30JUN99 Beschrijving: @FLAPTEKST@ Trefwoorden: muziek typezetten midi notatie Auteur: hanwen@stack.nl (Han-Wen Nienhuys) janneke@gnu.org (Jan Nieuwenhuizen) Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys) Voornaamste plek: sunsite.unc.edu /pub/Linux/apps - 770k lilypond-1.1.51.tar.gz + 770k lilypond-1.1.52.tar.gz Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 770k lilypond-1.1.51.tar.gz + 770k lilypond-1.1.52.tar.gz Copi-eer voorwaarden: GPL End diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 1a007b35c3..b3847761cf 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 1.1.51 -Entered-date: 28JUN99 +Version: 1.1.52 +Entered-date: 30JUN99 Description: LilyPond is the GNU Project music typesetter. This program can print beautiful sheet music from a music definition file. It can also play @@ -14,8 +14,8 @@ Author: hanwen@cs.ruu.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 - 770k lilypond-1.1.51.tar.gz + 770k lilypond-1.1.52.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 770k lilypond-1.1.51.tar.gz + 770k lilypond-1.1.52.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 3289839bfc..b14254a632 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.1.51 +Version: 1.1.52 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.51.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.52.tar.gz Summary: A program for printing sheet music. URL: http://www.cs.uu.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys diff --git a/make/toplevel.make.in b/make/toplevel.make.in index 441b1fe1c6..a3e1fd036a 100644 --- a/make/toplevel.make.in +++ b/make/toplevel.make.in @@ -14,7 +14,7 @@ SUBDIRS = scripts buildscripts flower lib lily mf mi2mu po debian \ # SCRIPTS = configure aclocal.m4 -README_FILES = BUGS DEDICATION ANNOUNCE-0.1 ANNOUNCEMENT-1.0 \ +README_FILES = BUGS DEDICATION ANNOUNCE-0.1 ANNOUNCE-1.0 ANNOUNCE-1.2 \ COPYING NEWS-0.1 NEWS-1.0 NEWS-0.0 NEWS TODO AIMS README_TXT_FILES = README.txt AUTHORS.txt INSTALL.txt PATCHES.txt IN_FILES := $(wildcard *.in) diff --git a/mf/feta-banier.mf b/mf/feta-banier.mf index 8a3c2823f2..91ccd66bf5 100644 --- a/mf/feta-banier.mf +++ b/mf/feta-banier.mf @@ -142,7 +142,6 @@ fet_beginchar("16th Flag (up)", "u4", "sixteenthflag") define_pixels(flare, hip_width, hip_thickness, flagspace, foot_depth, foot_thickness); - draw_flag((stemthickness/2,- flagspace), flare, (hip_width, foot_depth), hip_depth_ratio,foot_width_ratio, hip_thickness, foot_thickness); @@ -231,6 +230,34 @@ fet_beginchar("64th Flag (up)", "u6", "sixtyfourthflag") draw (0, 0) .. (0,-2 interline); fet_endchar; +fet_beginchar("grace 8th Flag (up)", "u3grace", "graceeighthflag") + save flare, + hip_depth_ratio, hip_width, + foot_depth, foot_width_ratio; + + flare# = 1.0 interline#; + hip_depth_ratio = .72; + foot_width_ratio = .8; + hip_width# = upflag_width# - hip_thickness#/2; + + foot_depth# = 3 interline#; + + set_char_box(hip_width# * hip_depth_ratio, + hip_width# + stemthickness#/2 + right_upflag_space#, + foot_depth# + foot_thickness#/2, stemthickness#/2) + + define_pixels(flare, hip_width, hip_thickness, + foot_depth, foot_thickness); + draw_flag((stemthickness/2,0), flare, + (hip_width, foot_depth), + hip_depth_ratio, foot_width_ratio, hip_thickness, foot_thickness); + + pickup pencircle scaled stemthickness; + draw (0, 0) .. (0,-2 interline); + draw (-b ,-foot_depth * hip_depth_ratio) .. + (w, -flare); +fet_endchar; + fet_beginchar("8th (down)", "d3", "deighthflag") save flare, hip_depth_ratio, hip_width, @@ -382,4 +409,41 @@ fet_beginchar("64th (down)", "d6", "dsixtyfourthflag") draw (0, 0) .. (0,-2 interline); y_mirror_char; fet_endchar; + + +fet_beginchar("grace 8th (down)", "d3grace", "dgraceeighthflag") + save flare, + hip_depth_ratio, hip_width, + foot_depth, foot_width_ratio; + save flagspace, total_depth, flag_count; + + flag_count = 1; + flare# = .99 interline#; + flagspace# = .9 interline#; + hip_depth_ratio = .72 ; + hip_width# = downflag_width# - hip_thickness#/2; + total_depth# = 2.85 interline#; + (flag_count-1) * flagspace# + foot_depth# = total_depth#; + + foot_width_ratio = .8; + + set_char_box(hip_width# * hip_depth_ratio, + hip_width# + stemthickness#/2 + right_downflag_space#, + total_depth# + foot_thickness#/2, stemthickness#/2) + + define_pixels(flare, hip_width, hip_thickness, + flagspace, + foot_depth, foot_thickness); + + draw_flag((stemthickness/2,- (flag_count-1) *flagspace), flare, + (hip_width, foot_depth), + hip_depth_ratio,foot_width_ratio, hip_thickness, foot_thickness); + + + pickup pencircle scaled stemthickness; + draw (0, 0) .. (0,-2 interline); + draw (-b, -foot_depth * hip_depth_ratio) .. (w,-flare); + y_mirror_char; +fet_endchar; + fet_endgroup("flags"); diff --git a/mf/feta-generic.mf b/mf/feta-generic.mf index 9c88e2d9b6..ad64170dff 100644 --- a/mf/feta-generic.mf +++ b/mf/feta-generic.mf @@ -40,7 +40,7 @@ else: % input feta-eindelijk; % input feta-klef; % input feta-toevallig; - input feta-schrift; +% input feta-schrift; % input feta-haak; % input feta-timesig; fi diff --git a/mutopia/E.Satie/gnossienne-4.ly b/mutopia/E.Satie/gnossienne-4.ly index e1bd1a22e7..26fbb528fb 100644 --- a/mutopia/E.Satie/gnossienne-4.ly +++ b/mutopia/E.Satie/gnossienne-4.ly @@ -19,74 +19,51 @@ global = \notes { \key a \minor; \time 6/4; -% \cadenza 1; \skip 1.*34; \bar ".|"; } -x = \context Voice=x \notes { - % no beams in grace notes - \property Voice.beamAuto = "0" -} - upper = \context Staff=treble \notes\relative c''{ \clef violin; - \stemup - \context Voice=one + \property Voice.verticalDirection = 1 r2 r r r2 r r - r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e - % grace hack - < { es8 )c } \context Voice=x { \stemup s8*1/2 \tiny b8*1/2 ~ } > r4 r2 r + r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e + es8 \grace b({ ))c r4 r2 r r2 r r - r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e - < { es8 )c } \context Voice=x { \stemup s8*1/2 \tiny b8*1/2 ~ } > r4 r2 r - r4 g16( a bes a g a bes a g a bes a g a bes a g fis es fis - % urg, what a syntax - )d4 \tiny fis8 ( *1/2 \normalsize ) gis4*3/4 ~ gis8 r r4 r2 - r4 g16( a bes a g a bes a g a bes a g a bes a g fis es fis - )d4 \tiny fis8(*1/2 \normalsize )gis4*3/4 ~ gis8 r r4 r2 - \tiny a8(*1/2 \normalsize )f4*3/4 ~ f8 r r2 r - r2 r4 a8( b c d c b \tiny b8(*1/2 \normalsize - < { )e8*1/2 )g,8 } \context Voice=x { \stemup s8*1/4 \tiny a8*1/2 ~ } > r4 r2 r + r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e + es8 } \grace b({ ))c r4 r2 r + r4 g16( a bes a g a bes a g a bes a g a bes a g fis es fis + )d4 } \grace fis8()gis4 ~ gis8 r r4 r2 + r4 g16( a bes a g a bes a g a bes a g a bes a g fis es fis + )d4 \grace fis8()gis4 ~ gis8 r r4 r2 + \grace a8()f4 ~ f8 r r2 r + r2 r4 a8( b c d c b \grace b8()e \grace a,())g r4 r2 r r2 r4 a8( b c d c b a b c d c b a b c d c b - \tiny b8(*1/2 \normalsize - < { )e8*1/2 )g,8 } \context Voice=x { \stemup s8*1/4 \tiny a8*1/2 ~ } > r4 r2 r - a2( \tiny e'8(*1/2 \normalsize )f4*3/4 ~ )f8 r r2 + \grace b8()e \grace a,())g r4 r2 r + a2( \grace e'8()f4 ~ )f8 r r2 r2 r r - fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r - \tiny b'8(*1/2 \normalsize - < { )a8*1/2 a8 } \context Voice=x { \stemup s8*1/4 \tiny b8*1/2 ~ } > r4 r2 r + fis,4( \grace dis8<)cis4 ais> r2 r + \grace b'8()a \grace b()a r4 r2 r r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e - < { es8 )c } \context Voice=x { \stemup s8*1/2 \tiny b8*1/2 ~ } > r4 r2 r - d,4( \tiny fis8(*1/2 \normalsize )gis4*3/4 ~ )gis8 r r4 r2 + es8 \grace b())c r4 r2 r + d,4( \grace fis8()gis4 ~ )gis8 r r4 r2 f4 ~ f8 r r2 r f'8( g a b a g f g a b a g - \tiny f8(*1/2 \normalsize - < { )g8*1/2 )e8 } \context Voice=x { \stemup s8*1/4 \tiny d8*1/2 ~ } > r4 r2 r + \grace f8()g \grace d)e r4 r2 r f8( g a b a g f g a b a g - \tiny f8(*1/2 \normalsize - < { )g8*1/2 )e8 } \context Voice=x { \stemup s8*1/4 \tiny d8*1/2 ~ } > r4 r2 r - a,2( \tiny e'8(*1/2 \normalsize )f4*3/4 ~ )f8 r r2 + \grace f8()g8 \grace d())e r4 r2 r + a,2( \grace e'8() f4 ~ )f8 r r2 r2 r r - fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r + fis,4( \grace dis8<)cis4 ais> r2 r ~ } basloopje = \notes\relative c{ -% \property Voice.beamAutoEnd = "1/2" % d,8( a' d f a d f d a f d )a d,8( a' d f a \translator Staff=treble d f d \translator Staff=bass a f d )a } -%{ -bassbeam = \notes{ - [s2] [s8 \translator Staff=treble s s s] [\translator Staff=bass s2] -% [s2] [s2] [s2] -} -%} - - lower = \context Voice=two \notes \relative c{ \stemdown \property Staff.slurVerticalDirection = 1 @@ -162,8 +139,8 @@ lower = \context Voice=two \notes \relative c{ \remove "Time_signature_engraver"; } } - \midi { - \tempo 4 = 54; - } +% broken 1.1.51.hwn2 +% \midi { +% \tempo 4 = 54; +% } } - diff --git a/mutopia/N.W.Gade/brass.ly b/mutopia/N.W.Gade/brass.ly index f31efdade5..f29cfb8334 100644 --- a/mutopia/N.W.Gade/brass.ly +++ b/mutopia/N.W.Gade/brass.ly @@ -13,7 +13,7 @@ c2. \p ( | ) g4 [g8. ( a16 ] ) g4 | c2. \p ( | ) g2 g4 | -\tiny g8*1/2 \normalsize c2 \< ( *7/8 ~ [ \! c8 \> \! ) g ] | +\grace g8 c2 \< ( ~ [ \! c8 \> \! ) g ] | g2 \p r4 | g \mf ( d' c~ | c ) b r | @@ -23,7 +23,7 @@ r4 r c \p ( | g [g8. ( a16 ] ) g4 | R2. | r4 r [g8^""^"solo" \mf \< () \! e' ] | -\tiny d8*1/2 \normalsize g2 \> ( *7/8 [ \! e8. c16 ] | +\grace d8 g2 \> ( [ \! e8. c16 ] | ) g2 r4 | R2. | r4 r \times 2/3 {[e'8 \f ( g, ) g'] } | @@ -32,7 +32,7 @@ r r \times 2/3 {[g8 \f ( e ) g] } d4 () g r | r r [d16 \f ( g, e' d ] | [g, d' e ) d ] g,4 r | -r \tiny g8 \f *1/2 \normalsize d'2 \> ( *7/8| +r \grace g8 \f d'2 \> (| [g,8. a16 g8. a16 \! g8. ) a16 ] | g4 r r | R2. | @@ -251,7 +251,7 @@ corII=\notes\relative c'' { R2.*19 | r4 r [g8^"solo" \p (\< \! ) e'] | -\tiny d8*1/2 \normalsize g2 \> ( *7/8 [e8. ) \! c16 ] | +\grace d8 g2 \> ( [e8. ) \! c16 ] | g2 r 4 | r r \times 2/3 {[e'8 \p ( g, ) g' ]} | g4 \> () \! e r | diff --git a/mutopia/N.W.Gade/strings.ly b/mutopia/N.W.Gade/strings.ly index f53c84e4f8..0944ec0802 100644 --- a/mutopia/N.W.Gade/strings.ly +++ b/mutopia/N.W.Gade/strings.ly @@ -66,8 +66,7 @@ f4 ( \< g | a4 \> ) g | \! a2 ( | [a8_"dim." g f d] | -<{[b g ][a ) g ] |} - \context Voice=x {s8.. \tiny b8}> +[b g ] \grace b8 [a ) g ] | R2 | r4 r8 a'-. \mf | [a-. \< a-. a-. \! a-. ] | @@ -85,9 +84,9 @@ b4. \f bes8 ( | [g-. \< f-. e-. \! d-. ] | [g, g'16 \f ( a ][ ) g8 g,, \p ] | g4^\trill ( a^\trill | % added longer slur and trills -b^\trill \tiny [a16*1/2 b*1/2] \normalsize[c8*1/2 ) g ] | +b^\trill \grace{[a16 b]} [c8 ) g ] | g4^\trill ( a^\trill | -b^\trill \tiny [a16*1/2 b*1/2] \normalsize [) c8*1/2 bes' \f ( ] | +b^\trill \grace{[a16 b]} [) c8 bes' \f ( ] | ) bes'4.-> a8 | [f-. e-. d-. f, ( ] | < ) d'4. \fz a'> g,8 ( | @@ -112,11 +111,11 @@ a ( \< ) e' | e-. () \! e-. | e \fz \> [ d8 \! c ] | b2 \p | % \p added -\tiny e8*1/2 \normalsize g4 ( \> *3/4 dis | +\grace e8 g4 ( \> dis | \! e ) b | -\tiny e8*1/2 \normalsize g4 ( \> *3/4 dis | +\grace e8 g4 ( \> dis | \! e ) b | -\tiny d8*1/2 \normalsize f2 \fz ( *7/8 | +\grace d8 f2 \fz ( | b,4 [c8 ) b] | a2-> ( | ) gis4 e | @@ -124,15 +123,15 @@ a ( ) e' | e-. \< () \! e-. | e ( \fz \> [ d8 \! c ] | ) b2 \p | -\tiny e8*1/2 \normalsize g4 ( \> *3/4 dis | +\grace e8 g4 ( \> dis | \! e ) b | -\tiny e8*1/2 \normalsize g4 ( \> *3/4 dis | +\grace e8 g4 ( \> dis | \! e ) b | -\tiny d8*1/2 \normalsize f2 \fz ( *7/8 | +\grace d8 f2 \fz ( | b,4 [c8 ) b] | a2 \p ( | ) gis | -\tiny a8*1/2 \normalsize d2 ( \> *7/8 | +\grace a8 d2 ( \> | b4 [ c8 \! b ] | a2 \p | ) gis | @@ -172,7 +171,7 @@ bes4 ( \< c | d4 \> c | \! d2 | [d8 c][bes g] | -[e c] \tiny e8*1/4 \normalsize [d *3/4 ) c ] | +[e c] \grace e8 [d ) c ] | R2 | r4 r8 d' \mf | d2:8 \< | @@ -190,9 +189,9 @@ d2:8 \< | [c-. \< bes-. a-. \! g-. ] | [c, c'16 ( \f d] [) c8 c,, \p ] | c4^\trill ( d^\trill | -e^\trill \tiny [d16*1/2 e*1/2] \normalsize [f8 *1/2 ) c ] | +e^\trill \grace{[d16 e]} [f8 ) c ] | c4^\trill ( d^\trill | -e^\trill \tiny [d16*1/2 e*1/2] \normalsize [f8 *1/2 ) es' \f ( ] | +e^\trill \grace{[d16 e]} [f8 ) es' \f ( ] | ) es'4. d8 | [bes-. a-. g-. bes, ( ] | ) d'4. \fz c,8 ( | @@ -215,7 +214,7 @@ f4 g | f ) e | es2 ( | ) d4 r | -\tiny f'8*1/2 \normalsize a4 \fz ( *3/4 e | +\grace f'8 a4 \fz ( e | f b, | ) c r | R2 | @@ -351,9 +350,9 @@ f4. \f e8 ( | [cis-. \< d-. e-. \! f-. ] | [f \f g16 ( a][ ) g8 g, \p ] | g4^\trill ( \< \! a^\trill | -b^\trill \> \tiny [a16*1/2 b*1/2] \normalsize [ ) c8 *1/2 \! g] | +b^\trill \> \grace{[a16 b]} [ ) c8 \! g] | g4^\trill ( \< \! a^\trill | -b^\trill \> \tiny [a16*1/2 b*1/2] \normalsize [ ) \! c8 *1/2 g' \f ( ] | +b^\trill \> \grace{[a16 b]} [ ) \! c8 g' \f ( ] | < ) g4.-> bes> a8 | [a a a f ( ] | g,8 ( | @@ -392,7 +391,7 @@ b4:16 \p \< \! c4:16 \> | \! b2:16 | b4:16 \p \< \! c4:16 \> | \! b2:16 | -\tiny d8*1/2 \normalsize f2 ( \> *7/8 | % grace note c8 corrected to d8 +\grace d8 f2 ( \> | % grace note c8 corrected to d8 \! ) e | b-> ( | ) e4 r | @@ -404,7 +403,7 @@ b4:16 \p \< \! c4:16 \> | \! b2:16 | b4:16 \p \< \! c4:16 \> | \! b2:16 | -\tiny d8*1/2 \normalsize f2 ( \fz *7/8 | +\grace d8 f2 ( \fz | ) e | [ a,16 ( \p d a d ][a d a d] | [ b16 d b d ][b d b ) d] | @@ -477,9 +476,9 @@ bes4. a8 ( \f | [fis-. \< g-. a-. \! bes-.] | [bes \f c16 ( d][)c8 c, \p ] | c4^\trill ( d^\trill | -e^\trill \tiny [d16*1/2 e*1/2] \normalsize [ f8 *1/2 ) c ] | +e^\trill \grace{[d16 e]} [ f8 ) c ] | c4^\trill ( d^\trill | -e^\trill \tiny [d16*1/2 e*1/2] \normalsize [ ) f8 *1/2 a ( \f ] | +e^\trill \grace{[d16 e]} [ ) f8 a ( \f ] | d8 | [d d d bes \f (] | bes8 (| diff --git a/mutopia/N.W.Gade/wood.ly b/mutopia/N.W.Gade/wood.ly index 8a486eff8f..b3001a9a34 100644 --- a/mutopia/N.W.Gade/wood.ly +++ b/mutopia/N.W.Gade/wood.ly @@ -80,7 +80,7 @@ R2*2 | r8 [g,-.^""^"solo" \p a-. b-. ] | c r r4 | R2*10 | -\tiny d8 \fz *1/2 \normalsize f2 \> ( *7/8 | +\grace d8 \fz f2 \> ( | \! b,4 [c8 b] | a2-> | ) gis | @@ -88,15 +88,15 @@ a4 ( \p \< ) e' | e-. () \! e-. | e ( \> [ d8 \! c ] | ) b2 \p | -\tiny e8*1/2 \normalsize g4 ( \> *3/4 dis | +\grace e8 g4 ( \> dis | \! e ) b | -\tiny e8*1/2 \normalsize g4 ( \> *3/4 dis | +\grace e8 g4 ( \> dis | \! e_"dim." ) b | -\tiny d!8 \fz *1/2 \normalsize f2 ( \> *7/8 | +\grace d!8 \fz f2 ( \> | b,4 [ \! c8 b] | a2 \p | ) gis | -\tiny a8*1/2 \normalsize d2( \> *7/8 | +\grace a8 d2( \> | \! b4 [ c8 b ] | a2 \p | ) gis | @@ -157,7 +157,7 @@ r4 r8 bes, ( | ) a8 r g4 ( | ) f8 r r4 | R2*7 | -\tiny f8 \f *1/2 \normalsize a4 \> ( *3/4 e | +\grace f8 \f a4 \> ( e | f \! b, | ) c r | R2*7 | @@ -390,7 +390,7 @@ a4 \p ( [g8. a16 ] g4 | fis ) g8 r r4 | a4 ( [g8. a16 ] g4 | fis ) g8 r [d^""^"solo" \mf \< () \! b' ] | -\tiny a8*1/2 \normalsize d2 ( \> *7/8 [b8. \! g16] | +\grace a8 d2 ( \> [b8. \! g16] | ) d2 r4 | R2. | r4 r \times 2/3 { [b'8^""^"solo" ( \ff d, ) d' ] } | @@ -428,8 +428,7 @@ b2 ~ | b4 a | b2 ~ | [b8_"dim." a g ) e ] | -<{[cis ( a ) b a-. ] | } - \context Voice = x {s8.. \tiny cis8 } > +[cis ( a \grace cis ) b a-. ] | [fis''-. f-. f-. e-. ] | [e-. \< dis-. dis-. \! d-. ] | d r b4 \f ( | @@ -626,7 +625,7 @@ a4 \p ( [g8. a16 ] g4 | fis ) g8 r r4 | a4 ( [g8. a16 ] g4 | fis ) g8 r [d^""^"solo" \mf \< () \! b' ] | -\tiny a8*1/2 \normalsize d2 ( \> *7/8 [b8. \! g16] | +\grace a8 d2 ( \> [b8. \! g16] | ) d2 r4 | R2. | r4 r \times 2/3 { [b'8 ( \f d, ) d' ] } | @@ -903,7 +902,7 @@ e2 \p \< ~ | \! e \> ~ | \! e \< ~ | \! e \> | -\tiny \! d'8 \fz ( *1/2 \normalsize ) f2 \> ( *7/8 | +\grace \! d'8 \fz ( ) f2 \> ( | ) \! e4. r8 | f,2 \> ( ( | [ ) \! e8 d c ) b ] | @@ -915,7 +914,7 @@ e2 \p ~ e ~ | e ~ | e | -\tiny d'8 \fz ( *1/2 \normalsize ) f2 \> ( *7/8 | +\grace d'8 \fz ( ) f2 \> ( | ) \! e4. r8 | f,2 \p ( | ) e4 r | diff --git a/mutopia/W.A.Mozart/cadenza.ly b/mutopia/W.A.Mozart/cadenza.ly index ba73aee319..6b4c9079e6 100644 --- a/mutopia/W.A.Mozart/cadenza.ly +++ b/mutopia/W.A.Mozart/cadenza.ly @@ -41,7 +41,7 @@ cad = \notes \relative c' { \bar "" ; r8 a [b cis] -% \grace e16 + \grace { e8( } [d16 cis d e] f4 ~ [f16 e d c] b4-\turn @@ -54,13 +54,13 @@ cad = \notes \relative c' { [g8.(_"a tempo" e16 g8. )e16] a4. g8 [f8 e8 d8 c8] g2 d'2-\trill -% \grace { [c32 d] } + \grace { [c32 d] } c4 } } \score { \notes { \cad } - \paper { - } - \midi { \tempo 4 = 90; } +% \midi { \tempo 4 = 90; } + \paper { casting_algorithm = \Wordwrap;} + } -- 2.39.2