From 014f0f6a4f09a4b93d0041cc8237fd3c7a5ad389 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Sun, 11 Jul 1999 22:23:58 +0200 Subject: [PATCH] release: 1.1.56 --- AUTHORS.txt | 122 +++--- BUGS | 38 +- Documentation/man/out/lilypond.1 | 9 +- Documentation/man/out/ly2dvi.1 | 2 +- Documentation/programs.yo | 2 +- Documentation/tex/feta.tex | 2 +- Documentation/tex/lilypond-regtest.doc | 3 +- Documentation/tex/reference-manual.yo | 34 +- Documentation/tex/tutorial.yo | 4 +- Documentation/topdocs/INSTALL.yo | 5 +- Documentation/topinfo.yo | 2 +- INSTALL.txt | 394 ++++++++++-------- NEWS | 46 ++ PATCHES.txt | 158 +++---- README.txt | 93 +++-- TODO | 176 ++++---- VERSION | 2 +- buildscripts/lilypond-login.sh | 4 +- buildscripts/lilypond-profile.sh | 4 +- buildscripts/ps-to-gifs.sh | 4 +- buildscripts/set-lily.sh | 2 +- dstreamrc | 16 +- input/bugs/refman-sv.ly | 4 + input/test/grace.ly | 5 +- input/test/time.fly | 17 + input/test/volta.fly | 18 + lily/atom.cc | 1 + lily/auto-beam-engraver.cc | 34 +- lily/include/atom.hh | 1 + lily/include/auto-beam-engraver.hh | 3 +- lily/include/lookup.hh | 2 +- lily/include/spanner.hh | 2 +- lily/lexer.ll | 2 +- lily/lookup.cc | 13 +- lily/multi-measure-rest.cc | 2 +- lily/paper-outputter.cc | 1 + lily/stem.cc | 6 +- lily/time-description.cc | 41 +- lily/tuplet-engraver.cc | 4 + lily/volta-spanner.cc | 12 +- make/lilypond.spec.in | 4 +- make/out/lelievijver.lsm | 8 +- make/out/lilypond.lsm | 8 +- make/out/lilypond.spec | 8 +- mf/feta-banier.mf | 44 +- mf/feta-generic.mf | 2 +- mf/feta-timesig.mf | 33 +- mf/graycx.mf | 2 +- midi2ly/TODO | 10 +- midi2ly/include/midi-parser.hh | 2 +- midi2ly/include/midi-score-parser.hh | 2 +- midi2ly/include/midi-track-parser.hh | 2 +- .../{mi2mu-proto.hh => midi2ly-proto.hh} | 10 +- midi2ly/include/mudela-column.hh | 2 +- midi2ly/include/mudela-item.hh | 2 +- midi2ly/include/mudela-score.hh | 2 +- midi2ly/include/mudela-staff.hh | 2 +- midi2ly/include/mudela-stream.hh | 2 +- midi2ly/include/mudela-voice.hh | 2 +- midi2ly/main.cc | 8 +- midi2ly/midi-parser.cc | 4 +- midi2ly/midi-score-parser.cc | 2 +- midi2ly/midi-track-parser.cc | 2 +- midi2ly/mudela-item.cc | 2 +- midi2ly/mudela-score.cc | 2 +- midi2ly/mudela-staff.cc | 4 +- midi2ly/mudela-stream.cc | 4 +- midi2ly/mudela-voice.cc | 2 +- midi2ly/version.cc | 6 +- mutopia/J.S.Bach/Duette/global-ii.ly | 2 + mutopia/J.S.Bach/Duette/viola-ii.ly | 3 +- mutopia/J.S.Bach/Duette/viola-part.ly | 15 +- mutopia/J.S.Bach/Duette/violino-ii.ly | 2 + mutopia/J.S.Bach/Duette/violino-part.ly | 12 +- mutopia/J.S.Bach/Duette/violino-viola.ly | 2 + .../J.S.Bach/Duette/violino-violoncello.ly | 6 +- mutopia/J.S.Bach/Duette/violoncello-part.ly | 11 +- mutopia/N.W.Gade/brass.ly | 4 +- mutopia/N.W.Gade/global.ly | 9 +- mutopia/N.W.Gade/global.tex | 34 +- mutopia/N.W.Gade/parts.ly | 9 +- mutopia/N.W.Gade/score.ly | 7 +- mutopia/W.A.Mozart/horn-concerto-3.ly | 73 ++-- ps/lily.ps | 14 +- scm/lily.scm | 55 ++- scripts/{abc-2-ly.py => abc2ly.py} | 0 scripts/convert-mudela.py | 13 - scripts/mudela-book.py | 4 +- stepmake/stepmake/yodl-rules.make | 4 +- tex/fetdefs.tex | 3 - tex/lilypond-latex.tex | 46 -- tex/lilypond-plaintex.tex | 51 +-- tex/lilyponddefs.tex | 36 +- tex/mudela-book.tex | 10 +- tex/titledefs.tex | 2 +- 95 files changed, 1042 insertions(+), 858 deletions(-) create mode 100644 input/bugs/refman-sv.ly create mode 100644 input/test/volta.fly rename midi2ly/include/{mi2mu-proto.hh => midi2ly-proto.hh} (67%) rename scripts/{abc-2-ly.py => abc2ly.py} (100%) delete mode 100644 tex/fetdefs.tex diff --git a/AUTHORS.txt b/AUTHORS.txt index 116662589a..692c32e9d4 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,53 +1,71 @@ -TITLE INFORMATION: 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-partita in mudela, accordion symbols, some mudela-book.py -o Mats Bengtsson , - http://www.s3.kth.se/~matsb/ - lots of testing, fixes, general comments and contributions. -o Eric Bullinger , - accidental transposition. -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 Documentation/Vocab* -o Donald Ervin Knuth, http://www-cs-staff.stanford.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://sunsite.unicamp.br/~oliva/ - testing -o Franc,ois Pinard , - parts of Documentation/Vocab*, started internationalization stuff -o Glen Prideaux , - minor bug fix to script used to generate doc++ documentation -o Jeffrey B. Reed , - Windows-NT support. -o Shay Rojanski - Some mudela source. - -Your name could be here! If you want to fix something, do it, and send -us a patch! + 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/ lots of testing, fixes, + general comments and contributions. + +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 Glen Prideaux , minor bug fix + to script used to generate doc++ documentation + +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! diff --git a/BUGS b/BUGS index 76d8f8e1a0..59f9f827ab 100644 --- a/BUGS +++ b/BUGS @@ -3,41 +3,33 @@ This documents serious bugs ******** -[Linux ppc, egcs-1.0.2] +[LinuxPPC-R5, egcs-1.1.2-12c] -All compiling with -O2 is suspect, in particular guile-1.3, and -Lily herself will break. +Serious egcs-1.1.2-12c (stock LinuxPPC R5) bug on ppc: + *dest++ = *src++; -[All platforms] +Bug report filed, fixed in egcs-1.1.2-12f. +Although we've currently got a workaround in place, the compiler +is buggy; you should upgrade: -When dealing with beaming that is not correct (eg quarter notes in -beams.), you can get the following assert. This is a serious bug, but -a good solution is quite a lot of work. + ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/ - \score{ - \melodic{ - [c2 c] - } - } -results in +[LinuxPPC-R4, egcs-1.0.2] + +All compiling with -O2 is suspect, in particular guile-1.3, and +Lily herself will break. - lilypond: ../flower/include/varray.hh:141: struct Rhythmic_grouping *& Array::elem(int) const: Assertion `i >=0&&i::operator -(class Cursor) const: Assertion `c.ok()' failed. - Aborted (core dumped) +[All platforms] +Some bugs may be captured in input/bugs/*y [Linux libg++ 2.7] diff --git a/Documentation/man/out/lilypond.1 b/Documentation/man/out/lilypond.1 index e6cf0e3d61..45d2a60fff 100644 --- a/Documentation/man/out/lilypond.1 +++ b/Documentation/man/out/lilypond.1 @@ -9,12 +9,9 @@ LilyPond \- the GNU Music Typesetter .PP .SH "DESCRIPTION" .PP -LilyPond is the GNU Project music typesetter\&. This program can print -beautiful sheet music from a music definition file\&. It can also play -mechanical performances to a MIDI file\&. Features include multiple -staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas, -beams, slurs, triplets, named chords, transposing, formatting scores, -part extraction\&. It includes a nice font of musical symbols\&. +LilyPond is the GNU Project music typesetter\&. It transforms a musical +description file into beautiful sheet music\&. +.PP .PP .SH "OPTIONS" .IP "-I,--include=" diff --git a/Documentation/man/out/ly2dvi.1 b/Documentation/man/out/ly2dvi.1 index dc275b5044..8ef4efaf72 100644 --- a/Documentation/man/out/ly2dvi.1 +++ b/Documentation/man/out/ly2dvi.1 @@ -233,7 +233,7 @@ Send a description of the LilyPond and ly2dvi version you use\&. .IP o Send a description of the bug itself\&. .IP o -Send it to bug-gnu-music@gnu\&.org (you don\'t have to subscribe +Send it to bug-gnu-music@gnu\&.org (you don\'t have to subscribe to this mailinglist)\&. .PP .SH "Remarks" diff --git a/Documentation/programs.yo b/Documentation/programs.yo index e3efaf6ed5..eae4f59d23 100644 --- a/Documentation/programs.yo +++ b/Documentation/programs.yo @@ -16,6 +16,6 @@ redef(includefile)(1)(INCLUDEFILE(man/ARG1)) includefile(convert-mudela.yo) includefile(lilypond.yo) includefile(ly2dvi.yo) -includefile(mi2mu.yo) +includefile(midi2ly.yo) includefile(mudela-book.yo) ) diff --git a/Documentation/tex/feta.tex b/Documentation/tex/feta.tex index 296fddc143..e7a84aff10 100644 --- a/Documentation/tex/feta.tex +++ b/Documentation/tex/feta.tex @@ -42,7 +42,7 @@ \vskip5mm -\listfont{\fetatwenty}{0}{102} +\listfont{\fetatwenty}{0}{105} % urg \vskip-\charheight \listfont{\fetanumber}{48}{58} diff --git a/Documentation/tex/lilypond-regtest.doc b/Documentation/tex/lilypond-regtest.doc index 0dc04fde80..d774479de6 100644 --- a/Documentation/tex/lilypond-regtest.doc +++ b/Documentation/tex/lilypond-regtest.doc @@ -49,7 +49,8 @@ point) are mixed. Grace notes are typeset as an encapsulated piece of music. You can have beams, notes, chords, stems etc. within a \verb|\grace| section. Slurs that start within a grace section, but aren't ended are -attached to the next normal note. Grace notes have zero duration +attached to the next normal note. Grace notes have zero duration. If +there are tuplets, the grace notes won't be under the brace. diff --git a/Documentation/tex/reference-manual.yo b/Documentation/tex/reference-manual.yo index e56c15ddfe..8ff34fad88 100644 --- a/Documentation/tex/reference-manual.yo +++ b/Documentation/tex/reference-manual.yo @@ -624,9 +624,11 @@ Note that code(\!) must go before the last note of the dynamic mark whereas code(\rc) and code(\rced) go after the last note. Because these marks are bound to notes, if you want to get several marks during one note, you must use spacer notes. -mudela(fragment,verbatim,center)( +COMMENT(Broken +m udela(fragment,verbatim,center)( c'' \< \! c'' d'' \decr e'' \rced < f''1 {s4 \< \! s4 \> \! s2 } >) +) COMMENT(Broken!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!) @@ -752,9 +754,7 @@ sect(Chords) Chords can be entered either by name or by listing the notes in angle brackets. Chords can be displayed either as notes or by name. To enter chords by name, -either place them inside the code(\chords) keyword, or use -code(\notes) and surround them with -code(@) characters. +either place them inside the code(\chords) keyword. Chord names have the form var(tonic)[var(duration)][code(-)var(modifier)][code(^)var(subtractions)][code(/)var(inversion)] The var(tonic) should be the tonic note of the chord, and the var(duration) is @@ -764,15 +764,14 @@ by dots. An interval is written by its number with an optional code(+) or code(-) to indicate raising or lowering by half a step. A chord additions has two effects: it adds the specified interval and all lower odd numbered intervals to the chord, and it may lower or raise the specified interval. -Intervals can be separated by a dot (code(.)) if you need to list -several unmodified intervals. +Intervals must be separated by a dot (code(.)). Repeating a code(-) character will remove a half step from the preceeding interval. mudela(fragment,verbatim,center)( \transpose c''{ \chords{ c1 c-3- c-7 c-8 c-9 - c-9-5+7+ c-3-5- c-4.6.8 + c-9-.5+.7+ c-3-.5- c-4.6.8 }}) The second type of modifier that may appear after the code(-) is a named modifier. @@ -801,7 +800,7 @@ an octave so it becomes the lowest note in the chord. If the specified note is not in the chord then a warning will be printed. mudela(fragment,verbatim,center)( \transpose c'''{ - @c1@ @c/e@ @c/g@ @c-7/e@ + \chords { c1 c/e c/g c-7/e } }) Throughout these examples, chords have been shifted around the staff using code(\transpose). The code(\relative) keyword has odd effects @@ -1675,15 +1674,16 @@ dit(code(timeSignatureStyle)) Changes the default two-digit layout description( dit(code(C)) 4/4 and 2/2 are typeset as C and struck C, respectively. All other time signatures are written with two digits. - dit(code(old)) 2/2, 3/2, 3/4, 4/4, 6/4, 9/4, 6/8 and 9/8 are typeset - with old-style mensuration marks. All other time signatures are - written with two digits. + dit(code(old)) 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and + 9/8 are typeset with old-style mensuration marks. All other time + signatures are written with two digits. dit(code(1)) All time signatures are typeset with a single digit, e.g. 3/2 is written as 3. dit(code(C2/2), code(C4/4), code(old2/2), code(old3/2), - code(old3/4), code(old4/4), code(old6/4), code(old9/4), - code(old6/8) or code(old9/8))Tells Lilypond to use a - specific symbol as time signature. + code(old2/4), code(old3/4), code(old4/4), code(old6/4), + code(old9/4), code(old4/8), code(old6/8), code(old6/8alt) + or code(old9/8))Tells Lilypond to use a specific symbol as + time signature. ) The different time signature characters are shown below with their names: @@ -1699,14 +1699,20 @@ mudela(center)( \time 2/2; a2^"old2/2" a2 \property Staff.timeSignatureStyle = "old3/2" \time 2/2; a2^"old3/2" a2 +\property Staff.timeSignatureStyle = "old2/4" +\time 2/2; a2^"old2/4" a2 \property Staff.timeSignatureStyle = "old4/4" \time 2/2; a2^"old4/4" a2 \property Staff.timeSignatureStyle = "old6/4" \time 2/2; a2^"old6/4" a2 \property Staff.timeSignatureStyle = "old9/4" \time 2/2; a2^"old9/4" a2 +\property Staff.timeSignatureStyle = "old4/8" +\time 2/2; a2^"old4/8" a2 \property Staff.timeSignatureStyle = "old6/8" \time 2/2; a2^"old6/8" a2 +\property Staff.timeSignatureStyle = "old6/8alt" +\time 2/2; a2^"old6/8alt" a2 \property Staff.timeSignatureStyle = "old9/8" \time 2/2; a2^"old9/8" a2 } diff --git a/Documentation/tex/tutorial.yo b/Documentation/tex/tutorial.yo index cad569fc22..5c8a6ea966 100644 --- a/Documentation/tex/tutorial.yo +++ b/Documentation/tex/tutorial.yo @@ -797,8 +797,8 @@ Example: ) ) -The commands described above do not music that you could hear, but -within the language, they are "Music": they are grammatically +The commands described above do not give music that you could hear, +but within the language, they are "Music": they are grammatically equivalent to notes, so they can appear in the same places as notes. sect(Notation context) diff --git a/Documentation/topdocs/INSTALL.yo b/Documentation/topdocs/INSTALL.yo index e4d9dc3412..190b2bf382 100644 --- a/Documentation/topdocs/INSTALL.yo +++ b/Documentation/topdocs/INSTALL.yo @@ -120,12 +120,15 @@ verb( tar xzf libgr-2.0.13.tar.gz make pnmtopng ) -You can then install the new pnmtopng into /usr/local/bin/ +You can then install the new pnmtopng into file(/usr/local/bin/) it()Bib2html lurl(http://pertsserver.cs.uiuc.edu/~hull/bib2html.) Which, in turn depends on man2html for proper installation. man2html can be had from lurl(http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05). +The website will build without this utility, but you will not see our +hypertextified bibliography. + TeTeX users should not forget to rerun texhash. ) diff --git a/Documentation/topinfo.yo b/Documentation/topinfo.yo index 9e0980fcae..df5cae5bc2 100644 --- a/Documentation/topinfo.yo +++ b/Documentation/topinfo.yo @@ -34,7 +34,7 @@ COMMENT(yodl2texinfo should be able to cope now, although ugly...) redef(article)(3)(chapter(ARG1)) redef(includefile)(1)(INCLUDEFILE(tex/ARG1)) -includefile(refman.yo) +includefile(reference-manual.yo) redef(article)(3)(nodeprefix()chapter(ARG1)nodeprefix(Mutopia )) COMMENT(yodl2texinfo should be able to cope now, although ugly...) diff --git a/INSTALL.txt b/INSTALL.txt index d17023348f..dccba82a8d 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,298 +1,326 @@ -TITLE INFORMATION: INSTALL - compiling and installing GNU LilyPond -AUTHOR INFORMATION: 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 + 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. +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 +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. +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 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. +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 [w32]. + 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 EGCS 1.1 or newer. -o Python 1.5, -Check out -ftp://ftp.python.org or ftp://ftp.cwi.nl/pub/python. +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/software/guile/guile.html. +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 GNU make. Check out ftp://ftp.gnu.org. -o Flex (version 2.5.4 or newer). -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 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 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 +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 +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 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/programs/guile.html +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:" +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: -The empty path component -represents TeX and MetaFont's default search paths. Scripts with -the proper paths for the bourne and C-shell respectively are generated in -buildscripts/out/lilypond-profile and -buildscripts/out/lilypond-login during compilation. + export MFINPUTS="/usr/local/share/lilypond/mf:" + export TEXINPUTS="/usr/local/share/lilypond/tex:/usr/local/share/lilypond/ps:" -LilyPond is a hideously slow program. A fast CPU and plenty of RAM is -recommended for comfortable use. +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. +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). the original is at ftp://ftp.x.org/con- + trib/utilities/netpbm-1mar1994.p1.tar.gz -o xpmtoppm (from the Portable Bitmap Utilities) (For RedHat Linux - users: it is included within the package libgr-progs). - the original is at -ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz +o pnmtopng, which is also in libgr-progs for RedHat. The + original is at + ftp://swrinde.nde.swri.edu/pub/png/applications/pnm- + topng-2.37.2.tar.gz.i -o pnmtopng, which is also in libgr-progs for RedHat. The original is -at -ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz.i + The version of pnmtopng 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. -The version of pnmtopng 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 - 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/ -You can then install the new pnmtopng into /usr/local/bin/ +o Bib2html http://pertsserver.cs.uiuc.edu/~hull/bib2html. + Which, in turn depends on man2html for proper -o Bib2html http://pertsserver.cs.uiuc.edu/~hull/bib2html. - Which, in turn depends on man2html for proper installation. -man2html can be had from http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05. + installation. 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. + The website will build without this utility, but you + will not see our hypertextified bibliography. -You also have to install buildscripts/out/ps-to-gifs in a + TeTeX users should not forget to rerun texhash. + +You also have to install buildscripts/out/ps-to-gifs in a directory that is in the path. 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 + 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 + /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 -The above assumes that you are root and have the GNU development -tools, and your make is GNU make. If this is not the case, you can -adjust your environment variables to your taste: +taste: - export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" - ./configure + export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" + ./configure -CPPFLAGS are the preprocessor flags. +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 +--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 + ./configure --prefix=$HOME/usr -In this case, you will have to set up MFINPUTS, and TEXINPUTS accordingly. +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 +Since GNU LilyPond currently is beta, you are advised to +also use - --enable-debugging - --enable-checking + --enable-debugging + --enable-checking Options to configure include: -o --enable-printing - Enable debugging print routines (lilypond -D option) -o --enable-optimise - Set maximum optimisation: compile with -O2. This can be -unreliable on some compiler/platform combinations (eg, DEC Alpha and PPC) -o --enable-profiling - Compile with support for profiling. -o --enable-config - Output to a different configuration file. Needed for multi-platform - builds +--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) -All options are documented in the configure help -The option --enable-optimise is recommended for Real Life usage. +--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 + 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). +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 profiling. Then I'd use the -following for the normal build, +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 + ./configure --prefix=~ --disable-optimise --enable-checking + make + make install -and for the profiling version, I specify a different configuration. +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 + ./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 + make install should do the trick. -If you are doing an upgrade, please remember to remove obsolete -.pk and .tfm files of the fonts. A script has been +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. -o On PPC you need at least EGCS-1.1.2f. +o The -O2 option triggers bugs on various platforms + (PowerPC, Alpha). If you experience problems, you + should first try turning off this. + +o On PPC you need at least EGCS-1.1.2f. EXAMPLE This is what I type in my xterm: - lilypond someinput.ly - tex someinput.tex - xdvi someinput& + 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 ... + 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 + 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. +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 +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 + rpm -tb lilypond-x.y.z.tar.gz + rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z -Precompiled i386 RedHat RPMS are available from +Precompiled i386 RedHat RPMS are available from http://linux.umbc.edu/software/lilypond/rpms/. 10: DEBIAN GNU/LINUX -A Debian package is also available; contact Anthony Fok -foka@debian.org. The build scripts are in the subdirectory +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. +Separate instructions on building for W32 are avaible in the +file README-W32.yo. 12: AUTHORS diff --git a/NEWS b/NEWS index 614d60fffa..f2193e35fd 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,49 @@ +pl 55.uu1 + - use GS' anti aliasing + +pl 55.jcn1 + - auto-beamer: consider current duration first in ending/starting beam + this way, you can have 16ths auto-beamed, in some way, but 8ths never + beamAutoEnd_16 = 1; + beamAutoEnd_8 = 1/8; + - added some classes and few lines of doco to .dstreamrc + - refman: + * comment out broken + * commented out stale tex macros (tex/* dir too) + * bfs/new syntax: chords + - more midi2ly renaming stuff + - bf: make info (midi2ly and other renaming) + +pl 54.jcn2 + - bf: auto-beamer: don't beam over skips + - update BUGS + + +pl 55.mb2 + - Font update: added more mensural style time signatures, + old2/4, old6/8alt, old4/8 thanks to Christian Mondrup. + - bf: correct indentation of first line (removed \leavevmode) + plain TeX still gives wrong indentation + - bf: volta brackets broken over several lines get open end. + Final bracket gets vertical end if it stops at double bar. + - Dashed grace flags also for durations shorter than 8. + - N.W.Gade: fixed some details + +pl 55.mb1 + - bf: font magnification also in PS output + - bf: set the GS_* variables correctly in buildscripts/lilypond-*.sh + - bf, lily.scm: errors in (de)crescendo + - bf, lilyponddefs: removed \noindent + + +pl 55.hwn1 + - fixes: horn-concerto-3.ly + - bf: grace before tuplet. + - bf: decrescendo + - bf: multimeasrest numbers centered. + +**************** + pl 53.jbr2 - Documentation/ntweb/index.html: Updated nt distribution web page diff --git a/PATCHES.txt b/PATCHES.txt index 800a025cf6..55e1a71ea7 100644 --- a/PATCHES.txt +++ b/PATCHES.txt @@ -1,125 +1,135 @@ NAME -PATCHES - track and distribute your code changes + PATCHES - track and distribute your code changes DESCRIPTION -This page documents how to distribute your changes to GNU lilypond + This page documents how to distribute your changes to +GNU lilypond ABSTRACT -We would like to have unified context diffs with full pathnames. A -script automating supplied with Lily. + We would like to have unified context diffs with full +pathnames. A script automating supplied with Lily. Dis- +tributing a change normally goes like this: - Distributing a change normally -goes like this: +o make your fix/add your code -o make your fix/add your code -o Add changes to NEWS, and add yourself to Documentation/AUTHORS.yo -o generate a patch, -o e-mail your patch to one of the mailing lists - gnu-music-discuss@gnu.org or bug-gnu-music@gnu.org +o Add changes to NEWS, and add yourself to Documenta- + tion/AUTHORS.yo + +o generate a patch, + +o e-mail your patch to one of the mailing lists gnu- + music-discuss@gnu.org or bug-gnu-music@gnu.org GENERATING A PATCH -In VERSION, set MY_PATCH_LEVEL: + In VERSION, set MY_PATCH_LEVEL: - VERSION: - ... - MY_PATCH_LEVEL=jcn1 + VERSION: + ... + MY_PATCH_LEVEL=jcn1 In NEWS, enter a summary of changes: - NEWS: - pl 0.1.73.jcn1 - - added PATCHES.yo + NEWS: + pl 0.1.73.jcn1 + - added PATCHES.yo Then, from the top of Lily's source tree, type - make dist - make diff + make dist + make diff -which rolls the tarball ../releases/lilypond-0.1.73.tar.gz -and leaves your patch as ./lilypond-0.1.73.jcn1.diff. - ('Make diff' generates a patch between two tarballs. For -more info type 'make diff help=='.) We assume that there is a tarball -lilypond-0.1.73.tar.gz in the directory ../releases. +which rolls the tarball ../releases/lilypond-0.1.73.tar.gz +and leaves your patch as ./lilypond-0.1.73.jcn1.diff. [1] +We assume that there is a tarball lilypond-0.1.73.tar.gz in +the directory ../releases. If you didn't configure Lily using --srcdir, you can do: - make release + make release - tar-ball: ../patches/lilypond-0.1.73.jcn1.gz - patch: ../patches/lilypond-0.1.73.jcn1.gz - updeet: ../test/updeet + tar-ball: ../patches/lilypond-0.1.73.jcn1.gz + patch: ../patches/lilypond-0.1.73.jcn1.gz + updeet: ../test/updeet PREREQUISITES For creating a patch you need -o All items mentioned in INSTALL. You're not going to send a patch - that you haven't even built, right? -o GNU diff -o Python (version 1.5 or newer). - You can of course make a patch by hand, which would go something like: +o All items mentioned in INSTALL. You're not going to + send a patch that you haven't even built, right? + +o GNU diff - make distclean - cd .. - diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1 +o Python (version 1.5 or newer). You can of course make + a patch by hand, which would go something like: -but there are handy python scripts available. If you're doing development, -you'll need Python for other LilyPond scripts anyway. +----------- +[1] 'Make diff' generates a patch between two tar- +balls. For more info type 'make diff help=='. -o The Lily directory structure, which looks like: + make distclean + cd .. + diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1 - doos/ # gnu/windows32 build and binary releases - harmonia -> harmonia-x.y.z - harmonia-x.y.z/ - lilypond -> lilypond-x.y.z # symlink to development directory - lilypond-x.y.z/ # current development - patches/ # patches between different releases - RedHat/BUILD # RedHat build and binary releases - RedHat/RPMS - RedHat/SPECS - releases/ # .tar.gz releases - test/ # tarballs and diffs from current version - yodl -> yodl-1.30.17 - yodl-1.30.17 + but there are handy python scripts available. If + you're doing development, you'll need Python for other + LilyPond scripts anyway. -with prefix $HOME/usr/src -and (for building rpms only) in $HOME/.rpmrc: +o The Lily directory structure, which looks like: - topdir: /home/fred/usr/src/RedHat + doos/ # gnu/windows32 build and binary releases + harmonia -> harmonia-x.y.z + harmonia-x.y.z/ + lilypond -> lilypond-x.y.z # symlink to development directory + lilypond-x.y.z/ # current development + patches/ # patches between different releases + RedHat/BUILD # RedHat build and binary releases + RedHat/RPMS + RedHat/SPECS + releases/ # .tar.gz releases + test/ # tarballs and diffs from current version + yodl -> yodl-1.30.17 + yodl-1.30.17 + + with prefix $HOME/usr/src and (for building rpms only) + in $HOME/.rpmrc: + + topdir: /home/fred/usr/src/RedHat APPLYING PATCHES -If you're following LilyPond development regularly, you probably want to -download just the patch for each subsequent release. -After downloading the patch (into the patches directory, of course), simply -apply it: +If you're following LilyPond development regularly, you +probably want to download just the patch for each subsequent +release. After downloading the patch (into the patches +directory, of course), simply apply it: - gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E + gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E and don't forget to make automatically generated files: - autoconf footnote(patches don't include automatically generated files, - i.e. file(configure) and files generated by file(configure).) + autoconf footnote(patches don't include automatically generated files, + i.e. file(configure) and files generated by file(configure).) - configure + configure SYNCHRONISE -If you're not very quick with sending your patch, there's a good -chance that an new release of LilyPond comes available. In such a -case, the maintainer will probably ask you to make a new patch against -the latest release. Your best bet is to download the latest release, -and apply your patch against this new source tree: - - cd lilypond-0.1.74 - gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E - autoconf - configure +If you're not very quick with sending your patch, there's a +good chance that an new release of LilyPond comes available. +In such a case, the maintainer will probably ask you to make +a new patch against the latest release. Your best bet is to +download the latest release, and apply your patch against +this new source tree: + + cd lilypond-0.1.74 + gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E + autoconf + configure Then, make a patch as shown above. diff --git a/README.txt b/README.txt index e96abe18a2..edc1dd003f 100644 --- a/README.txt +++ b/README.txt @@ -1,82 +1,85 @@ -TITLE INFORMATION: This is the toplevel README to LilyPond + This is the toplevel README to LilyPond - LilyPond is the GNU Project music typesetter. This program can print -beautiful sheet music from a music definition file. It can also play -mechanical performances to a MIDI file. Features include multiple -staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas, -beams, slurs, triplets, named chords, transposing, formatting scores, -part extraction. It includes a nice font of musical symbols. +LilyPond is the GNU Project music typesetter. It transforms +a musical description file into beautiful sheet music. 1: VERSIONING -LilyPond uses a versioning scheme similar to the Linux kernel. In a -version "x.y.z", an even second number 'y' denotes a stable version. -For development versions 'y' is odd. For using straightforward score -production, please use the latest stable version. Development versions -may not produce good or nice scores. +LilyPond uses a versioning scheme similar to the Linux ker- +nel. In a version "x.y.z", an even second number 'y' +denotes a stable version. For development versions 'y' is +odd. For using straightforward score production, please use +the latest stable version. Development versions may not +produce good or nice scores. 2: REQUIREMENTS -For the compilation and running of LilyPond you need some additional -packages. Please refer to the installation instructions. +For the compilation and running of LilyPond you need some +additional packages. Please refer to the installation +instructions. -NOTE: If you downloaded a binary (.rpm or a W95/NT .zip file), then -you don't have to compile LilyPond. +NOTE: If you downloaded a binary (.rpm or a W95/NT .zip +file), then you don't have to compile LilyPond. 3: INSTALLATION -For your convenience, a formatted copy of the INSTALL instructions are -in the toplevel directory, as INSTALL.txt +For your convenience, a formatted copy of the INSTALL +instructions are in the toplevel directory, as INSTALL.txt -The process is fairly straightforward, but chances are that you have -to specify directories for TeX to configure: this is done with -the options --enable-tex-dir and --enable-mf-dir +The process is fairly straightforward, but chances are that +you have to specify directories for to configure: this is +done with the options --enable-tex-dir and --enable-mf-dir 4: DOCUMENTATION The real documentation is the directory Documentation/ -To generate the pretty-printed docs, you have to run configure first, -and then do this: +To generate the pretty-printed docs, you have to run config- +ure first, and then do this: - make doc +make doc -You can also simply read the .yo sources. They are ASCII text. -The complete documentation is accessible in formatted form at the -website http://www.cs.uu.nl/people/hanwen/lilypond/index.html +You can also simply read the .yo sources. They are ASCII +text. The complete documentation is accessible in formatted +form at the website http://www.cs.uu.nl/people/hanwen/lily- +pond/index.html 5: COMMENTS -LilyPond is a long way from finished and polished. We do appreciate -criticism, comments, bugreports, patches, etc. +LilyPond is a long way from finished and polished. We do +appreciate criticism, comments, bugreports, patches, etc. - Please send your e-mail to one of the MAILING LISTS + Please send your e-mail to one of the MAILING LISTS -and not to us personally. See Documentation/links.yo for more info. +and not to us personally. See Documentation/links.yo for +more info. 6: WINDOWS 32 -If you have received this file as part of a DOS/Window32 distribution -(LilyPond-*.zip), then it is advisable to also download the source -package, since it might contain more documentation -ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/ +If you have received this file as part of a DOS/Window32 +distribution (LilyPond-*.zip), then it is advisable to also +download the source package, since it might contain more +documentation ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/ -If you decide to build LilyPond from source, please read the INSTALL.txt -document first, especially the Windows NT/95 section. +If you decide to build LilyPond from source, please read the +INSTALL.txt document first, especially the Windows NT/95 +section. 7: CAVEATS -* Please read the file BUGS for some ugly bugs. +* Please read the file BUGS for some ugly bugs. -* If you have installed a previous version, be sure to remove old font -files, eg -rm `find /var/lib/texmf/fonts -name 'feta*'` +* If you have installed a previous version, be sure to +remove old font files, eg -a script to do this for you is in buildscripts/clean-fonts.sh + rm `find /var/lib/texmf/fonts -name 'feta*'` + +a script to do this for you is in buildscripts/clean- +fonts.sh 8: CDROM DISTRIBUTIONS -If you have received LilyPond on a cdrom, chances are that development -has moved a some patchlevels up. Please check the latest version of -LilyPond before reporting bugs. +If you have received LilyPond on a cdrom, chances are that +development has moved a some patchlevels up. Please check +the latest version of LilyPond before reporting bugs. diff --git a/TODO b/TODO index a8215f7915..3939b22ad5 100644 --- a/TODO +++ b/TODO @@ -8,48 +8,96 @@ done, might be done, or is an idea that I want to think about Most of the items are marked in the code as well Grep for TODO and ugh/ugr/urg. -.* BUGS +.* TODO before 1.2 +. * rename abc2ly mup2ly +. * rename 'staff_line_leading' (who is being lead where?) to +staff_space, interline; (or other meaningful name) and use throughout lily +. * rename files to class-name: +. * heads-engraver +. * request-iterator +. * p-score +. * engraver-group +. * standardise(d) switches: -v, --version; -d, --debug, +. * Auto_beam debugging output (waarom/wanneer heb jij die weggehaald?) +. * Auto_beam debugging output (waarom/wanneer heb jij die weggehaald?) +. * Rename illegal to invalid +. * Mats: + +- The Postscript output is still very experimental + +- The reference manual contain a number of exampels that don't + pass lilypond, among other the chord syntax. + +- Accidentals for grace notes are drawn at the wrong place. See + comment in grace.ly + +- It is impossible to typeset two textual scripts that are stacked + on top of eachother and avoids note collisions and at the same + time are typeset with different textStyle. I tried to move around + the text_engraver and other engravers between Voice and Thread + but the granularity is not fine enough, the scripts have to + share the same engraver in order to be get correct vertical + position but than they cannot have different style. + In my opinion, all scripts that share the same staff, should + be stacked vertically, avoiding collisions with the notes + in all voices. + +- If an \alternative is directly followed by a new \repeat, + Lily gives an assertion failure. See the comment in volta.fly + +- I'd like to change the \repetitions command to Jan's suggested + syntax: \repeat "repeatsymbol" 2 {...}, but I'm not sure that + I understand the implementation of repeats well enough. + +- The paper11/13/26 files have to be updated. +. * Grace_slur_engraver. +. * Break_req handling is silly (break_forbid () + \break fucks up.) +. * hangOnClef with non-breakable clefs. +. * do scaled fonts generally +. * fix partial measures in meaningful way. +. * relative mode for midi2ly +. * uniformise recent feta contributions. +. * bigger and fatter 4/4 C +. * sort out directory stuff. +. * --prefix option? +. * -I option per filetype? +. * kpathsea? +. * ly2dvi/lilypond logfile. +. * fractional chord durs. +. * hang Item on Spanner +. * do --safe for PS output? +. * convert-mudela --output +. * Staff_margin (with a partial measure.) +. * fix convert-mudela manpage +. * decimal point in \paper {} +. * msgfmt -o check? +. * add new glyphs to font.ly +. * formatting of input stuff. +. * deps for ly2dvi +. * decide wether to junk _ in lyrics. . * sane strategy for extensions (assume .ly): 02:22:24 appel ~/usr/src/lilypond$ lilypond foo GNU LilyPond 1.1.54. [/home/fred/usr/src/lilypond/scm/lily.scm] warning: can't find file: `init' . * indent = 0.0 with linewidth=-1.0 +. * auto-beaming in input/test/spacing.ly. +huh, snap niks van: gewone beam gaat wel goed. hoe kan abe nu +invloed hebben op beam-creatie, stopt toch gewoon stokken in? . * music ending in grace notes. . * PostScript . * half notes in pfa . * didot / big point. -. * check EGCS version -. * input/test/stem-spacing.ly: 12/4 touches first note . * \shape 1st dim skipped? . * turn slope-damping on/off . * We need feta-din*.mf files for more sizes than 10. . * fix dynamics decently, ie. use kerning & ligatures. -. * dots & rest collisions? . * behavior of "that the obvious solution \lyrics { foo1*4 __ _ }" is unintuitive. . * Lyrics and scripts collide. -. * a note with a circle after it, meaning: - - note + circle = note + 1/4 of its length - - the circle is like a dot that's not filled in. for example, on - page three, the c-sharp on the second line should be a quarter with - a circle, not a quarter tied to a sixteenth. is this at all - possible with lily? . * grace_align_item -> stackingdir = left, weird placement. -. * grace before triplet, see standchen -. * tuplets that are written as "number : note", for example - "3 : [image of a half note here]". possible? - . * filenames : junk lily.x -. * Matanya's tips: -. * don't shorten stems/staffs closer to each other. -. * accidentals closer to note head -. * to space the staffs/staffgroups contained in the score. -. * heavier beams? - .* Cleanups needed . * \$ and $ identifier syntax in examples. . * bracket ps code. @@ -64,58 +112,35 @@ warning: can't find file: `init' . * clef engraver . * parser -.* TODO before 1.2 -. * rename midi2ly, abc2ly mup2ly -. * Grace_slur_engraver. -. * Break_req handling is silly (break_forbid () + \break fucks up.) -. * Morally pure LilyPond. -. * Remove non-free software links. -. * Remove meta article LilyPond. +.* BUGS +. * [c8. c16 c16 c16] in 6/8 timesig. + +.* STUFF . * break priority setting from SCM. -. * hangOnClef with non-breakable clefs. +. * Matanya's tips: +. * don't shorten stems/staffs closer to each other. +. * accidentals closer to note head +. * to space the staffs/staffgroups contained in the score. +. * heavier beams? + +. * tuplets that are written as "number : note", for example + "3 : [image of a half note here]". possible? +. * a note with a circle after it, meaning: + + note + circle = note + 1/4 of its length + + the circle is like a dot that's not filled in. for example, on + page three, the c-sharp on the second line should be a quarter with + a circle, not a quarter tied to a sixteenth. is this at all + possible with lily? +. * scm-ify \property values. +. * make dependencies () a virtual function. . * Abstraction for engravers: . * make "in-between" engraver (Tie, Extender) . * make wide_spanner_engraver (line_group_spanner, staff_symbol) -. * do scaled fonts generally -. * make dependencies () a virtual function. . * store req -> element, element -> element causes for warnings -. * include examples in RPM. -. * fix partial measures in meaningful way. -. * relative mode for mi2mu -. * uniformise recent feta contributions. -. * bigger and fatter 4/4 C -. * sort out directory stuff. -. * --prefix option? -. * -I option per filetype? -. * kpathsea? -. * ly2dvi/lilypond logfile. -. * fractional chord durs. -. * hang Item on Spanner -. * do --safe for PS output? -. * convert-mudela --output -. * Staff_margin (with a partial measure.) -. * fix convert-mudela manpage -. * decimal point in \paper {} -. * scm-ify \property values. -. * move class Lookup {} into scm -. * msgfmt -o check? -. * add new glyphs to font.ly -. * formatting of input stuff. -. * broken scripts: - lbheel = \script { "bheel" 0 0 -1 0 0 } - rbheel = \script { "bheel" 0 0 1 0 0 } - lbtoe = \script { "btoe" 0 0 -1 0 0 } - rbtoe = \script { "btoe" 0 0 1 0 0 } - lfheel = \script { "fheel" 0 0 -1 0 0 } - rfheel = \script { "fheel" 0 0 1 0 0 } - lftoe = \script { "ftoe" 0 0 -1 0 0 } - rftoe = \script { "ftoe" 0 0 1 0 0 } -. * deps for ly2dvi - -. * decide wether to junk _ in lyrics. - -.* STUFF . * compulsory hshift +. * dots & rest collisions? . * My wish list for lyrics. I dream of a time when I will have enough time to become familiar enough with the source code to be able to implement some of @@ -132,9 +157,6 @@ important) to be able to have some form of automatic numbering at the beginning of each new line. This would make it easier to follow songs with a large number of stanzas. -2. Hyphens between syllables. At the moment there appears to be no easy way -to position a hyphen mid-way between the syllables it breaks. - 3. Notes centred above/below lyrics rather than left-aligned. 4. It would be very nice to be able to build some kind of phrasing into the @@ -161,7 +183,7 @@ repeated section with different words for each repeat. . * strip EXEs before installing . * zip target for binary windows dist (JBR) . * junking \skip req in lyrics -. * mi2mu empty staffs. +. * midi2ly empty staffs. . * use Fourier transformation for rhythmic quantisation. . * horizontal centering of dynamics . * $DEPENDENCIES_OUTPUT support @@ -263,12 +285,7 @@ touching it. . * tetex: mfplain.mem . * timesig: sometimes bottom digit too high: Xdvi doesn't handle newly created fonts correctly. -.* 3RD PARTY PROJECTS: -. * make GCC warn about ctor that leaves member vars uninitialised. -. * GNU patch -. * 'double-fix' mode: ignore identical fix, rather than suggest - to revert patch direction when (more or less? exactly) the same - thing is fixed + .* PROJECTS . * Scripts: . * stack scripts in chords: @@ -338,7 +355,7 @@ languages: . * Debug logs: . * derive lily_stream, Dstream, texstream from ostream? . * indentable stream as baseclass for TeX stream, lily stream, Dstream. -. * use dstream feature in mi2mu +. * use dstream feature in midi2ly . * integrate IO checking into stream class . * input converters @@ -460,7 +477,6 @@ hesitate to ask. . * input property . * abstract grammar. . * Figure out semicolons. -. * c4 4 4 4 for c4 c4 c4 c4? . * 4 ? . * Viola mode? diff --git a/VERSION b/VERSION index 294cc5ec43..08044eed79 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=1 -PATCH_LEVEL=55 +PATCH_LEVEL=56 MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/buildscripts/lilypond-login.sh b/buildscripts/lilypond-login.sh index d2c7b96047..feb3dfc8bd 100644 --- a/buildscripts/lilypond-login.sh +++ b/buildscripts/lilypond-login.sh @@ -3,8 +3,8 @@ # env. vars for the C-shell. # set environment for LilyPond. To be installed in /etc/profile.d/ -setenv GS_LIB "@datadir@/afm" -setenv GS_FONTPATH "@datadir@/ps" +setenv GS_LIB "@datadir@/ps" +setenv GS_FONTPATH "@datadir@/afm" # bit silly. for ly2dvi, overrules compiled-in datadir... setenv LILYPONDPREFIX "@datadir@" diff --git a/buildscripts/lilypond-profile.sh b/buildscripts/lilypond-profile.sh index 4d56f7248a..7bc2a25c4c 100644 --- a/buildscripts/lilypond-profile.sh +++ b/buildscripts/lilypond-profile.sh @@ -2,8 +2,8 @@ # set environment for LilyPond. To be installed in /etc/profile.d/ -GS_LIB="@datadir@/afm" -GS_FONTPATH="@datadir@/ps" +GS_LIB="@datadir@/ps" +GS_FONTPATH="@datadir@/afm" # bit silly. for ly2dvi, overrules compiled-in datadir... LILYPONDPREFIX="@datadir@" diff --git a/buildscripts/ps-to-gifs.sh b/buildscripts/ps-to-gifs.sh index 0f4afe0a5a..bf9c8c8c75 100755 --- a/buildscripts/ps-to-gifs.sh +++ b/buildscripts/ps-to-gifs.sh @@ -75,13 +75,13 @@ fi rm -f $BASE{.ppm,.$GIF} $BASE-page*{.ppm,.$GIF} # generate the pixmap at twice the size, then rescale (for antialiasing) -cat $FILE | gs -sDEVICE=ppmraw $SIZE -sOutputFile="$BASE-page%d.ppm" -r180 -dNOPAUSE - -c quit $FILE +cat $FILE | gs -sDEVICE=pgm $SIZE -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile="$BASE-page%d.ppm" -r90 -dNOPAUSE - -c quit $FILE # quant is soo slow # cat $PPMFILE | ppmquant 2 | pnmscale 0.3333 | pnmcrop | $PNMTOGIF $color > $OUTFILE PPMS=`ls $BASE*ppm` for i in $PPMS; do o=`dirname $i`/`basename $i .ppm`.$GIF - cat $i | pnmscale 0.5 | $CROP | $PNMTOGIF $color > $o + cat $i | $CROP | $PNMTOGIF $color > $o rm $i done diff --git a/buildscripts/set-lily.sh b/buildscripts/set-lily.sh index 7371d675a6..6446b9624f 100755 --- a/buildscripts/set-lily.sh +++ b/buildscripts/set-lily.sh @@ -50,7 +50,7 @@ echo echo Setting up links echo showln -sf $LILYPOND_SOURCEDIR/lily/out/lilypond $prefix/bin/lilypond -showln -sf $LILYPOND_SOURCEDIR/mi2mu/out/mi2mu $prefix/bin/mi2mu +showln -sf $LILYPOND_SOURCEDIR/midi2ly/out/midi2ly $prefix/bin/midi2ly showln -sf $LILYPOND_SOURCEDIR/scripts/out/ly2dvi $prefix/bin/ly2dvi showln -sf $LILYPOND_SOURCEDIR/scripts/out/mudela-book $prefix/bin/mudela-book showln -sf $LILYPOND_SOURCEDIR/buildscripts/out/genheader $prefix/bin/genheader diff --git a/dstreamrc b/dstreamrc index a13bedba99..479e6c5915 100644 --- a/dstreamrc +++ b/dstreamrc @@ -2,7 +2,15 @@ # rename to .dstreamrc and place in the directory where you're doing # the debugging. +# Set this to 1 to get default silence for unlisted classes +Dstream_default_silence 0 + +# In any case: for listed classes: +# 0: verbose +# 1: silent + # class name silence? + Dstream 0 # yydebug @@ -29,7 +37,8 @@ Absolute_dynamic_req 1 Atom 1 Axis_group_administration 1 Axis_group_spanner 1 -Auto_beam_engraver 0 +Articulation_req 1 +Auto_beam_engraver 1 Audio_column 1 Audio_element 1 Audio_item 1 @@ -57,6 +66,7 @@ Duration_identifier 1 Engraver 1 Engraver_group_engraver 1 General_script_def 1 +Global_translator 1 Graphical_element 1 Graphical_axis_group 1 Group_change_req 1 @@ -86,6 +96,7 @@ Note_head 1 Note_performer 1 Note_req 1 Paper_column 1 +Paper_outputter 1 Paper_score 1 Paper_def 1 Partial_measure_req 1 @@ -121,7 +132,7 @@ Skip_req 1 Staff_commands 1 Staff_symbol 1 Stem 1 -Stem_info 1 +Stem_info 0 Stem_req 1 String_identifier 1 Relative_octave_music 1 @@ -131,6 +142,7 @@ Symtables 1 Text_def 1 Text_item 1 Text_req 1 +Text_script_req 1 Time_description 1 Time_signature_change_req 1 Translation_property 1 diff --git a/input/bugs/refman-sv.ly b/input/bugs/refman-sv.ly new file mode 100644 index 0000000000..a1450512b6 --- /dev/null +++ b/input/bugs/refman-sv.ly @@ -0,0 +1,4 @@ +\score{\notes{ +c'' \< \! c'' d'' \decr e'' \rced +< f''1 {s4 \< \! s4 \> \! s2 } > +}} diff --git a/input/test/grace.ly b/input/test/grace.ly index 47e235cb33..2155314bed 100644 --- a/input/test/grace.ly +++ b/input/test/grace.ly @@ -1,8 +1,9 @@ \score {\notes \context Voice = VA \relative c'' { \grace c8 c4 - \grace { [c32 c32] } c4 + \grace { [c32 cis32] } c4 + \grace { [c32 c32] } \times 2/3 { [c8 c c] } \grace { [b32 ( c32] } c4 - \grace c8 [c8 c8] + \grace c16 [c8 c8] } } diff --git a/input/test/time.fly b/input/test/time.fly index 1ee912c0ae..4517587b14 100644 --- a/input/test/time.fly +++ b/input/test/time.fly @@ -5,6 +5,8 @@ c''1^"timeSignatureStyle = \"C\"" \time 2/2; c1 +\time 2/4; +c2 \time 3/4; c2. \time 4/4; @@ -27,6 +29,8 @@ c2. c2. c2. c1^"timeSignatureStyle = \"old\"" \time 2/2; c1 +\time 2/4; +c2 \time 3/4; c2. \time 4/4; @@ -53,6 +57,8 @@ c4. c4. c4. c1^"timeSignatureStyle = \"\"" \time 2/2; c1 +\time 2/4; +c2 \time 3/4; c2. \time 4/4; @@ -75,6 +81,8 @@ c2. c2. c2. c1^"timeSignatureStyle = \"1\"" \time 2/2; c1 +\time 2/4; +c2 \time 3/4; c2. \time 4/4; @@ -99,6 +107,9 @@ c1^"old9/8" \property Staff.timeSignatureStyle = "old6/8" \time 1/1; c1^"old6/8" +\property Staff.timeSignatureStyle = "old6/8alt" +\time 1/1; +c1^"old6/8alt" \property Staff.timeSignatureStyle = "old9/4" \time 1/1; c1^"old9/4" @@ -114,6 +125,12 @@ c1^"old4/4" \property Staff.timeSignatureStyle = "old2/2" \time 1/1; c1^"old2/2" +\property Staff.timeSignatureStyle = "old2/4" +\time 1/1; +c1^"old2/4" +\property Staff.timeSignatureStyle = "old4/8" +\time 1/1; +c1^"old4/8" \property Staff.timeSignatureStyle = "C4/4" \time 1/1; c1^"C4/4" diff --git a/input/test/volta.fly b/input/test/volta.fly new file mode 100644 index 0000000000..17b42bd28f --- /dev/null +++ b/input/test/volta.fly @@ -0,0 +1,18 @@ +% Test of prima/secunda volta brackets in conjunction with +% line breaks and special bars. + +c' d e f | +\repeat semi 2 { g a b c } +\alternative { { c b a g a g a g} { f e d c } } \break +c, d e f | % Assertion failure if this line is removed!! +\repeat semi 2 { g a b c } +\alternative { { c b a g \break a g a g} { f e d c } } \break +c, d e f | +\repeat semi 2 { g a b c } +\alternative { { c b a g \break a g a g \break a b a b } { f e d c } } \break +c, d e f | +\repeat semi 2 { g a b c } +\alternative { { c b a g } { f e d c \break a g a g} } \break +c, d e f | +\repeat semi 2 { g a b c } +\alternative { { c b a g a g a g} { f e d c \bar "|.";} } diff --git a/lily/atom.cc b/lily/atom.cc index b6bbb7e598..c222778aba 100644 --- a/lily/atom.cc +++ b/lily/atom.cc @@ -19,4 +19,5 @@ Atom::Atom(SCM s) { func_ = s; + magn_ = gh_int2scm (0); } diff --git a/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc index f80d36ec65..77094004d3 100644 --- a/lily/auto-beam-engraver.cc +++ b/lily/auto-beam-engraver.cc @@ -36,14 +36,30 @@ Auto_beam_engraver::do_creation_processing () timer_l_ = dynamic_cast (t); } +bool +Auto_beam_engraver::do_try_music (Music* m) +{ + /* + Mag dit? Nu word-i toch maar geswallowed, en + komt er dus ook geen announce... + */ + if (Skip_req* s = dynamic_cast (m)) + { + if (stem_l_arr_p_) + end_beam (); + return true; + } + return false; +} + void Auto_beam_engraver::do_process_requests () { - consider_end_and_begin (); + consider_end_and_begin (shortest_mom_); } void -Auto_beam_engraver::consider_end_and_begin () +Auto_beam_engraver::consider_end_and_begin (Moment test_mom) { if (!timer_l_) return; @@ -52,11 +68,12 @@ Auto_beam_engraver::consider_end_and_begin () int num = time->whole_per_measure_ / time->one_beat_; int den = time->one_beat_.den_i (); String time_str = String ("time") + to_str (num) + "_" + to_str (den); + String type_str; - if (shortest_mom_.num () != 1) - type_str = to_str (shortest_mom_.num ()); - if (shortest_mom_.den () != 1) - type_str = type_str + "_" + to_str (shortest_mom_.den ()); + if (test_mom.num () != 1) + type_str = to_str (test_mom.num ()); + if (test_mom.den () != 1) + type_str = type_str + "_" + to_str (test_mom.den ()); /* Determine end moment for auto beaming (and begin, mostly 0==anywhere) @@ -305,12 +322,15 @@ Auto_beam_engraver::acknowledge_element (Score_element_info info) reconsider ending/starting beam first. */ Moment mom = rhythmic_req->duration_.length_mom (); + consider_end_and_begin (mom); + if (!stem_l_arr_p_) + return; if (mom < shortest_mom_) { if (stem_l_arr_p_->size ()) { shortest_mom_ = mom; - consider_end_and_begin (); + consider_end_and_begin (shortest_mom_); if (!stem_l_arr_p_) return; } diff --git a/lily/include/atom.hh b/lily/include/atom.hh index 3c23232be7..ab67d0881d 100644 --- a/lily/include/atom.hh +++ b/lily/include/atom.hh @@ -24,6 +24,7 @@ public: representing a musical notation symbol. */ Protected_scm func_; Protected_scm font_; + Protected_scm magn_; }; diff --git a/lily/include/auto-beam-engraver.hh b/lily/include/auto-beam-engraver.hh index ce8655dd24..6621ecce1a 100644 --- a/lily/include/auto-beam-engraver.hh +++ b/lily/include/auto-beam-engraver.hh @@ -19,6 +19,7 @@ public: VIRTUAL_COPY_CONS (Translator); protected: + virtual bool do_try_music (Music*); virtual void do_pre_move_processing (); virtual void do_post_move_processing (); virtual void do_removal_processing (); @@ -28,7 +29,7 @@ protected: virtual void do_creation_processing (); private: void begin_beam (); - void consider_end_and_begin (); + void consider_end_and_begin (Moment test_mom); Beam* create_beam_p (); void end_beam (); void junk_beam (); diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index b7fcda0706..27ac98459a 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -46,7 +46,7 @@ public: Molecule text (String style, String text, Paper_def*) const; Molecule staff_brace (Real dy, int) const; Molecule staff_bracket (Real dy) const; - Molecule volta (Real h, Real w, Real thick, bool last_b) const; + Molecule volta (Real h, Real w, Real thick, bool vert_start, bool vert_end) const; Molecule special_time_signature (String, int,int, Paper_def*) const; Molecule time_signature (int n,int d, Paper_def*) const; diff --git a/lily/include/spanner.hh b/lily/include/spanner.hh index 8ad3caa31f..9e4ee574a3 100644 --- a/lily/include/spanner.hh +++ b/lily/include/spanner.hh @@ -49,6 +49,7 @@ class Axis_group_spanner; class Spanner : public virtual Score_element { public: Drul_array spanned_drul_; + Array broken_info_; void set_bounds (Direction d, Item*); @@ -68,7 +69,6 @@ protected: */ virtual void break_into_pieces (); - Array broken_info_; friend Axis_group_spanner; // UGH virtual void do_space_processing (); diff --git a/lily/lexer.ll b/lily/lexer.ll index 8c340af25c..3dd6d59e8c 100644 --- a/lily/lexer.ll +++ b/lily/lexer.ll @@ -364,7 +364,7 @@ HYPHEN -- } <*>. { - String msg = _f ("illegal character: `%c\'", YYText ()[0]); + String msg = _f ("invalid character: `%c\'", YYText ()[0]); LexerError (msg.ch_C ()); return YYText ()[0]; } diff --git a/lily/lookup.cc b/lily/lookup.cc index 38412301cb..e82dd2f808 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -120,6 +120,8 @@ Lookup::afm_find (String s, bool warn) const gh_int2scm (cm.code ()), SCM_UNDEFINED)); at.font_ = ly_symbol (font_name_.ch_C()); + at.magn_ = gh_int2scm (0); + m.dim_ = cm.dimensions(); m.add_atom (&at); return m; @@ -373,7 +375,7 @@ Lookup::text (String style, String text, Paper_def *paper_l) const if (style.empty_b ()) style = "roman"; - int font_mag = 1; + int font_mag = 0; Real font_h = paper_l->get_var ("font_normal"); if (paper_l->scope_p_->elem_b ("font_" + style)) { @@ -427,7 +429,6 @@ Lookup::text (String style, String text, Paper_def *paper_l) const if (font_mag > 1 && font_mag < 7 ) { /* UGH */ - style = style + String(" scaled \\magstep ") + to_str (font_mag); w *= mag_steps[font_mag]; ydims *= mag_steps[font_mag]; } @@ -456,6 +457,7 @@ Lookup::text (String style, String text, Paper_def *paper_l) const gh_str02scm (text.ch_C()), SCM_UNDEFINED)); at.font_ = ly_symbol (style); + at.magn_ = gh_int2scm (font_mag); m.add_atom (&at); return m; @@ -508,10 +510,10 @@ Lookup::hairpin (Real width, Real height, Real thick, bool decresc, bool continu String hairpin = String (decresc ? "de" : "") + "crescendo"; Atom at (gh_list (ly_symbol (hairpin), + gh_double2scm (thick), gh_double2scm (width), gh_double2scm (height), gh_double2scm (continued ? height/2 : 0.0), - gh_double2scm (thick), SCM_UNDEFINED)); m.dim_.x () = Interval (0, width); m.dim_.y () = Interval (-2*height, 2*height); @@ -581,7 +583,7 @@ Lookup::staff_bracket (Real y) const } Molecule -Lookup::volta (Real h, Real w, Real thick, bool last_b) const +Lookup::volta (Real h, Real w, Real thick, bool vert_start, bool vert_end) const { Molecule m; @@ -589,7 +591,8 @@ Lookup::volta (Real h, Real w, Real thick, bool last_b) const gh_double2scm (h), gh_double2scm (w), gh_double2scm (thick), - gh_int2scm (last_b), + gh_int2scm (vert_start), + gh_int2scm (vert_end), SCM_UNDEFINED)); m.dim_[Y_AXIS] = Interval (- h/2, h/2); diff --git a/lily/multi-measure-rest.cc b/lily/multi-measure-rest.cc index 41d8018b05..fede70beb4 100644 --- a/lily/multi-measure-rest.cc +++ b/lily/multi-measure-rest.cc @@ -100,7 +100,7 @@ Multi_measure_rest::do_brew_molecule_p () const else if (measures_i_ > 1) { Molecule s ( lookup_l ()->text ("number", to_str (measures_i_), paper_l ())); - + s.align_to (X_AXIS, CENTER); s.translate_axis (3.0 * interline_f, Y_AXIS); mol_p->add_molecule (s); } diff --git a/lily/paper-outputter.cc b/lily/paper-outputter.cc index 6d82f74380..564314efd1 100644 --- a/lily/paper-outputter.cc +++ b/lily/paper-outputter.cc @@ -141,6 +141,7 @@ Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm) { output_scheme (gh_list (ly_symbol ("select-font"), gh_str02scm (symbol_to_string (i->font_).ch_C()), + SCM (i->magn_), SCM_UNDEFINED)); } diff --git a/lily/stem.cc b/lily/stem.cc index 7f5129763f..0fd640c795 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -299,7 +299,11 @@ Stem::flag () const } char c = (dir_ == UP) ? 'u' : 'd'; - return lookup_l ()->afm_find (String ("flags-") + to_str (c) + to_str (flag_i_) + style); + Molecule m = lookup_l ()->afm_find (String ("flags-") + to_str (c) + + to_str (flag_i_)); + if (!style.empty_b ()) + m.add_molecule(lookup_l ()->afm_find (String ("flags-") + to_str (c) + style)); + return m; } Interval diff --git a/lily/time-description.cc b/lily/time-description.cc index 6fecdb99d8..d66eb403e1 100644 --- a/lily/time-description.cc +++ b/lily/time-description.cc @@ -14,11 +14,11 @@ Time_description::str () const { String s ("Time_description { "); if (cadenza_b_) - s += String ("(") + _("cadenza") + ")"; + s += String ("(") + _("cadenza") + ")"; s += "at "; s += when_.str (); s +="\ntime_signature " + (whole_per_measure_/one_beat_).str () +":" + - (Moment (Moment (1)/one_beat_)).str (); + (Moment (Moment (1)/one_beat_)).str (); s += "\nposition " + to_str (bars_i_) + ":"+ whole_in_measure_.str () +"\n}\n"; return s; } @@ -30,12 +30,13 @@ Time_description::print() const DOUT << str (); #endif } + void Time_description::OK() const { #ifndef NDEBUG if (!cadenza_b_) - assert (whole_in_measure_ < whole_per_measure_); + assert (whole_in_measure_ < whole_per_measure_); assert (Moment (0) <= whole_in_measure_); assert (one_beat_); #endif @@ -46,11 +47,11 @@ Time_description::set_cadenza (bool b) { if (cadenza_b_ && !b) { - if (whole_in_measure_) - { - bars_i_ ++; // should do? - whole_in_measure_ = 0; - } + if (whole_in_measure_) + { + bars_i_ ++; // should do? + whole_in_measure_ = 0; + } } cadenza_b_ = b ; } @@ -74,8 +75,8 @@ Time_description::add (Moment dt) while (!cadenza_b_ && whole_in_measure_ >= whole_per_measure_) { - whole_in_measure_ -= whole_per_measure_; - bars_i_ ++; + whole_in_measure_ -= whole_per_measure_; + bars_i_ ++; } } @@ -102,9 +103,9 @@ String Time_description::try_set_partial_str (Moment p) const { if (p whole_per_measure_) - return (_ ("partial measure too large")); + return (_ ("partial measure too large")); return ""; } @@ -121,22 +122,6 @@ Time_description::barleft() const return whole_per_measure_-whole_in_measure_; } -int -Time_description::compare (Time_description const &t1, Time_description const&t2) -{ - int i = sign (t1.when_-t2.when_); - - if (!i) - { - assert (t1.bars_i_==t2.bars_i_); - assert (t1.one_beat_ == t2.one_beat_); - assert (t1.whole_in_measure_ == t2.whole_in_measure_); - assert (t1.whole_per_measure_ == t2.whole_per_measure_); - } - - return i; -} - Moment Time_description::next_bar_moment() const { diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index 347ed70c43..c067169a8c 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -60,6 +60,10 @@ Tuplet_engraver::do_process_requests () void Tuplet_engraver::acknowledge_element (Score_element_info i) { + bool grace= (i.elem_l_->get_elt_property (grace_scm_sym) != SCM_BOOL_F); + if (grace != get_property ("weAreGraceContext",0).to_bool ()) + return; + if (Note_column *nc = dynamic_cast (i.elem_l_)) { for (int j =0; j (original_l_); + if (orig_span && orig_span->broken_info_[0].broken_spanner_l_ != this) + no_vertical_start = true; + if (orig_span && orig_span->broken_info_.top ().broken_spanner_l_ != this) + no_vertical_end = true; + if (bar_arr_.top ()->type_str_.length_i () > 1) + no_vertical_end = false; Real interline_f = paper_l ()->get_realvar (interline_scm_sym); Real internote_f = interline_f/2; @@ -40,7 +50,7 @@ Volta_spanner::do_brew_molecule_p () const Real dx = internote_f; Real w = extent (X_AXIS).length () - dx; Real h = paper_l()->get_var ("volta_spanner_height"); - Molecule volta (lookup_l ()->volta (h, w, t, last_b_)); + Molecule volta (lookup_l ()->volta (h, w, t, no_vertical_start, no_vertical_end)); Molecule num (lookup_l ()->text ("volta", number_str_, paper_l ())); diff --git a/make/lilypond.spec.in b/make/lilypond.spec.in index f42f35368a..a88efa0ad8 100644 --- a/make/lilypond.spec.in +++ b/make/lilypond.spec.in @@ -30,7 +30,8 @@ rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc mkdir htmldocs tar -C htmldocs -xzf out/htmldoc.tar.gz -#tar -C $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc -xzf out/htmldoc.tar.gz +mkdir -p out/examples/ +tar -cf - input/ | tar -C out/examples/ -xf- strip lily/out/lilypond midi2ly/out/midi2ly make prefix="$RPM_BUILD_ROOT/usr" install @@ -54,6 +55,7 @@ fi %files %doc htmldocs/ +%doc out/examples/ # hairy to hook it in (possibly non-existing) emacs %doc mudela-mode.el diff --git a/make/out/lelievijver.lsm b/make/out/lelievijver.lsm index ba753587cf..8264b668fb 100644 --- a/make/out/lelievijver.lsm +++ b/make/out/lelievijver.lsm @@ -1,15 +1,15 @@ Begin3 Titel: LilyPond -Versie: 1.1.55 -Inschrijf datum: 09JUL99 +Versie: 1.1.56 +Inschrijf datum: 11JUL99 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.55.tar.gz + 770k lilypond-1.1.56.tar.gz Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 770k lilypond-1.1.55.tar.gz + 770k lilypond-1.1.56.tar.gz Copi-eer voorwaarden: GPL End diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 1a7e20b9a7..9c038fe229 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 1.1.55 -Entered-date: 09JUL99 +Version: 1.1.56 +Entered-date: 11JUL99 Description: LilyPond is the GNU Project music typesetter. It transforms a musical @@ -12,8 +12,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.55.tar.gz + 770k lilypond-1.1.56.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 770k lilypond-1.1.55.tar.gz + 770k lilypond-1.1.56.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 11adbb60a4..6f6cd0721f 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.1.55 +Version: 1.1.56 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.55.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.56.tar.gz Summary: A program for printing sheet music. URL: http://www.cs.uu.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys @@ -34,7 +34,8 @@ rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc mkdir htmldocs tar -C htmldocs -xzf out/htmldoc.tar.gz -#tar -C $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc -xzf out/htmldoc.tar.gz +mkdir -p out/examples/ +tar -cf - input/ | tar -C out/examples/ -xf- strip lily/out/lilypond midi2ly/out/midi2ly make prefix="$RPM_BUILD_ROOT/usr" install @@ -58,6 +59,7 @@ fi %files %doc htmldocs/ +%doc out/examples/ # hairy to hook it in (possibly non-existing) emacs %doc mudela-mode.el diff --git a/mf/feta-banier.mf b/mf/feta-banier.mf index 64a289c86e..28aaa545d5 100644 --- a/mf/feta-banier.mf +++ b/mf/feta-banier.mf @@ -230,32 +230,27 @@ fet_beginchar("64th Flag (up)", "u6", "sixtyfourthflag") draw (0, 0) .. (0,-2 interline); fet_endchar; -fet_beginchar("grace 8th Flag (up)", "u3grace", "graceeighthflag") +fet_beginchar("grace dash (up)", "ugrace", "gracedash") save flare, hip_depth_ratio, hip_width, - foot_depth, foot_width_ratio; + foot_depth; 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); + + set_char_box(hip_width# * hip_depth_ratio, + hip_width# + stemthickness#/2 + right_upflag_space#, + foot_depth# * hip_depth_ratio, -flare#) pickup pencircle scaled 1.5 stemthickness; - draw (0, 0) .. (0,-2 interline); - draw (-b ,-foot_depth * hip_depth_ratio) .. - (w, -flare); + draw (-b ,-d) .. + (w, h); fet_endchar; fet_beginchar("8th (down)", "d3", "deighthflag") @@ -411,10 +406,8 @@ fet_beginchar("64th (down)", "d6", "dsixtyfourthflag") fet_endchar; -fet_beginchar("grace 8th (down)", "d3grace", "dgraceeighthflag") - save flare, - hip_depth_ratio, hip_width, - foot_depth, foot_width_ratio; +fet_beginchar("grace dash (down)", "dgrace", "dgracedash") + save flare, hip_depth_ratio, hip_width, foot_depth; save flagspace, total_depth, flag_count; flag_count = 1; @@ -427,22 +420,15 @@ fet_beginchar("grace 8th (down)", "d3grace", "dgraceeighthflag") 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); + flagspace, foot_depth); + set_char_box(hip_width# * hip_depth_ratio, + hip_width# + stemthickness#/2 + right_downflag_space#, + foot_depth# * hip_depth_ratio, -flare#) pickup pencircle scaled 1.5 stemthickness; - draw (0, 0) .. (0,-2 interline); - draw (-b, -foot_depth * hip_depth_ratio) .. (w,-flare); + draw (-b, -d) .. (w,h); y_mirror_char; fet_endchar; diff --git a/mf/feta-generic.mf b/mf/feta-generic.mf index ad64170dff..a50866f73a 100644 --- a/mf/feta-generic.mf +++ b/mf/feta-generic.mf @@ -35,7 +35,7 @@ if test = 0: input feta-klef; input feta-timesig; else: -% input feta-bolletjes; + input feta-bolletjes; % input feta-banier; % input feta-eindelijk; % input feta-klef; diff --git a/mf/feta-timesig.mf b/mf/feta-timesig.mf index afe2d28c10..4cdf404b32 100644 --- a/mf/feta-timesig.mf +++ b/mf/feta-timesig.mf @@ -3,7 +3,8 @@ % % source file of the Feta (not an abbreviation of Font-En-Tja) music font % -% (c) 1998 Mats Bengtsson +% (c) 1998--1999 Mats Bengtsson , +% Christian Mondrup fet_begingroup("timesig"); @@ -159,4 +160,34 @@ fet_beginchar ("Mensural 9/8 meter", "old9/8", "oldnineeight") draw_block((-Cthickness/2, -d), (Cthickness/2, h)); fet_endchar; +%% tempus imperfectum cum prolatione imperfecta diminutio simplex +fet_beginchar ("Mensural 4/8 meter", "old4/8", "oldfoureightmeter") + set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, + .5 Cdiameter#, .5 Cdiameter#); + + pickup pencircle scaled Cthickness; + draw threequartercircle rotated 225 scaled Cdiameter; +fet_endchar; + +%% tempus imperfectum cum prolatione perfecta diminutio simplex +fet_beginchar ("Mensural 6/8 meter", "old6/8alt", "oldsixeightmeteralt") + set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, + .5 Cdiameter#, .5 Cdiameter#); + + pickup pencircle scaled Cthickness; + draw threequartercircle rotated 225 scaled Cdiameter; + pickup pencircle scaled 4 stafflinethickness; + draw (0,0); +fet_endchar; + +%% tempus imperfectum cum prolatione imperfecta diminutio duplex +fet_beginchar ("Mensural 2/4 meter", "old2/4", "oldtwofourmeter") + set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, + interline#, interline#); + + pickup pencircle scaled Cthickness; + draw threequartercircle rotated 225 scaled Cdiameter; + draw_block((-Cthickness, -d), (0, h)); +fet_endchar; + fet_endgroup("timesig"); diff --git a/mf/graycx.mf b/mf/graycx.mf index 3098b60d1a..35fb3c4929 100644 --- a/mf/graycx.mf +++ b/mf/graycx.mf @@ -3,6 +3,6 @@ font_identifier "GRAYCX"; -boolean lightweight; +%boolean lightweight; input grayf diff --git a/midi2ly/TODO b/midi2ly/TODO index 2f0b77f11e..57f0488a70 100644 --- a/midi2ly/TODO +++ b/midi2ly/TODO @@ -1,4 +1,4 @@ -# mi2mu/TODO +# midi2ly/TODO Most of the items are marked in the code as well, with full explanation. grep for TODO and ugh/ugr @@ -16,15 +16,15 @@ IMPORTANT * junk one in list vs. array - * add mi2mu example output (.midi.ly and .gif) to website + * add midi2ly example output (.midi.ly and .gif) to website * important? lily is important, go work on lily! - * faq about mi2mu midi t1. ? + * faq about midi2ly midi t1. ? PROJECTS - * write something interesting in mi2mu manual page + * write something interesting in midi2ly manual page * check/use type 0 / 1 / 2 of midi file @@ -80,5 +80,5 @@ FUTURE * steal good ideas of other gpl midi parsers * lily: add mudela info into midi as specials - mi2mu: use special info + midi2ly: use special info diff --git a/midi2ly/include/midi-parser.hh b/midi2ly/include/midi-parser.hh index 9dca4db212..529fdf268d 100644 --- a/midi2ly/include/midi-parser.hh +++ b/midi2ly/include/midi-parser.hh @@ -37,7 +37,7 @@ #include "proto.hh" #include "moment.hh" -#include "mi2mu-proto.hh" +#include "midi2ly-proto.hh" struct Midi_parser_info { diff --git a/midi2ly/include/midi-score-parser.hh b/midi2ly/include/midi-score-parser.hh index 0dc9823705..02d6f18aeb 100644 --- a/midi2ly/include/midi-score-parser.hh +++ b/midi2ly/include/midi-score-parser.hh @@ -12,7 +12,7 @@ #include "midi-parser.hh" #include "proto.hh" -#include "mi2mu-proto.hh" +#include "midi2ly-proto.hh" #include "parray.hh" class Midi_score_parser : public Midi_parser diff --git a/midi2ly/include/midi-track-parser.hh b/midi2ly/include/midi-track-parser.hh index d873e198df..27eb83d224 100644 --- a/midi2ly/include/midi-track-parser.hh +++ b/midi2ly/include/midi-track-parser.hh @@ -13,7 +13,7 @@ #include "proto.hh" #include "cons.hh" #include "moment.hh" -#include "mi2mu-proto.hh" +#include "midi2ly-proto.hh" #include "midi-parser.hh" class Midi_track_parser : public Midi_parser diff --git a/midi2ly/include/mi2mu-proto.hh b/midi2ly/include/midi2ly-proto.hh similarity index 67% rename from midi2ly/include/mi2mu-proto.hh rename to midi2ly/include/midi2ly-proto.hh index d8ad1368e4..5ac345ae94 100644 --- a/midi2ly/include/mi2mu-proto.hh +++ b/midi2ly/include/midi2ly-proto.hh @@ -1,14 +1,14 @@ /* - mi2mu-proto.hh -- declare type names in mi2mu + midi2ly-proto.hh -- declare type names in midi2ly - source file of mi2mu, part of the GNU LilyPond package, + source file of midi2ly, part of the GNU LilyPond package, (c) 1997--1998 Han-Wen Nienhuys */ -#ifndef MI2MU_PROTO_HH -#define MI2MU_PROTO_HH +#ifndef MIDI2LY_PROTO_HH +#define MIDI2LY_PROTO_HH class Midi_parser; struct Midi_parser_info; @@ -26,4 +26,4 @@ class Mudela_staff; class Mudela_voice; class Mudela_column; -#endif // MI2MU_PROTO_HH +#endif // MIDI2LY_PROTO_HH diff --git a/midi2ly/include/mudela-column.hh b/midi2ly/include/mudela-column.hh index a09cebb469..cd549a1b37 100644 --- a/midi2ly/include/mudela-column.hh +++ b/midi2ly/include/mudela-column.hh @@ -7,7 +7,7 @@ #define MUDELA_COLUMN_HH #include "proto.hh" -#include "mi2mu-proto.hh" +#include "midi2ly-proto.hh" #include "moment.hh" #include "cons.hh" diff --git a/midi2ly/include/mudela-item.hh b/midi2ly/include/mudela-item.hh index e1b52b7368..e6150e4a04 100644 --- a/midi2ly/include/mudela-item.hh +++ b/midi2ly/include/mudela-item.hh @@ -6,7 +6,7 @@ #ifndef MUDELA_ITEM_HH #define MUDELA_ITEM_HH -#include "mi2mu-proto.hh" +#include "midi2ly-proto.hh" #include "string.hh" #include "moment.hh" #include "duration.hh" diff --git a/midi2ly/include/mudela-score.hh b/midi2ly/include/mudela-score.hh index 8e75d028cc..b5fa1db972 100644 --- a/midi2ly/include/mudela-score.hh +++ b/midi2ly/include/mudela-score.hh @@ -6,7 +6,7 @@ #ifndef MUDELA_SCORE_HH #define MUDELA_SCORE_HH -#include "mi2mu-proto.hh" +#include "midi2ly-proto.hh" #include "proto.hh" #include "cons.hh" #include "parray.hh" diff --git a/midi2ly/include/mudela-staff.hh b/midi2ly/include/mudela-staff.hh index 8c0afa044a..2367fec701 100644 --- a/midi2ly/include/mudela-staff.hh +++ b/midi2ly/include/mudela-staff.hh @@ -6,7 +6,7 @@ #ifndef MUDELA_STAFF_HH #define MUDELA_STAFF_HH -#include "mi2mu-proto.hh" +#include "midi2ly-proto.hh" #include "proto.hh" #include "cons.hh" #include "string.hh" diff --git a/midi2ly/include/mudela-stream.hh b/midi2ly/include/mudela-stream.hh index 6953a961cd..0ba47e8173 100644 --- a/midi2ly/include/mudela-stream.hh +++ b/midi2ly/include/mudela-stream.hh @@ -8,7 +8,7 @@ #ifndef MUDELA_STREAM_HH #define MUDELA_STREAM_HH -#include "mi2mu-proto.hh" +#include "midi2ly-proto.hh" #include "string.hh" #include "scalar.hh" diff --git a/midi2ly/include/mudela-voice.hh b/midi2ly/include/mudela-voice.hh index db196da9e6..2c82a4b4b2 100644 --- a/midi2ly/include/mudela-voice.hh +++ b/midi2ly/include/mudela-voice.hh @@ -6,7 +6,7 @@ #ifndef MUDELA_VOICE_HH #define MUDELA_VOICE_HH -#include "mi2mu-proto.hh" +#include "midi2ly-proto.hh" #include "cons.hh" /// (mudela_voice) diff --git a/midi2ly/main.cc b/midi2ly/main.cc index 26e0c66b8e..88cf758b88 100644 --- a/midi2ly/main.cc +++ b/midi2ly/main.cc @@ -13,7 +13,7 @@ #include "duration-convert.hh" #include "source.hh" -#include "mi2mu-global.hh" +#include "midi2ly-global.hh" #include "midi-score-parser.hh" #include "mudela-item.hh" #include "mudela-score.hh" @@ -40,7 +40,7 @@ Verbose level_ver = NORMAL_ver; void usage() { - cout << _f ("Usage: %s [OPTION]... [FILE]", "mi2mu"); + cout << _f ("Usage: %s [OPTION]... [FILE]", "midi2ly"); cout << '\n'; cout << _ ("Translate midi-file to mudela"); cout << '\n'; @@ -95,14 +95,14 @@ usage() void identify() { - LOGOUT(NORMAL_ver) << mi2mu_version_str() << endl; + LOGOUT(NORMAL_ver) << midi2ly_version_str() << endl; } void notice() { LOGOUT(NORMAL_ver) << '\n'; - LOGOUT(NORMAL_ver) << _ ("Mi2mu, translate midi to mudela"); + LOGOUT(NORMAL_ver) << _ ("Midi2ly, translate midi to mudela"); LOGOUT(NORMAL_ver) << '\n'; LOGOUT(NORMAL_ver) << _f ("Copyright (c) %s by", "1997, 1998"); LOGOUT(NORMAL_ver) << '\n'; diff --git a/midi2ly/midi-parser.cc b/midi2ly/midi-parser.cc index eafd50c004..6b4fbe0d6d 100644 --- a/midi2ly/midi-parser.cc +++ b/midi2ly/midi-parser.cc @@ -9,7 +9,7 @@ #include #include "string-convert.hh" #include "source-file.hh" -#include "mi2mu-global.hh" +#include "midi2ly-global.hh" #include "midi-parser.hh" Midi_parser_info::Midi_parser_info () @@ -87,7 +87,7 @@ Midi_parser::get_var_i () String Midi_parser::message (String str) { - return String ("mi2mu: ") + return String ("midi2ly: ") + info_l_->source_l_->name_str () + ": " + String_convert::i2dec_str (info_l_->source_l_->line_i ((char const*)info_l_->byte_L_), 0, 0) + ": " + str + "\n" diff --git a/midi2ly/midi-score-parser.cc b/midi2ly/midi-score-parser.cc index c20fe468e2..7e1908246c 100644 --- a/midi2ly/midi-score-parser.cc +++ b/midi2ly/midi-score-parser.cc @@ -9,7 +9,7 @@ #include "moment.hh" #include "source-file.hh" #include "source.hh" -#include "mi2mu-global.hh" +#include "midi2ly-global.hh" #include "midi-score-parser.hh" #include "midi-track-parser.hh" #include "mudela-item.hh" diff --git a/midi2ly/midi-track-parser.cc b/midi2ly/midi-track-parser.cc index 49840ec77c..b545c2ddb8 100644 --- a/midi2ly/midi-track-parser.cc +++ b/midi2ly/midi-track-parser.cc @@ -8,7 +8,7 @@ #include #include "string-convert.hh" -#include "mi2mu-global.hh" +#include "midi2ly-global.hh" #include "midi-track-parser.hh" #include "mudela-column.hh" #include "mudela-item.hh" diff --git a/midi2ly/mudela-item.cc b/midi2ly/mudela-item.cc index 58a1db586b..1aa6105f09 100644 --- a/midi2ly/mudela-item.cc +++ b/midi2ly/mudela-item.cc @@ -4,7 +4,7 @@ // copyright 1997 Jan Nieuwenhuizen #include -#include "mi2mu-global.hh" +#include "midi2ly-global.hh" #include "string-convert.hh" #include "duration-convert.hh" #include "mudela-column.hh" diff --git a/midi2ly/mudela-score.cc b/midi2ly/mudela-score.cc index 6916d80df7..cfd121d430 100644 --- a/midi2ly/mudela-score.cc +++ b/midi2ly/mudela-score.cc @@ -7,7 +7,7 @@ #include "moment.hh" #include "duration.hh" #include "duration-convert.hh" -#include "mi2mu-global.hh" +#include "midi2ly-global.hh" #include "mudela-column.hh" #include "mudela-item.hh" #include "mudela-score.hh" diff --git a/midi2ly/mudela-staff.cc b/midi2ly/mudela-staff.cc index d6088e1bec..2f109da5d9 100644 --- a/midi2ly/mudela-staff.cc +++ b/midi2ly/mudela-staff.cc @@ -8,8 +8,8 @@ #include "moment.hh" #include "duration-convert.hh" #include "string-convert.hh" -#include "mi2mu-proto.hh" -#include "mi2mu-global.hh" +#include "midi2ly-proto.hh" +#include "midi2ly-global.hh" #include "mudela-column.hh" #include "mudela-item.hh" #include "mudela-staff.hh" diff --git a/midi2ly/mudela-stream.cc b/midi2ly/mudela-stream.cc index 5bdfd11e25..6692daf874 100644 --- a/midi2ly/mudela-stream.cc +++ b/midi2ly/mudela-stream.cc @@ -8,7 +8,7 @@ #include #include #include -#include "mi2mu-global.hh" +#include "midi2ly-global.hh" #include "mudela-item.hh" #include "mudela-stream.hh" #include "string-convert.hh" @@ -76,7 +76,7 @@ Mudela_stream::header() if (no_timestamps_b_g) *os_p_ << "GNU LilyPond\n"; else - *os_p_ << mi2mu_version_str() << '\n'; + *os_p_ << midi2ly_version_str() << '\n'; *os_p_ << _ ("% Automatically generated"); if (no_timestamps_b_g) *os_p_ << ".\n"; diff --git a/midi2ly/mudela-voice.cc b/midi2ly/mudela-voice.cc index 286d2176c9..67070742ef 100644 --- a/midi2ly/mudela-voice.cc +++ b/midi2ly/mudela-voice.cc @@ -4,7 +4,7 @@ // copyright 1997 Jan Nieuwenhuizen #include "string-convert.hh" -#include "mi2mu-global.hh" +#include "midi2ly-global.hh" #include "mudela-column.hh" #include "mudela-item.hh" #include "mudela-staff.hh" diff --git a/midi2ly/version.cc b/midi2ly/version.cc index e9f2ed4e69..6a6306fdab 100644 --- a/midi2ly/version.cc +++ b/midi2ly/version.cc @@ -1,13 +1,13 @@ #include "proto.hh" #include "string.hh" -const char * mi2mu_version_sz(); +const char * midi2ly_version_sz(); // should simply have Root class... String -mi2mu_version_str() +midi2ly_version_str() { - return String (mi2mu_version_sz ()) + return String (midi2ly_version_sz ()) + " " + _("of") + " " + __DATE__ + " " + __TIME__; } diff --git a/mutopia/J.S.Bach/Duette/global-ii.ly b/mutopia/J.S.Bach/Duette/global-ii.ly index da22bed0ff..3a2346ec92 100644 --- a/mutopia/J.S.Bach/Duette/global-ii.ly +++ b/mutopia/J.S.Bach/Duette/global-ii.ly @@ -1,3 +1,5 @@ +\version "1.1.52"; + $global_ii = \notes{ \time 4/4; \property Staff.timeSignatureStyle = "C2/2" diff --git a/mutopia/J.S.Bach/Duette/viola-ii.ly b/mutopia/J.S.Bach/Duette/viola-ii.ly index 5ccd1a9f72..f91fa3b4b3 100644 --- a/mutopia/J.S.Bach/Duette/viola-ii.ly +++ b/mutopia/J.S.Bach/Duette/viola-ii.ly @@ -8,6 +8,8 @@ enteredby = "jcn"; copyright = "Public Domain"; } +\version "1.1.52"; + \include "global-ii.ly" \include "violoncello-ii.ly"; @@ -18,4 +20,3 @@ $viola_ii_staff = \context Staff = viola < \$global_ii \notes\transpose c'' \$violoncello_ii > -\version "1.1.52"; diff --git a/mutopia/J.S.Bach/Duette/viola-part.ly b/mutopia/J.S.Bach/Duette/viola-part.ly index 66df2cd2ca..19e03a8869 100644 --- a/mutopia/J.S.Bach/Duette/viola-part.ly +++ b/mutopia/J.S.Bach/Duette/viola-part.ly @@ -10,22 +10,24 @@ copyright = "Public Domain"; \version "1.1.52"; +% { + \include "global-i.ly" \include "viola-i.ly" -%{ \score{ \$viola_i_staff \paper{ \translator { \BarNumberingStaffContext } } \midi{ -%urg real/duration +%urg, real/duration % \tempo 4. = 69; \tempo 4 . = 50; } } -%} + +% } \include "global-ii.ly" \include "viola-ii.ly" @@ -33,11 +35,12 @@ copyright = "Public Domain"; \score{ \$viola_ii_staff \paper{ - castingalgorithm=0.0; +% castingalgorithm=0.0; \translator { \BarNumberingStaffContext } - \translator { \ScoreContext skipBars = 1; } + %\translator { \ScoreContext skipBars = 1; } } \midi{ - \tempo 2 = 96; +% \tempo 2 = 96; + \tempo 2 = 75; } } diff --git a/mutopia/J.S.Bach/Duette/violino-ii.ly b/mutopia/J.S.Bach/Duette/violino-ii.ly index 5cf92fde1d..61b1c03ab6 100644 --- a/mutopia/J.S.Bach/Duette/violino-ii.ly +++ b/mutopia/J.S.Bach/Duette/violino-ii.ly @@ -8,6 +8,8 @@ enteredby = "jcn"; copyright = "Public Domain"; } +\version "1.1.52"; + $violino_ii = \notes\relative c''{ R1*8 | r2 e | diff --git a/mutopia/J.S.Bach/Duette/violino-part.ly b/mutopia/J.S.Bach/Duette/violino-part.ly index f53fc6ff25..ff19bd3fd1 100644 --- a/mutopia/J.S.Bach/Duette/violino-part.ly +++ b/mutopia/J.S.Bach/Duette/violino-part.ly @@ -10,10 +10,11 @@ copyright = "Public Domain"; \version "1.1.52"; +% { + \include "global-i.ly" \include "violino-i.ly" -%{ \score{ \$violino_i_staff \paper{ @@ -24,7 +25,8 @@ copyright = "Public Domain"; \tempo 4 . = 50; } } -%} + +% } \include "global-ii.ly" \include "violino-ii.ly" @@ -33,11 +35,11 @@ copyright = "Public Domain"; \$violino_ii_staff \paper{ \translator { \BarNumberingStaffContext } - castingalgorith=0; +% castingalgorith=0; } \midi{ -% \tempo 4. = 69; - \tempo 4 . = 50; +% \tempo 2 = 96; + \tempo 2 = 75; } } diff --git a/mutopia/J.S.Bach/Duette/violino-viola.ly b/mutopia/J.S.Bach/Duette/violino-viola.ly index 856c58db74..df41210a36 100644 --- a/mutopia/J.S.Bach/Duette/violino-viola.ly +++ b/mutopia/J.S.Bach/Duette/violino-viola.ly @@ -10,6 +10,7 @@ copyright = "Public Domain"; \version "1.1.52"; +% { \include "violino-i.ly"; \include "viola-i.ly"; @@ -30,6 +31,7 @@ copyright = "Public Domain"; } } +% } \include "violino-ii.ly"; \include "viola-ii.ly"; diff --git a/mutopia/J.S.Bach/Duette/violino-violoncello.ly b/mutopia/J.S.Bach/Duette/violino-violoncello.ly index 449f317748..16cb715e15 100644 --- a/mutopia/J.S.Bach/Duette/violino-violoncello.ly +++ b/mutopia/J.S.Bach/Duette/violino-violoncello.ly @@ -10,6 +10,7 @@ copyright = "Public Domain"; \version "1.1.52"; +% { \include "violino-i.ly"; \include "violoncello-i.ly"; @@ -30,6 +31,8 @@ copyright = "Public Domain"; } } +% } + \include "violino-ii.ly"; \include "violoncello-ii.ly"; @@ -44,7 +47,8 @@ copyright = "Public Domain"; } } \midi{ - \tempo 2 = 96; +% \tempo 2 = 96; + \tempo 2 = 75; } } diff --git a/mutopia/J.S.Bach/Duette/violoncello-part.ly b/mutopia/J.S.Bach/Duette/violoncello-part.ly index bdac62748d..10878f83e6 100644 --- a/mutopia/J.S.Bach/Duette/violoncello-part.ly +++ b/mutopia/J.S.Bach/Duette/violoncello-part.ly @@ -10,10 +10,11 @@ copyright = "Public Domain"; \version "1.1.52"; +% { + \include "global-i.ly" \include "violoncello-i.ly" -%{ \score{ \$violoncello_i_staff \paper{ @@ -25,7 +26,8 @@ copyright = "Public Domain"; \tempo 4 . = 69; } } -%} + +% } \include "global-ii.ly" \include "violoncello-ii.ly" @@ -33,11 +35,12 @@ copyright = "Public Domain"; \score{ \$violoncello_ii_staff \paper{ - castingalgorithm=0.; + %castingalgorithm=0.; \translator { \BarNumberingStaffContext } } \midi{ - \tempo 2 = 96; +% \tempo 2 = 96; + \tempo 2 = 75; } } diff --git a/mutopia/N.W.Gade/brass.ly b/mutopia/N.W.Gade/brass.ly index 7a9930b7cc..6eb446c670 100644 --- a/mutopia/N.W.Gade/brass.ly +++ b/mutopia/N.W.Gade/brass.ly @@ -22,8 +22,8 @@ r4 r c \p ( | ) g r r | g [g8. ( a16 ] ) g4 | R2. | -r4 r [g8^""^"solo" \mf \< () \! e' ] | -\grace d8 g2 \> ( [ \! e8. c16 ] | +r4 r [g8^""^"solo" \mf \< () e' ] | +\grace d8 \! g2 \> ( [ \! e8. c16 ] | ) g2 r4 | R2. | r4 r \times 2/3 {[e'8 \f ( g, ) g'] } | diff --git a/mutopia/N.W.Gade/global.ly b/mutopia/N.W.Gade/global.ly index b679595ffc..5908b22d5d 100644 --- a/mutopia/N.W.Gade/global.ly +++ b/mutopia/N.W.Gade/global.ly @@ -15,11 +15,12 @@ global=\notes { \globalNoKey } -marks=\notes { +marks= \notes { \time 3/4; -\property Voice.textStyle = "Large" -\skip 2.*31; -s2 s8 s^"\\Allegromoltovivace" +%\property Thread.textStyle = "Large" +s2.^"\\raisebox{4mm}{\\bfseries\Large Andante con moto}" +\skip 2.*30; +s2 s8 s^"\\raisebox{4mm}{\\bfseries\Large Allegro molto vivace}" \time 2/4; \skip 2*12; \mark "A"; diff --git a/mutopia/N.W.Gade/global.tex b/mutopia/N.W.Gade/global.tex index 5046499d6e..81d102135f 100644 --- a/mutopia/N.W.Gade/global.tex +++ b/mutopia/N.W.Gade/global.tex @@ -1,10 +1,8 @@ -% Defined as macros so Lilypond doesn't assign any horisontal spacing. -\newcommand{\Allegromoltovivace}{\hspace{-10mm}\raise 20pt\hbox{ - \Large \textbf{Allegro molto vivace}}} -%\newcommand{\Andanteconmoto}{\hspace{-12mm}\raise 20pt\hbox{ -% \Large Andante con moto}} -\newcommand{\Andanteconmoto}{} -\renewcommand{\thepiece}{Andante con moto} +\def\fetdef#1#2{% + \def#1{\hbox{\fetchar{#2}}}} +\font\fetasixteen = feta16 +\def\fetchar#1{{\fetasixteen\char#1}} +\input{feta20} %%% Add lilypond-xxx/mf/out/ to TEXINPUTS \newcommand{\okt}{$8^{va}$} @@ -36,27 +34,25 @@ \vspace*{-10mm}% \begin{center} \bfseries - \ifx\mudelanull\thetitle\else\sethuge{\thetitle}\\ \fi - \ifx\mudelanull\thesubtitle\else\setLarge{\thesubtitle}\\ \fi + \ifx\mudelanull\thetitle\else{\huge\thetitle}\\ \fi + \ifx\mudelanull\thesubtitle\else{\Large\thesubtitle}\\ \fi \end{center} \bigskip % urg \edef\saveparskip{\parskip}\parskip-5mm \begin{minipage}[t]{0.45\textwidth} - \ifx\mudelanull\thepoet\else\settext{\thepoet}\\ \fi - \ifx\mudelanull\themetre\else\settext{\themetre}\\ \fi + \ifx\mudelanull\thepoet\else{\thepoet}\\ \fi + \ifx\mudelanull\themetre\else{\themetre}\\ \fi \end{minipage}\hspace*{\fill} \begin{minipage}[t]{0.45\textwidth} \begin{flushright} - \ifx\mudelanull\thecomposer\else\setlarge{\normalfont\scshape\thecomposer}\\ \fi - \ifx\mudelanull\theopus\else\settext{\theopus}\\ \fi - \ifx\mudelanull\thearranger\else\settext{\thearranger}\\ \fi + \ifx\mudelanull\thecomposer\else{\large\normalfont\scshape\thecomposer}\\ \fi + \ifx\mudelanull\theopus\else{\theopus}\\ \fi + \ifx\mudelanull\thearranger\else{\thearranger}\\ \fi \end{flushright}% \end{minipage}\par \parskip\saveparskip -% {\center\setlarge{\theinstrument}\par} -% {\flushleft\setLarge{\normalfont\scshape\thepiece}} - {\flushleft\setLarge{\textbf\thepiece}} - \leavevmode - \enlargethispage*{5mm} + {\flushleft{\Large\textbf\thepiece}\par}% +% \leavevmode% + \enlargethispage*{5mm}% } diff --git a/mutopia/N.W.Gade/parts.ly b/mutopia/N.W.Gade/parts.ly index 4a4ecd6446..e49da7e460 100644 --- a/mutopia/N.W.Gade/parts.ly +++ b/mutopia/N.W.Gade/parts.ly @@ -28,6 +28,7 @@ my_paper = \paper { skipBars = 1; markScriptPadding = "6.0"; barNumberScriptPadding = "11.0"; + dynamicPadding = 3.0; textScriptPadding = 5.0; textStyle = "italic"; textEmptyDimension = 1; @@ -83,7 +84,7 @@ my_paper = \paper { \clarI > \header{ - instrument = "Clarinetto I in B\\textflat"; + instrument = "Clarinetto I in B\\flat"; } \paper{ \my_paper @@ -101,7 +102,7 @@ my_paper = \paper { \clarII > \header{ - instrument = "Clarinetto II in B\\textflat"; + instrument = "Clarinetto II in B\\flat"; } \paper{ \my_paper @@ -182,7 +183,7 @@ my_paper = \paper { \context Voice = help \trpIhelp > \header{ - instrument = "Tromba I in B\\textflat"; + instrument = "Tromba I in B\\flat"; } \paper{ \my_paper @@ -203,7 +204,7 @@ my_paper = \paper { \context Voice = help \trpIIhelp > \header{ - instrument = "Tromba II in B\\textflat"; + instrument = "Tromba II in B\\flat"; } \paper{ \my_paper diff --git a/mutopia/N.W.Gade/score.ly b/mutopia/N.W.Gade/score.ly index 181725d825..b42398670c 100644 --- a/mutopia/N.W.Gade/score.ly +++ b/mutopia/N.W.Gade/score.ly @@ -33,13 +33,13 @@ copyright = "Mats Bengtsson, 1999. Free circulation permitted and " + \oboe > \context Voice = clarI < - \property Staff.instrument = "Clarinetto I" + \property Staff.instrument = "Clar. I in B\\flat " \property Staff.instr = "Cl. I" \globalNoKey \clarI > \context Voice = clarII < - \property Staff.instrument = "Clarinetto II" + \property Staff.instrument = "Clar. II in B\\flat " \property Staff.instr = "Cl. II" \globalNoKey \clarII @@ -66,7 +66,7 @@ copyright = "Mats Bengtsson, 1999. Free circulation permitted and " + } > \context Staff = trp < - \property Staff.instrument = "2 Trp. in B\\textflat " + \property Staff.instrument = "2 Trp. in B\\flat " \property Staff.instr = "Trp." \context Voice = trpI < \globalNoKey @@ -133,6 +133,7 @@ copyright = "Mats Bengtsson, 1999. Free circulation permitted and " + \translator { \StaffContext \consists "Staff_margin_engraver"; marginScriptPadding = "15.0"; + dynamicPadding = 3.0; textStyle = "italic"; textScriptPadding = 5.0; textEmptyDimension = 1; diff --git a/mutopia/W.A.Mozart/horn-concerto-3.ly b/mutopia/W.A.Mozart/horn-concerto-3.ly index a11757c35e..e10794f19c 100644 --- a/mutopia/W.A.Mozart/horn-concerto-3.ly +++ b/mutopia/W.A.Mozart/horn-concerto-3.ly @@ -1,5 +1,5 @@ \header{ -title = "Konzert Nr. 3 Es dur" +title = "Konzert Nr. 3 Es dur"; subtitle = "f\\\"ur Horn und Orchester"; description = "Third horn concerto, for horn in Es"; composer = "W. A. Mozart (1756-1792)"; @@ -22,7 +22,7 @@ allegro = c, r R1*1 r8 [g' g g] [g g e c] - g4 g, r2 + g'4 g, r2 R1*18 r2 r4 g'4 | e'4. () c8 [f (d c )b ] @@ -42,11 +42,11 @@ allegro = [g'()d ] d4-- r4 d [d8 () c] c4.( [d16 e] [d8 )c] [c8(-\trill )b] b4 r2 | - d2~( [d8 e16 d] [c8 )b] | + d2( ~ [d8 e16 d] [c8 )b] | [b()a-.] a4-> r8 [a-. a-. a-.] a4 cis e g - [g16( fis e )d] d4-. r2 | % The g16 really is a grace note. - % mark B + [ \grace g16( fis8 e16 )d] d4-. r2 | + \mark "B"; R1*3 r2 r4 [d8 (b ] [a )g d'( b] [a )g e'( c ] @@ -59,13 +59,13 @@ allegro = r1 c,2\p e4 g c e g4. e8 | d4. [e16 fis] [g () fis e d] [c() b a g] - a1(-\trill % \grace{g a} + a1(-\trill \grace{ g16 a} )g4 r r2 R1*15 - % mark D + \mark "D"; bes2 d4 f g,2~ [g8 g'( es )c]| - bes4()a. [c8 d es] + bes4( )a4. [c8 d es] cis4()d r8 [bes (c )d] es2 () d4 r es2\p () d4 r @@ -87,7 +87,7 @@ allegro = r8 [fis, b dis] fis4 r r8 [gis, b d] f4 r r8 [g, b d] f4 r - %mark E + \mark "E"; R1*8 r2 r8 [g,-. g-. g-.] e'4.() c8 [f( d c )b] @@ -97,10 +97,10 @@ allegro = c4.( [d16 e] f4 )e a, ( d g, )c d d [ - % \grace {e} + \grace { e8 } d8. c16 d8. e16] c4 r r2 - % mark F + \mark "F"; R1*3 c,2~[c8( e g )c] [c8()b] b4 r2 @@ -113,7 +113,7 @@ allegro = r2 r4 [g'8()e] [d()c g'()e] [d()c a'()f] [e()d] d4 r [d8 d] - d4~( [d16 e d )e] [g8() f e d] | + d4(~ [d16 e d )e] [g8() f e d] | c4 r r2 r1 c1 ~ @@ -128,7 +128,7 @@ allegro = d1-\trill % \grace { c d} c4 r r2 r1 | - % mark H + \mark "H"; \times 2/3 { [ c8 ()b a ] } \times 2/3 { [ g a b] } \times 2/3 { [ c d e] } \times 2/3 { [ f()e d] } | \times 2/3 { [ c () b a ] } \times 2/3 { [ g a b] } \times 2/3 { [ c d e] } \times 2/3 { [ f()e d] }| c4 \times 2/3 { r8 [g'()e]} c4 \times 2/3 { r8 [e () c]} | @@ -154,12 +154,12 @@ romanze = \notes \relative c' { c'4.() f8 a,4 a [bes8( c d bes] )g4 r8 g a r bes r c r [d()bes] - a2()[g8 a( bes )b] + a2( [)g8 a( bes )b] c4. () f8 a,4 a | [bes8 (c d) bes] g4 r8 c,-. [c8( e g )bes] [a( c f ) d] c r e r f r r4 - % mark A + \mark "A"; R1*8 g4. f8 [e d c bes] [bes( a d )c] c4 r @@ -170,7 +170,7 @@ romanze = \notes \relative c' { [c16\mf () d c-. d-.] [e () f e-. f-.] [g()e c-. c-.] [f()d b-. b-.] [c16\p () d c-. d-.] [e () f e-. f-.] [g()e c-. c-.] [f()d b-. b-.] [c8 c, c c] [c c c c] - % mark B + \mark "B"; c1\f R1*9 f'4.(\p )d8 b4 r8 g @@ -183,7 +183,7 @@ romanze = \notes \relative c' { [c ()e g g] [g( f e )d] c4( % \grace { e} [d8. )c16] [c8 c--( c-- )c--] - % mark C + \mark "C"; des1\sf %\sfp g,1\sf %\sfp c\sf %\sfp @@ -192,7 +192,7 @@ romanze = \notes \relative c' { r8 [c c c] c2~ [c8 c' c c] c2~ [c8 e( g f] [e d c bes] - % mark D + \mark "D"; )a4 r r2 R1*3 c4. () f8 a,4 a | @@ -247,7 +247,7 @@ rondo = \notes \relative c' [g()e c-.] [d()e d-.] c4 r8 r4 r8 | R2.*7 - % mark A + \mark "A"; c4.\p [d8 c d] c4 r8 r4 r8 e4. [f8 e f] @@ -262,7 +262,7 @@ rondo = \notes \relative c' d2.~ [d8 c b] [b a g] g'4()e8 b4()cis8 - %mark B + \mark "B"; d4 r8 r4 r8 R2.*3 | r8 [d-. d-.] [d()g d---.] @@ -278,7 +278,7 @@ rondo = \notes \relative c' d4()g8 [c, d e] [d()g fis] [e d c] [b () e d] [c b a] - % mark C + \mark "C"; g4 r8 r4 r8 r2. | % @@ -289,7 +289,7 @@ rondo = \notes \relative c' \rondotheme R2.*12 r4 r8 r4 c8 - % mark D + \mark "D"; c4 f8 c4 a8 a4.~a4 a8 bes4 c8 d4 bes8 @@ -306,7 +306,7 @@ rondo = \notes \relative c' bes4. ~ bes4 g8 a4 c8 [f () d b] d4. () c8 r r - % mark E + \mark "E"; R2.*9 | \lipbreaker [c8 c' c] c4.~ @@ -320,7 +320,7 @@ rondo = \notes \relative c' r8 [g g] [g g g] es4.\f~ [es8 d c] b4. c4. d4. e4. - % mark F + \mark "F"; f2.\f ~ | f4 r8 r4 r8 r8 [g\> g] [g g g] @@ -328,7 +328,7 @@ rondo = \notes \relative c' [a bes \! b] \rondotheme R2.*7 - % mark G + \mark "G"; R2.*4 c,4.\mf c4 c8 c4. e4 c8 @@ -338,7 +338,7 @@ rondo = \notes \relative c' r4 r8 r4 g'8 [c ()e g,-.] [c ()e g,-.] [c ()e g,-.] [c ()e g,-.] - % mark H + \mark "H"; g'2._"cresc." bes,2. a4. [b16 c d e f g] a4. f4 d8 @@ -359,8 +359,16 @@ rondo = \notes \relative c' c4 r8 r4 r8 } - \include "part-paper.ly" +\paper{ + casting_algorithm = \Wordwrap; + \translator { \StaffContext \consists Mark_engraver; } + \translator { \ScoreContext + skipBars = 1; + } + +} + \score { \allegro @@ -370,18 +378,17 @@ rondo = \notes \relative c' \score { - { \property Score.skipBars = 1 - \romanze + { \romanze } - \paper{ \tempo 4 = 70; } - \midi{} + \midi{ \tempo 4 = 70; } + \paper{} } \score { \rondo \paper{ - \tempo 4 = 100; } - \midi{} + \midi{ \tempo 4 = 100; +} } diff --git a/ps/lily.ps b/ps/lily.ps index 3eeb87484a..f2d5c1a058 100644 --- a/ps/lily.ps +++ b/ps/lily.ps @@ -79,9 +79,10 @@ stroke } bind def -/draw_volta % h w thick last +/draw_volta % h w thick vert_start vert_end { - /last exch def + /vert_end exch def + /vert_start exch def setlinewidth /volta_w exch def /volta_h exch def @@ -89,10 +90,13 @@ % true setstrokeadjust 1 setlinecap 1 setlinejoin - 0 0 moveto - 0 volta_h lineto + vert_start 0 eq { + 0 0 moveto + 0 volta_h lineto + } if + 0 volta_h moveto volta_w volta_h lineto - last 0 eq { + vert_end 0 eq { volta_w 0 lineto } if stroke diff --git a/scm/lily.scm b/scm/lily.scm index 003a92a639..5914bf1f8f 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -175,8 +175,8 @@ (string-append "\\lilyfont" (make-string 1 (integer->char (+ 65 i))))) - - (define (select-font font-name) + + (define (select-font font-name magnification) (if (not (equal? font-name current-font)) (begin (set! current-font font-name) @@ -188,7 +188,12 @@ (set! font-count (+ 1 font-count)) (if (equal? font-name "") (error "Empty fontname -- SELECT-FONT")) - (string-append "\\font" font-cmd "=" font-name font-cmd)) + (if (> magnification 0) + (string-append "\\font" font-cmd "=" font-name + " scaled \\magstep " + (number->string magnification) font-cmd) + (string-append "\\font" font-cmd "=" font-name font-cmd))) + (cdr font-cmd))) "" ;no switch needed )) @@ -202,14 +207,14 @@ (define (dashed-slur thick dash l) (embedded-ps ((ps-scm 'dashed-slur) thick dash l))) - (define (crescendo w h cont) - (embedded-ps ((ps-scm 'crescendo) w h cont))) + (define (crescendo thick w h cont) + (embedded-ps ((ps-scm 'crescendo) thick w h cont))) (define (char i) (string-append "\\char" (inexact->string i 10) " ")) - (define (decrescendo w h cont) - (embedded-ps ((ps-scm 'decrescendo) w h cont))) + (define (decrescendo thick w h cont) + (embedded-ps ((ps-scm 'decrescendo) thick w h cont))) ;This sets CTM so that you get to the currentpoint ; by executing a 0 0 moveto @@ -287,7 +292,7 @@ (maxht (* 7 minht)) ) (string-append - (select-font (string-append "feta-braces" (number->string (inexact->exact staffht)))) + (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))) 0) (char (max 0 (/ (- (min y (- maxht step)) minht) step)))) ) ) @@ -327,8 +332,8 @@ (define (tuplet ht gapx dx dy thick dir) (embedded-ps ((ps-scm 'tuplet) ht gapx dx dy thick dir))) - (define (volta h w thick last) - (embedded-ps ((ps-scm 'volta) h w thick last))) + (define (volta h w thick vert_start vert_end) + (embedded-ps ((ps-scm 'volta) h w thick vert_start vert_end))) ;; TeX ;; The procedures listed below form the public interface of TeX-scm. @@ -409,8 +414,19 @@ (string-append "lilyfont" (make-string 1 (integer->char (+ 65 i))))) - - (define (select-font font-name) + + (define (mag-to-size m) + (number->string (case m + ('0 12) + ('1 12) + ('2 14) ; really: 14.400 + ('3 17) ; really: 17.280 + ('4 21) ; really: 20.736 + ('5 24) ; really: 24.888 + ('6 30) ; really: 29.856 + ))) + + (define (select-font font-name magnification) (if (not (equal? font-name current-font)) (begin (set! current-font font-name) @@ -421,8 +437,9 @@ (set! font-alist (acons font-name font-cmd font-alist)) (set! font-count (+ 1 font-count)) (string-append "\n/" font-cmd " {/" - font-name - " findfont 12 scalefont setfont} bind def \n" + font-name " findfont " + (mag-to-size magnification) + " scalefont setfont} bind def \n" font-cmd " \n")) (string-append (cdr font-cmd) " "))) ; font-name == current-font no switch needed @@ -439,7 +456,7 @@ (define (char i) (invoke-char " show" i)) - (define (crescendo w h cont thick) + (define (crescendo thick w h cont ) (string-append (numbers->string (list w h (inexact->exact cont) thick)) " draw_crescendo")) @@ -453,7 +470,7 @@ (number->string (* 2 thick)) " ] 0 draw_dashed_slur")) - (define (decrescendo thick w h cont) + (define (decrescendo w h cont thick) (string-append (numbers->string (list w h (inexact->exact cont) thick)) " draw_decrescendo")) @@ -510,7 +527,7 @@ (maxht (* 7 minht)) ) (string-append - (select-font (string-append "feta-braces" (number->string (inexact->exact staffht)))) + (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))) 0) (char (max 0 (/ (- (min y (- maxht step)) minht) step)))) ) ) @@ -544,9 +561,9 @@ (string-append "(" s ") show ")) - (define (volta h w thick last) + (define (volta h w thick vert_start vert_end) (string-append - (numbers->string (list h w thick (inexact->exact last))) + (numbers->string (list h w thick (inexact->exact vert_start) (inexact->exact vert_end))) " draw_volta")) (define (tuplet ht gap dx dy thick dir) diff --git a/scripts/abc-2-ly.py b/scripts/abc2ly.py similarity index 100% rename from scripts/abc-2-ly.py rename to scripts/abc2ly.py diff --git a/scripts/convert-mudela.py b/scripts/convert-mudela.py index 2c66ec21a4..bb957a03af 100644 --- a/scripts/convert-mudela.py +++ b/scripts/convert-mudela.py @@ -374,19 +374,6 @@ if 1: '\\wheel -> \\coda') -if 1: - def conv(lines): - newlines =[] - for x in lines: - x = re.sub ('\\\\wheel','\\\\coda', x) - newlines.append (x) - return newlines - - conversions.append ((1,1,55), conv, - '\\wheel -> \\coda') - - - ############################ diff --git a/scripts/mudela-book.py b/scripts/mudela-book.py index eafc978c0e..869b7907ac 100644 --- a/scripts/mudela-book.py +++ b/scripts/mudela-book.py @@ -744,13 +744,13 @@ def main(): do_deps = 1 elif o == '--default-mudela-fontsize': if not fontsize_pt2i.has_key(a): - sys.stderr.write("Error: illegal fontsize: %s" % a) + sys.stderr.write("Error: invalid fontsize: %s" % a) sys.stderr.write(" accepted fontsizes are: 11pt, 13pt, 16pt, 20pt, 26pt") sys.exit() Props.setMudelaFontsize(fontsize_pt2i[a], 'init') elif o == '--force-mudela-fontsize': if not fontsize_pt2i.has_key(a): - sys.stderr.write("Error: illegal fontsize: %s" % a) + sys.stderr.write("Error: invalid fontsize: %s" % a) sys.stderr.write(" accepted fontsizes are: 11pt, 13pt, 16pt, 20pt, 26pt") sys.exit() Props.force_mudela_fontsize = fontsize_pt2i[a] diff --git a/stepmake/stepmake/yodl-rules.make b/stepmake/stepmake/yodl-rules.make index 78811f5d1f..66598c81ad 100644 --- a/stepmake/stepmake/yodl-rules.make +++ b/stepmake/stepmake/yodl-rules.make @@ -22,7 +22,7 @@ $(outdir)/%.texinfo: %.yo $(YODL2TEXINFO) -doutdir=$(outdir) --live-data=3 -o $@ $< $(outdir)/%.txt: %.yo - $(YODL2TXT) -doutdir=$(outdir) --live-data=3 -o $@ $< -# $(YODL2MSLESS) -doutdir=$(outdir) --live-data=3 $< > $@ +# $(YODL2TXT) -doutdir=$(outdir) --live-data=3 -o $@ $< + $(YODL2MSLESS) -doutdir=$(outdir) --live-data=3 $< > $@ # rm -f $(basename $<).ms diff --git a/tex/fetdefs.tex b/tex/fetdefs.tex deleted file mode 100644 index 730b17a85b..0000000000 --- a/tex/fetdefs.tex +++ /dev/null @@ -1,3 +0,0 @@ -% fetdefs.tex -% encapsulating tex backend for auto-generated feta definitions -\endinput diff --git a/tex/lilypond-latex.tex b/tex/lilypond-latex.tex index 143a4c28c5..e8a60fed86 100644 --- a/tex/lilypond-latex.tex +++ b/tex/lilypond-latex.tex @@ -1,51 +1,5 @@ \message{LaTeX definitions} \def\texsuffix{LaTeX} - -\def\cmrelevenLaTeX{ - \def\settext##1{{\normalfont\tiny ##1}} - \def\setitalic##1{\textit{\tiny ##1}} - \def\setbold##1{\textbf{\tiny ##1}} - \def\setlarge##1{\textbf{\footnotesize ##1}} - \def\setLarge##1{\textbf{\small ##1}} - \def\sethuge##1{\textbf{\normalsize ##1}} -} -\def\cmrthirteenLaTeX{ - \def\settext##1{{\normalfont\scriptsize ##1}} - \def\setitalic##1{\textit{\scriptsize ##1}} - \def\setbold##1{\textbf{\scriptsize ##1}} - \def\setlarge##1{\textbf{\small ##1}} - \def\setLarge##1{\textbf{\normalsize ##1}} - \def\sethuge##1{\textbf{\large ##1}} -} -\def\cmrsixteenLaTeX{ - \def\settext##1{{\normalfont\footnotesize ##1}} - \def\setitalic##1{\textit{\small ##1}} - \def\setbold##1{\textbf{\footnotesize ##1}} - \def\settypewriter##1{\texttt{\normalsize ##1}} - \def\setlarge##1{\textbf{\normalsize ##1}} - \def\setLarge##1{\textbf{\large ##1}} - \def\sethuge##1{\textbf{\Large ##1}} -} -\def\cmrtwentyLaTeX{ - \def\settext##1{{\normalfont ##1}} - \def\setitalic##1{\textit{\normalsize ##1}} - \def\setbold##1{\textbf{\normalsize ##1}} - \def\settypewriter##1{\texttt{\normalsize ##1}} - \def\setlarge##1{\textbf{\large ##1}} - \def\setLarge##1{\textbf{\Large ##1}} - \def\sethuge##1{\textbf{\huge ##1}} -} - -%%%%%%%%UGH - \def\settext#1{{\normalfont #1}} - \def\setitalic#1{\textit{\normalsize #1}} - \def\setbold#1{\textbf{\normalsize #1}} - \def\settypewriter#1{\texttt{\normalsize #1}} - \def\setlarge#1{\textbf{\large #1}} - \def\setLarge#1{\textbf{\Large #1}} - \def\sethuge#1{\textbf{\huge #1}} - - \def\lilyfooterLaTeX{ \let\nopagenumbers\relax %% FIXME diff --git a/tex/lilypond-plaintex.tex b/tex/lilypond-plaintex.tex index a05d577614..1e4fdec9f0 100644 --- a/tex/lilypond-plaintex.tex +++ b/tex/lilypond-plaintex.tex @@ -1,58 +1,9 @@ \message{LilyPond Plain TeX settings} \def\texsuffix{PlainTeX} -\def\cmrtwentyPlainTeX{ - \font\normaltextfont=cmr10 %\textfont is a primitive - \font\italicfont=cmti10 scaled \magstep1 - \font\boldfont=cmbx10 - \font\largefont=cmbx12 - \font\typewriterfont=cmtt10 - \font\Largefont=cmbx12 scaled \magstep 2 - \font\hugefont=cmbx12 scaled \magstep 3 -} -\def\cmrsixteenPlainTeX{ - \font\normaltextfont=cmr8 %\textfont is a primitive - \font\italicfont=cmti9 - \font\boldfont=cmbx8 - \font\typewriterfont=cmtt9 - \font\largefont=cmbx10 - \font\Largefont=cmbx12 - \font\hugefont=cmbx12 scaled \magstep 2 -} -\def\cmrthirteenPlainTeX{ - \font\normaltextfont=cmr7 - \font\italicfont=cmti7 - \font\boldfont=cmbx7 - \font\largefont=cmbx9 - \font\typewriterfont=cmtt7 - \font\Largefont=cmbx10 - \font\hugefont=cmbx12 -} - -\def\cmrelevenPlainTeX{ - \font\normaltextfont=cmr6 - \font\italicfont=cmti6 - \font\boldfont=cmbx6 - \font\typewriterfont=cmtt6 - \font\largefont=cmbx8 - \font\Largefont=cmbx9 - \font\hugefont=cmbx10 -} - \def\lilyfooterPlainTeX{ \footline={\ifnum\pageno=1\smalltextfont\mudelacopyright\hfil \mudelatagline \else\hfil\the\pageno\hfil\fi}% } \advance\hoffset by -.6in - - -\def\settext#1{\normaltextfont #1} -\def\setitalic#1{\italicfont #1} -\def\setbold#1{\boldfont #1} -\def\settypewriter#1{\typewriterfont #1} -\def\setlarge#1{\largefont #1} -\def\setLarge#1{\Largefont #1} -\def\sethuge#1{\hugefont #1} - -\def\nolilyfooterPlainTeX{\nopagenumbers -} +\def\nolilyfooterPlainTeX{\nopagenumbers} diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 77b02d7f7a..696bf389a3 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -15,9 +15,24 @@ \def\SkipLilydefs{} \fi \SkipLilydefs + +% need to do some stuff to turn pagenumbering off +\ifundefined{documentclass} + \input lilypond-plaintex +\else + \input lilypond-latex +\fi + + % \def\botalign#1{\vbox to 0pt{\vss #1}} \def\leftalign#1{\hbox to 0pt{#1\hss}} +\font\textmusic=cmmi10 +\def\textsharp{\raise.4ex\hbox{\textmusic\char"5D}} +\def\textnatural{\raise.4ex\hbox{\textmusic\char"5C}} +\def\textflat{\raise.2ex\hbox{\textmusic\char"5B}} + + % stacked horizontal lines @@ -27,9 +42,20 @@ \input lily-ps-defs \def\EndLilyPondOutput{% \csname bye\endcsname - } - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - +} \def\postheader{} -\noindent + +% need to do some stuff to turn pagenumbering off +% they seriously mess up your fragments. + +\ifx\csname nolilyfooter\endcsname\relax + \message{[footer defined]}% + \csname lilyfooter\texsuffix\endcsname% +\else + \message{[footer empty]} + \csname% + nolilyfooter\texsuffix\endcsname +\fi + + +\endinput diff --git a/tex/mudela-book.tex b/tex/mudela-book.tex index 20a7eb0e62..c79076e597 100644 --- a/tex/mudela-book.tex +++ b/tex/mudela-book.tex @@ -24,12 +24,12 @@ % ful of pars, needs the above \input lilyponddefs + +% generates par +\def\interscoreline{} % generates par \musixsixteendefs \def\musixsixteendefs{} -% generates par -\turnOnPostScript% -\def\turnOnPostScript{} -% generates par -\def\interscoreline{} \def\nolilyfooter{} +%urg: missing \begin{document}? +\def\noindent{} diff --git a/tex/titledefs.tex b/tex/titledefs.tex index 07b806cbb8..fd18c5b606 100644 --- a/tex/titledefs.tex +++ b/tex/titledefs.tex @@ -65,7 +65,7 @@ \parskip\saveparskip {\center{\large\theinstrument}\par} {\flushleft{\large\normalfont\scshape\thepiece}} - \leavevmode +% \leavevmode } \def\makelilypiecetitle { -- 2.39.2