From 6fe258640b5b7b1fe523bbf4ae5e679331c6074d Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 26 Apr 2001 23:03:54 +0200 Subject: [PATCH] patch::: 1.3.150.jcn3 1.3.150.jcn3 ============ * ly2dvi: reverted footer change that broke mutopia endfooter. * Standchen revision (found four new bugs). * Allow multiple multiply for durations, eg: 'R1 * 3/4 * 10'. * Bugfix for direct PostScript output. --- CHANGES | 11 ++ Documentation/topdocs/INSTALL.texi | 11 +- Documentation/windows/lily-wins.texi | 2 +- VERSION | 2 +- input/bugs/accents.ly | 12 ++ input/bugs/nest-core.ly | 8 ++ input/bugs/rest-melisma.ly | 19 +++ input/bugs/triplet.ly | 10 ++ lily/parser.yy | 11 +- make/redhat.spec.in | 2 + make/suse.spec.in | 2 + mutopia/F.Schubert/standchen.ly | 175 ++++++++++++++++----------- ps/lilyponddefs.ps | 5 +- scripts/ly2dvi.py | 15 ++- 14 files changed, 197 insertions(+), 88 deletions(-) create mode 100644 input/bugs/accents.ly create mode 100644 input/bugs/nest-core.ly create mode 100644 input/bugs/rest-melisma.ly create mode 100644 input/bugs/triplet.ly diff --git a/CHANGES b/CHANGES index 45c28df75c..8d2052caa5 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,14 @@ +1.3.150.jcn3 +============ + +* ly2dvi: reverted footer change that broke mutopia endfooter. + +* Standchen revision (found four new bugs). + +* Allow multiple multiply for durations, eg: 'R1 * 3/4 * 10'. + +* Bugfix for direct PostScript output. + 1.3.150.jcn2 ============ diff --git a/Documentation/topdocs/INSTALL.texi b/Documentation/topdocs/INSTALL.texi index 93b4781825..d03a80ac91 100644 --- a/Documentation/topdocs/INSTALL.texi +++ b/Documentation/topdocs/INSTALL.texi @@ -315,11 +315,12 @@ sources. You can make the rpm by issuing @end example For running on a Red Hat system you need these packages: guile, tetex, -tetex-dvips, libstdc++, python, ghostscript. +tetex-latex, tetex-dvips, libstdc++, python, ghostscript. For compilation on a Red Hat system you need these packages, in addition to the those needed for running: glibc-devel, gcc-c++, libstdc++-devel, -guile-devel, flex, bison, texinfo, tetex-devel, groff, libgr-progs. +guile-devel, flex, bison, texinfo, tetex-devel, groff, +libgr-progs. @subsection SuSE @@ -327,9 +328,9 @@ You can also compile them yourself. A spec file is in @file{make/out/suse.spec}. This file is distributed along with the sources. -You must have the following packages: guile tcsh tetex te_latex te_mpost -libpng python gpp libgpp gettext autoconf netpbm libnetpb gs_serv gs_lib -gs_fonts guile +You must have the following packages: guile tcsh tetex te_latex te_kpath +te_mpost libpng python gpp libgpp gettext autoconf netpbm libnetpb +gs_serv gs_lib gs_fonts guile @subsection Mandrake diff --git a/Documentation/windows/lily-wins.texi b/Documentation/windows/lily-wins.texi index aeacfcd9ab..8dfbd89387 100644 --- a/Documentation/windows/lily-wins.texi +++ b/Documentation/windows/lily-wins.texi @@ -14,7 +14,7 @@ Until now, installing LilyPond on Windows was @uref{http://mail.gnu.org/pipermail/help-gnu-music/2001-April/000620.html, almost} a dull process that could easily be @uref{ -ftp://appel.lilypond.org/pub/gnu-windows/cygwin-1.1.7/bin/tar/lily-install-0.6-i686-cygwin.bin.tar.gz, +ftp://appel.lilypond.org/pub/gnu-windows/cygwin-1.1.7/bin/tar/lily-install-0.7-1.tar.gz, automated} and scripted. This meant that you would have more time left for actual work, and we all know that's not what computers were designed for. diff --git a/VERSION b/VERSION index 3451c621ea..2072f2c8f7 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 PATCH_LEVEL=150 -MY_PATCH_LEVEL=jcn2 +MY_PATCH_LEVEL=jcn3 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/input/bugs/accents.ly b/input/bugs/accents.ly new file mode 100644 index 0000000000..1712266870 --- /dev/null +++ b/input/bugs/accents.ly @@ -0,0 +1,12 @@ +\score { + \context Staff \notes\relative c''< + \context Voice=one { + \voiceOne + e2-> + } + \context Voice=two { + \voiceTwo + f,2-> + } + > +} \ No newline at end of file diff --git a/input/bugs/nest-core.ly b/input/bugs/nest-core.ly new file mode 100644 index 0000000000..c8ebfe3c61 --- /dev/null +++ b/input/bugs/nest-core.ly @@ -0,0 +1,8 @@ +\header{ +texidoc="running this through ly2dvi, or with -Hheader dumps core" +tagline="{" +} + +\score { + \notes c +} \ No newline at end of file diff --git a/input/bugs/rest-melisma.ly b/input/bugs/rest-melisma.ly new file mode 100644 index 0000000000..3d2aafbb8a --- /dev/null +++ b/input/bugs/rest-melisma.ly @@ -0,0 +1,19 @@ +\header { +texidoc="slur or long note on other staffs fool lily into extending melisma" +} +\score { + < + \addlyrics + \notes { + \property Staff.automaticMelismata= ##t + c4 () c r c + } + \context Lyrics \lyrics { foo __ bar } + \context Staff=foolMelismata \notes{ + c4 ( c c ) c + } + \context Staff=foolMelismata \notes{ + c1 + } + > +} \ No newline at end of file diff --git a/input/bugs/triplet.ly b/input/bugs/triplet.ly new file mode 100644 index 0000000000..9992897582 --- /dev/null +++ b/input/bugs/triplet.ly @@ -0,0 +1,10 @@ +\header { +texidoc="manual beam override is ignored in first triplet" +} + +\score { + \context Voice \notes\relative c'' { + \times 2/3 { < [ a8 c > < a c > < a c ] > } + \times 2/3 < { [ a8 a a ] } { c c c ] } > + } +} diff --git a/lily/parser.yy b/lily/parser.yy index 043a658fcf..eacdc63aa8 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -8,6 +8,13 @@ (c) 1997--2001 Han-Wen Nienhuys Jan Nieuwenhuizen */ + +/* + Two shift/reduce problems: + - + - + */ + #include #include @@ -1593,10 +1600,10 @@ multiplied_duration: steno_duration { $$ = $1; } - | steno_duration '*' bare_unsigned { + | multiplied_duration '*' bare_unsigned { $$ = unsmob_duration ($$)->compressed ( $3) .smobbed_copy (); } - | steno_duration '*' FRACTION { + | multiplied_duration '*' FRACTION { Moment m (gh_scm2int (gh_car ($3)), gh_scm2int (gh_cdr ($3))); $$ = unsmob_duration ($$)->compressed (m).smobbed_copy (); diff --git a/make/redhat.spec.in b/make/redhat.spec.in index f61dcdb229..5a7a7163e3 100644 --- a/make/redhat.spec.in +++ b/make/redhat.spec.in @@ -12,6 +12,8 @@ URL: http://www.cs.uu.nl/~hanwen/lilypond # rpm: 4.0: broken for -ta builds: rpm doesn't look in tarball for xpm # Icon: @package@-icon.xpm BuildRoot: /tmp/lilypond-install +# add lots of Buildreq: flex, bison, tetex, tetex-devel, tetex-latex, texinfo +# better prereqs: tetex-latex, python, (mpost?) etc. Prereq: tetex # use keywords: music notation software diff --git a/make/suse.spec.in b/make/suse.spec.in index fd57a54bc4..fbd7e425ba 100644 --- a/make/suse.spec.in +++ b/make/suse.spec.in @@ -25,6 +25,8 @@ URL: http://www.lilypond.org/ # rpm: 4.0: broken for -ta builds: rpm doesn't look in tarball for xpm # Icon: lilypond-icon.xpm BuildRoot: /tmp/lilypond-install +# add lots of Buildreq: tetex-kpath, te_mpost, bison +# better prereqs: tetex-latex, python, (mpost?) etc. Prereq: tetex python # use keywords: music notation software diff --git a/mutopia/F.Schubert/standchen.ly b/mutopia/F.Schubert/standchen.ly index f20941e907..54a19767ca 100644 --- a/mutopia/F.Schubert/standchen.ly +++ b/mutopia/F.Schubert/standchen.ly @@ -13,7 +13,7 @@ instrument = "Piano" poet = "Text by Ludwig Rellstab (1799-1860)" enteredby = "JCN" copyright = "public domain" - instrument = \instrument + % instrument = \instrument % mutopia headers. mutopiatitle = "Standchen" @@ -30,15 +30,15 @@ instrument = "Piano" copyright = "Public Domain" maintainer = "Jan Nieuwenhuizen" maintainerEmail = "janneke@gnu.org" - lastupdated = "2001/Mar/26" - mutopiapublicdomain = "\\parbox{\hsize}{\\thefooter\\quad\\small + lastupdated = "2001/Apr/26" + mutopiapublicdomain = "\\parbox{\\hsize}{\\thefooter\\quad\\small \\\\This music is part of the Mutopia project, \\texttt{http://www.mutopiaproject.org/}\\\\It has been typeset and placed in the public domain by " + \maintainer + ".\\\\Unrestricted modification and redistribution is permitted and encouraged---copy this music and share it.}" tagline = \mutopiapublicdomain - footer = "Mutopia-2001/03/26-xx" + footer = "Mutopia-2001/04/26-xx" } \version "1.3.146" @@ -64,16 +64,14 @@ vocalVerse = \notes\relative c''{ R2. | g8. b16 es4. d8 | c8. g16 es4. c8 | - % CHECK - % \grace { as'16 bes } \times 2/3 { [ )as8( )g] as } c4. as8 | - \grace { as'16( bes } \times 2/3 { [ )as8( )g] as } c4. as8 | + \grace { [ as'32( bes ] } \times 2/3 { [ )as8( )g] as } c4. as8 | g2. | - \grace { f16( g } \times 2/3 { [ )f8( )e] f } as4. f8 | + \grace { [ f32( g ] } \times 2/3 { [ )f8( )e] f } as4. f8 | es!2. | g8. b16 es4. d8 | c8. g16 e4. c8 | - \grace { a'16( b } \times 2/3 { [ )a!8( ) gis] a } c4. a8 | + \grace { [ a'32( b ] } \times 2/3 { [ )a!8( ) gis] a } c4. a8 | g!2. | \times 2/3 { [ d'8\f( )cis] d } f4. b,8 | c!2. | @@ -89,10 +87,11 @@ vocalThrough = \notes\relative c{ a8. b16 c4-> a8 r | R2. | R2. | - \grace { a16( b } \times 2/3 { [ )a!8( ) gis] a } c4. a8 | + \grace { [ a32( b ] } \times 2/3 { [ )a!8( ) gis] a } c4. a8 | g!2. | \times 2/3 { [ d'8\f( )cis] d } f4. b,8 | c!2. ~ | + % bug: slur on other staff fools lily into extending melisma c4 r c | as2. | g | @@ -100,43 +99,43 @@ vocalThrough = \notes\relative c{ } lyricVerseOne = \lyrics{ - Lei- se fleh- en mei- ne Lie- der - Durch die Nacht zu dir - In den stil- len Hain her- nie- der - Lieb- chen, komm zu mir! + Lei -- se fle -- hen mei -- ne Lie -- der + durch die Nacht zu dir; + in den stil -- len Hain her nie -- der, + Lieb -- chen, komm zu mir! - Fl\"us- ternd schlan- ke Wip- fel rau- schen - In des Mon- des Licht, - In des Mon- des Licht + Fl\"us -- ternd schlan -- ke Wip -- fel rau -- schen + in des Mon -- des Licht, + in des Mon -- des Licht; - Des Ver- r\"a- ters feind- lich Lau- schen - F\"urch- te, Hol- de, nicht, - F\"urch- te, Hol- de, nicht. + des Ver -- r\"a -- ters feind -- lich Lau -- schen + f\"urch -- te, Hol -- de, nicht, + f\"urch -- te, Hol -- de, nicht. } lyricVerseTwo = \lyrics{ - H\"orst die Nach- ti- gal- len schla- gen? - Ach! sie fleh- en dich, - Mit der T\"o- ne s\"u- "\ss en" Kla- gen - Fleh- en sie f\"ur mich. + H\"orst die Nach -- ti -- gal -- len schla -- gen? + ach! sie fle -- hen dich, + mit der T\"o -- ne s\"u -- "\ss en" Kla -- gen + fle -- hen sie f\"ur mich. - Sie- ver- "steh'n" des Bus- ens Seh- nen - Ken- nen Lieb- es- schmerz, - Ken- nen Lieb- es- schmerz. + Sie -- ver -- "steh'n" des Bu -- sens Seh -- nen, + ken -- nen Lieb -- es -- schmerz, + ken -- nen Lieb -- es -- schmerz, - R\"uh- ren mit den Sil- ber- t\"o- nen - Jed- es wei- che Herz, - Jed- es wei- che Herz. + r\"uh -- ren mit den Sil -- ber -- t\"o -- nen + jed -- es wei -- che Herz, + jed -- es wei -- che Herz. } lyricThrough = \lyrics{ - La\ss auch dir die Brust be- we- gen - Lieb- chen, h\"o- re mich! - Be- bend harr' ich dir ent- ge- gen! + La\ss auch dir die Brust be -- we -- gen + Lieb -- chen, h\"o -- re mich! + be -- bend harr' ich dir ent -- ge -- gen! - Komm, be- gl\"uk- ke mich! - Komm, be- gl\"uk- ke mich, __ - Be- gl\"uk- ke mich! + komm, be -- gl\"uk -- ke mich! + komm, be -- gl\"uk -- ke mich, __ + be -- gl\"uk -- ke mich! } trebleIntro = \notes\relative c{ @@ -144,7 +143,6 @@ trebleIntro = \notes\relative c{ r8 | r8 | r8 | - \break } trebleVerseOne = \notes\relative c{ @@ -154,15 +152,21 @@ trebleVerseOne = \notes\relative c{ r8 | r8 | <)f8 d> - \times 2/3 { < [ f( d> <)d b] > } | + % manual beam override bug + %\times 2/3 { < [f( d> <)d b] > } | + \times 2/3 < { [ f( es )d ] } { d c b } > | %10 | r8 | r8 | - r8 | - r8 - <{ es'( ) d4.() f8}{ c' | bes4. as8 } > - \times 2/3 { < [f( as> <)d f] > } | + r8 | + % manual beam override bug + % r8 < [ es g bes> + r8 < { [ es g es g ] } { g bes g bes } { bes es bes es } > + <{ es'( ) d4.() f8}{ c' | bes4. as8 } > + % manual beam override bug + % \times 2/3 { < [f( as> <)d f] > } | + \times 2/3 < { [ f( es )d ] } { as g f } > | %16 | r8 | @@ -170,30 +174,31 @@ trebleVerseOne = \notes\relative c{ r8\pp | %20 r8 | - \grace { as'16( bes } \times 2/3 { [ )as8( g as] } c4.-> ) as8 | + \property Voice.Slur \override #'attachment = #'(stem . stem) + \grace { [ as'32( bes ] } \times 2/3 { [ )as8( g as] } c4.-> ) as8 | + \property Voice.Slur \revert #'attachment g2. | r8 | r8 | r8 | r8 | - \times 2/3 < - { [ f'8\f( e f] } - { f' e f } > + \times 2/3 < { [ f'8\f( e f] } { f' e f } > < {a4.- > )f8} { a'4. f8 } > | } trebleEentje = \notes \relative c'{ \stemBoth - | - ( c> <)f16 )as> | + r4 | + ( c> | + % urg: slurs with staccati are ugly | | | - | - | + | + | | %60 - | + r4 | } trebleThrough = \notes \relative c'{ @@ -206,12 +211,15 @@ trebleThrough = \notes \relative c'{ [ d,-> > c16] | %65 - < { d,2.\f a'2} { e2. ~ e2 } { b'2. c,2 }> r4 | + < { d,2.(\f )a'2} { e2. ~ e2 } { b'2.( )c,2 }> r4 | \context Staff < \context Voice=one { \voiceOne - a8. b16 c4-> () a8 r | - a8. b16 c4-> () a8 r | + %urg + %a8. b16 c4-> () a8 r | + a8. b16 c4^> () a8 r | + %a8. b16 c4-> () a8 r | + a8. b16 c4^> () a8 r | } \context Voice=two { \voiceTwo @@ -224,17 +232,16 @@ trebleThrough = \notes \relative c'{ r8 | %70 r8 | - \times 2/3 < { [ f'8\f( e f] } - { f' e f }> + \times 2/3 < { [ f'8\f( e f] } { f' e f } > < { a4.-> )f8 } { a'4. f8 } > | - r4 | - r4 | - \property Voice . TextItem \override #'font-style = #'italic - r4 | - \property Voice . TextItem \revert #'font-style + | + | + \property Voice . TextScript \override #'font-shape = #'italic + | + \property Voice . TextScript \revert #'font-shape %75 - r4 | + | | % four copied from begin eentje @@ -243,9 +250,9 @@ trebleThrough = \notes \relative c'{ | %80 - \property Voice . TextItem \override #'font-style = #'italic + \property Voice . TextScript \override #'font-shape = #'italic | - \property Voice . TextItem \revert #'font-style + \property Voice . TextScript \revert #'font-shape | | @@ -311,7 +318,7 @@ bassThrough = \notes\relative c{ [ b-> d->> ] | % copied [ b-> d->> ] | - [ b-> d->> ] | + [ b-> d->> ] | %65 [ e> ] | [ ] | @@ -331,7 +338,7 @@ bassThrough = \notes\relative c{ c,8 [ ] | c,8 [ ] | c,8 [ ] | - [ ] | + g,8 [ ] | %80 c,8 [ ] | c,8 [ ] | @@ -341,13 +348,21 @@ bassThrough = \notes\relative c{ global = \notes{ \time 3/4 \key es \major - \skip 4 * 12 + \skip 1 * 3/4 * 4 \break - \skip 4 * 234 + \skip 1 * 3/4 * 25 + \break + \skip 1 * 3/4 * 6 + \break + \skip 1 * 3/4 * 41 + \break + \skip 1 * 3/4 * 6 \bar "|." } allLyrics = \lyrics { + % maybe should be bigger by default, in grob-description.scm ? + \property Lyrics . LyricText \override #'font-relative-size = #1 \lyricVerseOne \lyricVerseTwo \lyricThrough @@ -357,22 +372,24 @@ lyricStaff = \context Lyrics { \allLyrics } -vocals = \context Voice { +vocals = \context Voice \notes { \clef treble % certainly no auto-beaming for vocals \property Voice.noAutoBeaming = ##t \property Staff.automaticMelismata= ##t \dynamicUp - \skip 4 * 12 + % duh 1 != 3/4 + R1 * 3/4 * 4 \vocalVerse - \skip 4 * 24 + R1 * 3/4 * 8 \vocalVerse \vocalThrough + R1 * 3/4 * 6 } vocalStaff = \context Staff = vocal< - \property Staff.instrument = "synth voice" + \property Staff.midiInstrument = "synth voice" \global \vocals > @@ -388,6 +405,7 @@ treble = { } trebleStaff = \context Staff = treble< + \property Staff.midiInstrument = "acoustic grand" \global \treble > @@ -401,6 +419,7 @@ bass = { } bassStaff = \context Staff = bass< + \property Staff.midiInstrument = "acoustic grand" \global \bass > @@ -431,7 +450,17 @@ grandStaff = \context PianoStaff < \lyricStaff \grandStaff > - \paper { } + \paper { + % arg, if it weren't for the mutopia margins, this would + % fit on three a4 pages, like the original + % Mandatory Mutopia settings: + textheight = 270.0\mm + linewidth = 180.0\mm + + \translator { + \HaraKiriStaffContext + } + } \midi{ \tempo 4 = 54 } diff --git a/ps/lilyponddefs.ps b/ps/lilyponddefs.ps index 899b0f0061..49c77c451d 100644 --- a/ps/lilyponddefs.ps +++ b/ps/lilyponddefs.ps @@ -73,7 +73,10 @@ { dup base-line-skip gt { /line-height exch def - } if + } + { + pop /line-height base-line-skip def + } ifelse line-y top-margin sub base-line-skip lt { showpage /line-y vsize top-margin sub def diff --git a/scripts/ly2dvi.py b/scripts/ly2dvi.py index 68af7f2532..bc5284e2c9 100644 --- a/scripts/ly2dvi.py +++ b/scripts/ly2dvi.py @@ -535,11 +535,16 @@ lily output file in TFILES after that, and return the Latex file constructed. ' first = 0 s = s + r''' -% I do not see why we want to clobber the footer here -\vfill\hfill\parbox{\textwidth}{\mbox{}\makelilypondtagline} -%\makeatletter -%\renewcommand{\@oddfoot}{\parbox{\textwidth}{\mbox{}\makelilypondtagline}}% -%\makeatother +%% I do not see why we want to clobber the footer here +%% \vfill\hfill\parbox{\textwidth}{\mbox{}\makelilypondtagline} +%% Well, maybe you don't submit music to mutopia? +%% I would not object to this kind of change, but I don't know how +%% to get the last mutopia tagline right (ie: no footer on last page) +%% Please check that mutopia footers and endfooter are OK before changing +%% this again. -- jcn +\makeatletter +\renewcommand{\@oddfoot}{\parbox{\textwidth}{\makelilypondtagline}}% +\makeatother ''' s = s + '\\end{document}' -- 2.39.2