]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.151
authorfred <fred>
Wed, 27 Mar 2002 01:18:02 +0000 (01:18 +0000)
committerfred <fred>
Wed, 27 Mar 2002 01:18:02 +0000 (01:18 +0000)
14 files changed:
Documentation/topdocs/INSTALL.texi
Documentation/topdocs/index.tely
Documentation/windows/lily-wins.texi
input/bugs/accents.ly [new file with mode: 0644]
input/bugs/nest-core.ly [new file with mode: 0644]
input/bugs/rest-melisma.ly [new file with mode: 0644]
input/bugs/triplet.ly [new file with mode: 0644]
lily/parser.yy
make/redhat.spec.in [new file with mode: 0644]
make/suse.spec.in [new file with mode: 0644]
mutopia/F.Schubert/standchen.ly
ps/lilyponddefs.ps
scripts/lilypond-book.py
scripts/ly2dvi.py

index 80cb4abb8aacb39873793d5d82d2c35e5ae8e38b..9ef6f3c315448a9998c89df7e63bf69c282492e2 100644 (file)
@@ -5,41 +5,56 @@
 @node Top, , , (dir)
 @top
 
+@contents
+
 @chapter INSTALL - compiling and installing GNU LilyPond
 
-@section Downloading source code
+
+This document describes how to build LilyPond on Unix platforms.  It is
+also known to run and compile on Windows NT/95/98 as well.  More
+information on this topic can be found at the
+@uref{ftp://ftp.lilypond.org/pub/LilyPond/gnu-windows/, LilyPond on Windows
+page}.
+
 
 @html
 <a name="download-source">
 @end html
 
+@section Downloading
+
+Even numbered versions are `stable'. The webpages for the stable version
+(1.2) reside @uref{http://www.gnu.org/software/lilypond, on the GNU
+servers}. Big enhancements go into the latest odd numbered version
+(1.3), whose webpages are on @uref{http://www.lilypond.org/,the lilypond
+site}.
+
+@subsection  source code
+
+
 If you want to compile LilyPond from source, download here:
 @itemize @bullet
-@item Download stable releases at
-@uref{ftp://ftp.gnu.org/gnu/lilypond/,GNU}
 @item Download development releases from
-@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/, by FTP} and
-@uref{http://ftp.cs.uu.nl/pub/GNU/LilyPond/development/, by HTTP}.
-@item @uref{ftp://sca.uwaterloo.ca/pub/, ftp (Canadian mirror)} 
-@item at @code{lilypond.org} by
-@uref{ftp://ftp.lilypond.org/pub/LilyPond/, FTP} and
-@uref{http://www.lilypond.org/ftp/, HTTP}.
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/} by FTP and
+@uref{http://ftp.cs.uu.nl/pub/GNU/LilyPond/development/}, by HTTP.
+@item @uref{ftp://sca.uwaterloo.ca/pub/} by FTP (Canadian mirror)
+@item at @code{lilypond.org} 
+@uref{ftp://ftp.lilypond.org/pub/LilyPond/} by FTP and
+@uref{http://www.lilypond.org/ftp/} by HTTP.
 @end itemize
 
-Installing and compiling requires many additional packages, which are
-listed in the @uref{Documentation/topdocs/out-www/INSTALL.html,
-installation instructions}.
+@html
+<a name="download-binaries">
+@end html
 
 
-@section Downloading binaries
 
-@html
-<a name="download-binary">
-@end html
+@subsection Binaries
+
 Binaries are available, but are not updated for every version released.
 @itemize @bullet
-@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/, RedHat i386}
-@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/linuxppc, LinuxPPC}
+@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/RedHat/RPMS/, RedHat i386}
+@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc, LinuxPPC}
 @item
 @uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond,
 Debian GNU/Linux Stable} 
@@ -47,13 +62,13 @@ Debian GNU/Linux Stable}
 @uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond1.3,
 Debian GNU/Linux Unstable} 
 @item @uref{http://home.austin.rr.com/jbr/jeff/lilypond/, Windows Stable}
-@item @uref{ftp://ftp.lilypond.org/pub/lilypond/gnu-windows, Windows
-Testing}
-@end itemize
-
+@c @item @uref{ftp://ftp.lilypond.org/pub/lilypond/gnu-windows, Windows
+@c Testing} 
+@uref{http://www.lilypond.org/gnu-windows, Windows Testing}
 
+@end itemize
 
-@section Upgrading
+@subsection Upgrading
 
 There are two  options for upgrading sources.
 
@@ -77,13 +92,9 @@ on the FTP site.
 @end example
 @end itemize
 
-@section Build requirements
+@section Requirements
 
-This document describes how to build LilyPond on Unix platforms.  It is
-also known to run and compile on Windows NT/95/98 as well.  More
-information on this topic can be found at the
-@uref{ftp://ftp.lilypond.org/pub/LilyPond/gnu-windows/, LilyPond on Windows
-page}.
+@subsection Compilation
 
 You need the following packages to compile Lilypond.
 
@@ -151,7 +162,7 @@ configure something like:
 
 @end itemize
 
-@section Running requirements
+@subsection Running requirements
 
 GNU LilyPond does use a lot of resources. For operation you need the
 following software
@@ -173,7 +184,7 @@ Csh and bourne sh scripts are left in
 LilyPond is a big and slow program.  A fast CPU and plenty of RAM is
 recommended for comfortable use.
 
-@section Website requirements
+@subsection Website requirements
 
 The documentation comes in the form of a website. You can view this
 website on the internet, but you can also build it locally. This process
@@ -210,7 +221,7 @@ see our hypertextified bibliography.
 
 @end itemize
 
-@section Configuring and compiling
+@section Building  LilyPond
 
 to install GNU LilyPond, type:
 @example 
@@ -242,7 +253,7 @@ hand.
 
 
 
-@section Configuring for multiple platforms
+@subsection Configuring for multiple platforms
 
 If you want to build multiple versions of LilyPond with different
 configuration settings, you can use the @code{--enable-config=CONF}
@@ -270,8 +281,6 @@ and for the profiling version, I specify a different configuration.
 
 
 
-
-
 @section Emacs mode
 
 An emacs mode for LilyPond is included with the source archive as
@@ -279,7 +288,7 @@ An emacs mode for LilyPond is included with the source archive as
 an RPM, it is in @file{/usr/share/doc/lilypond-X/}.  You have to install
 it yourself.
 
-Add this to your ~/.emacs or ~/.emacs.el:
+Add this to your @file{~/.emacs} or @file{~/.emacs.el}:
 @example 
     (load-library "lilypond-mode.el")
     (setq auto-mode-alist
@@ -290,14 +299,15 @@ Add this to your ~/.emacs or ~/.emacs.el:
 If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode is
 automatically loaded, so you need not modify your @code{~/.emacs} file.
 
+@section Compiling for distributions 
 
-@section Red Hat Linux
+@subsection Red Hat Linux
 
 Red Hat 7.0 i386 RPMS are available from
 @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/}.
 
 You can also compile them yourself.  A spec file is in
-@file{make/out/lilypond.spec}. This file is distributed along with the
+@file{make/out/redhat.spec}. This file is distributed along with the
 sources.  You can make the rpm by issuing
 @example 
 
@@ -307,24 +317,28 @@ 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.
 
-@section SuSE
+@subsection SuSE
 
-[TODO: document this]
-
-Install @code{tetex}, @code{te_mpost}, @code{te_kpath}.
+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_kpath
+te_mpost libpng python gpp libgpp gettext autoconf netpbm libnetpb
+gs_serv gs_lib gs_fonts guile
 
-@section Mandrake
+@subsection Mandrake
 
 [TODO]
 
-@section Debian GNU/Linux
+@subsection Debian GNU/Linux
 
 A Debian package is also available.  You may install it easily by using
 apt-get as root:
@@ -418,7 +432,7 @@ mailing your problems.  If you find bugs, please send bug reports to
 
 Bugs that are not fault of LilyPond are documented here.
 
-@unnumbered NetBSD
+@unnumberedsubsec NetBSD
 
 @itemize @bullet
 @item The flex precompiled in NetBSD-1.4.2 is broken.
@@ -434,21 +448,20 @@ CFLAGS='-I /usr/pkg/include' LDFLAGS='-L/usr/pkg/lib' ./configure
 
 @end itemize
 
-@unnumbered Solaris:
+@unnumberedsubsec  Solaris:
 
 @itemize @bullet
 @item Sparc64/Solaris 2.6, GNU make-3.77
 
 GNU make-3.77 is buggy on this platform, upgrade to 3.78.1 or newer.
 
-
 @item Sparc64/Solaris 2.6, ld
 
 Not yet resolved.
 @end itemize
 
 
-@unnumbered AIX
+@unnumberedsubsec   AIX
 
 @itemize @bullet
 @item AIX 4.3 ld
index 064f4a742a9ca1e88be5c81e7759c948abab9b57..5326e41bd6e46a97a4aaa5e12fb7962f3355d8a0 100644 (file)
@@ -11,102 +11,40 @@ i\input texinfo @c -*-texinfo-*-
 @end html
 
 
-@unnumberedsec What is LilyPond?
+@unnumberedsec What is LilyPond? What can it do for you?
 
-@c also use keywords: music notation software
-LilyPond is a music typesetter.  It produces beautiful sheet music
-using a high level description file as input. It excels at typesetting
-classical music, but you can also print pop-songs.  With LilyPond we
-hope to make music publication software available to anyone on the
-internet.
+LilyPond prints music notation.  It produces beautiful sheet music from
+a description file. It excels at typesetting classical music, but you
+can also print pop-songs.
 
-@unnumberedsec Why should I use it?
-
-The input to LilyPond is plain text. So, you can use your favorite text
+LilyPond input is @b{plain text}. So, you can use your favorite text
 editor to enter it, you can put it in mail or embed it in an article like
 this:
-
-
-@lilypond[fragment,verbatim]
-\relative c'' { \key c \minor r8 c16 b c8 g as c16 b c8 d | g,4 }
+@lilypond[fragment,verbatim, relative 1]
+ \key c \minor r8 c16 b c8 g as c16 b c8 d | g,4 
 @end lilypond 
+Or you can use it to print music from other programs, using one of the
+numerous input filters.
 
-The output looks very good: the font and the layout algorithms were
-inspired by engraved music, so you can expect that same clear and
+LilyPond output looks @b{beautiful}. The font and the layout algorithms
+were inspired by engraved music, so you can expect that same clear and
 elegant look from your LilyPond output.  And if you don't like the
 looks, you can tweak almost everything.
 
-The program also has limited MIDI functionality: you can write MIDI
-files with lilypond. You can also import files in PMX, MUP, MIDI, ABC,
-Finale and Musedata format.
-
-LilyPond is free software. It is licensed under GNU General Public
-License, so you can use, modify and redistribute the program with
-almost no restrictions.  LilyPond is part of the 
-@uref{http://www.gnu.org/,GNU Project}.
-
-The version numbers are in Linux-kernel style: even numbered versions
-are `stable'. The webpages for the stable version (1.2) reside
-@uref{http://www.gnu.org/software/lilypond, on the GNU servers}. Big
-enhancements go into the latest odd numbered version (1.3), whose
-webpages are on @uref{http://www.lilypond.org/,the lilypond site}.
-Information on the latest and greatest features can be found in the
-@uref{Documentation/out-www/CHANGES.html, Change Log}.
-
-If want more information, you can browse the
-@uref{Documentation/user/out-www/lilypond.html, manual} or other
-@uref{Documentation/out-www/index.html, documentation}.
-
-@html
-<a name="music">
-@end html
-@unnumberedsec Sheet music
-
-
-If you are interested in sheet music typeset by LilyPond, have a look at
-the examples included. We have @uref{short-examples.html,short
-examples} and @uref{long-examples.html,longer examples}. The
-examples include sound bites  in MIDI, pictures in PNG, printable scores
-in PostScript, and LilyPond input. Others use LilyPond too, and have put
-scores on the web. Head over to @uref{http://appel.lilypond.org/wiki?DownloadLilyPondScores}
-
-
-@html
-<a name="mailing-lists">
-@end html
-@unnumberedsec Mailing lists
-
-If you have questions, do write to the mailing lists.  But don't forget
-to read the @uref{Documentation/topdocs/out-www/FAQ.html,Very Frequently
-Asked Questions} and @uref{http://appel.dyndns.org/wiki?LilyPondFaqs,
-Frequently Asked Questions} first.
-
-
-@itemize @bullet
-@item @uref{http://mail.gnu.org/mailman/listinfo/info-gnu-music,info-gnu-music@@gnu.org}
-is a low-volume list for information on the GNU Music project.
-    This list is moderated; ask 
-    @email{drl@@gnu.org, David R. Linn} or
-    @email{hanwen@@cs.uu.nl, Han-Wen} to send announcements for this list.
-@item @uref{http://mail.gnu.org/mailman/listinfo/help-gnu-music,help-gnu-music@@gnu.org}
-    For help with using LilyPond.
-@item @uref{http://mail.gnu.org/mailman/listinfo/bug-gnu-music,bug-gnu-music@@gnu.org}
-If you have bugreports, you should send them to this list.  
-
-
+LilyPond is @b{free software}. It is part of the
+@uref{http://www.gnu.org/,GNU Project}. It is licensed under GNU General
+Public License, so you can use, modify and redistribute the program with
+almost no restrictions.  LilyPond is part of the
 
-        Please include in your bugreport the version of LilyPond that
-you experience the problem with, a description of your system and sample
-input to reproduce the problem. Do not send output files over the list,
-they tend to be very big and don't help with describing the problem.
+@unnumberedsec Want to know more?
 
+If you want to know more, visit the
+@uref{Documentation/out-www/index.html, documentation page}. If you want
+to see some sheet music, then have a look at the examples: we have
+@uref{short-examples.html,short examples} and
+@uref{long-examples.html,longer examples}.  For even more sheet music,
+head over to @uref{http://www.mutopiaproject.org, the mutopia project}.
 
-@item @uref{http://mail.gnu.org/mailman/listinfo/gnu-music-discuss,gnu-music-discuss@@gnu.org}
-    For discussions concerning LilyPond.
-@end itemize
 
-These pages were entirely created from a @strong{development snapshot}
-of the LilyPond package.  The version of this webpage is printed at the
-bottom.
 
 @bye
index 6d53dd4989794c07e170e2bae547b2072525497b..8dfbd89387b25badbc745ec48cb428640e7feb1d 100644 (file)
@@ -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://ftp.lilypond.org/pub/LilyPond/gnu-windows/latest/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.
@@ -47,9 +47,9 @@ mutilating } @uref{http://sources.redhat.com/cygwin,Cygwin}'s
 ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/mirrors/cygnus/snapshots/cygwin-src-20010410.tar.bz2,
 Windows installer}.
 No
-@uref{http://appel.lilypond.org/lilypond/gnu-windows/tar/lilypond/md5.sum,
+@uref{http://www.lilypond.org/gnu-windows/tar/lilypond/md5.sum,
 difficult checksums} or signatures.  Enjoy the the thrills of running
-@uref{ftp://ftp.lilypond.org/pub/LilyPond/gnu-windows/latest/setup.exe,
+@uref{http://www.lilypond.org/gnu-windows/latest/setup.exe,
 untrusted binaries} with adminstrator rights, on your painfully
 firewalled intranet.
 
diff --git a/input/bugs/accents.ly b/input/bugs/accents.ly
new file mode 100644 (file)
index 0000000..1712266
--- /dev/null
@@ -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 (file)
index 0000000..c8ebfe3
--- /dev/null
@@ -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 (file)
index 0000000..3d2aafb
--- /dev/null
@@ -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 (file)
index 0000000..9992897
--- /dev/null
@@ -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 ] } >
+  }
+}
index 043a658fcff27c91f8719b7514afa3a2c80a6e8d..eacdc63aa8b7ca18f18f8f6d32188d5cc7c149f7 100644 (file)
@@ -8,6 +8,13 @@
   (c)  1997--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
            Jan Nieuwenhuizen <janneke@gnu.org>
 */
+
+/*
+  Two shift/reduce problems:
+    -
+    -
+ */
+
 #include <ctype.h>
 #include <iostream.h>
 
@@ -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
new file mode 100644 (file)
index 0000000..e19c393
--- /dev/null
@@ -0,0 +1,136 @@
+%define info yes
+
+Name: lilypond
+Version: @TOPLEVEL_VERSION@
+Release: 1
+License: GPL
+Group: Applications/Publishing
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-@TOPLEVEL_VERSION@.tar.gz
+Summary: Create and print music notation 
+URL: http://www.cs.uu.nl/~hanwen/lilypond
+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
+
+
+%description
+LilyPond lets you create music notation.  It produces
+beautiful sheet music from  a high-level description file.
+
+%package documentation
+Summary: Prebuilt website containing all LilyPond documentation.
+Group: Applications/Publishing
+# BuildArchitectures: noarch
+
+%description documentation
+
+The documentation of LilyPond, both in HTML and PostScript.
+
+%prep
+%setup
+
+%build
+
+# DO NOT use % { configure } , it hardcodes all paths, runs libtool,
+# so we can't do make prefix=/tmp/ install.
+
+# In fact, do not take out the spaces between % and { in the above comment,
+# because RPM will gladly do a substitution anyway.
+
+./configure --disable-checking --disable-debugging --enable-printing --prefix=%{_prefix} --disable-optimise --enable-shared
+
+make all
+
+# ok, now make sure that lilypond package will succeed,
+# even if documentation fails to build
+make -C Documentation  || true
+make web || true
+
+%install
+
+
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc
+
+strip lily/out/lilypond midi2ly/out/midi2ly
+make prefix="$RPM_BUILD_ROOT%{_prefix}" install
+
+%if info=="yes"
+gzip -9fn $RPM_BUILD_ROOT%{_prefix}/info/* || true
+%endif
+
+mkdir -p $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/site-start.d
+install -m 644 lilypond-mode.el lilypond-font-lock.el $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/
+install -m 644 lilypond-init.el $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/site-start.d
+
+gzip -9fn $RPM_BUILD_ROOT%{_prefix}/man/man1/* || true
+
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d
+cp buildscripts/out/lilypond-profile $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d/lilypond.sh
+cp buildscripts/out/lilypond-login $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d/lilypond.csh
+
+
+# again, make sure that main package installs even if doco fails
+mkdir -p web/out
+tar -C web -xzf out/web.tar.gz || true
+
+
+%post
+
+touch /tmp/.lilypond-install
+rm `find /var/lib/texmf -name 'feta*pk -print' -or -name 'feta*tfm -print'` /tmp/.lilypond-install
+
+%if info=="yes"
+/sbin/install-info %{_prefix}/info/lilypond.info.gz %{_prefix}/info/dir || true
+%endif
+
+%preun
+
+%if info=="yes"
+if [ $1 = 0 ]; then
+    /sbin/install-info --delete %{_prefix}/info/lilypond.info.gz %{_prefix}/info/dir || true
+fi
+%endif
+
+
+%files
+
+%{_datadir}/emacs/site-lisp/*
+%{_datadir}/emacs/site-lisp/site-start.d/*
+
+%{_prefix}/bin/abc2ly
+%{_prefix}/bin/as2text
+%{_prefix}/bin/convert-ly
+%{_prefix}/bin/etf2ly
+%{_prefix}/bin/lilypond
+%{_prefix}/bin/ly2dvi
+%{_prefix}/bin/midi2ly
+%{_prefix}/bin/lilypond-book
+%{_prefix}/bin/mup2ly
+%{_prefix}/bin/musedata2ly
+%{_prefix}/bin/pmx2ly
+
+%if info=="yes"
+%{_prefix}/info/lilypond.info.gz
+%{_prefix}/info/lilypond-internals.info.gz
+%endif
+
+%{_prefix}/man/man1/abc2ly.1.gz
+%{_prefix}/man/man1/as2text.1.gz
+%{_prefix}/man/man1/convert-ly.1.gz
+%{_prefix}/man/man1/etf2ly.1.gz
+%{_prefix}/man/man1/lilypond.1.gz
+%{_prefix}/man/man1/ly2dvi.1.gz
+%{_prefix}/man/man1/midi2ly.1.gz
+%{_prefix}/man/man1/lilypond-book.1.gz
+%{_prefix}/man/man1/musedata2ly.1.gz
+%{_prefix}/man/man1/mup2ly.1.gz
+%{_prefix}/man/man1/pmx2ly.1.gz
+
+%{_prefix}/share/lilypond/
+%{_prefix}/share/locale/*/LC_MESSAGES/lilypond.mo
+%{_prefix}/../etc/profile.d/lilypond.*
+
+%files documentation
+%doc web/
diff --git a/make/suse.spec.in b/make/suse.spec.in
new file mode 100644 (file)
index 0000000..fbd7e42
--- /dev/null
@@ -0,0 +1,300 @@
+#
+# spec file for package lilypond (Version 1.3.149)
+# based on 
+#    spec file for package lilypond (Version 1.2.17)
+#    Copyright  (c)  2000  SuSE GmbH  Nuernberg, Germany.
+#
+# Please send bug reports to schlemme@mathe.tu-freiberg.de
+
+%define info yes
+
+# neededforbuild  guile tcsh tetex te_latex te_mpost libpng python gpp libgpp gettext autoconf netpbm libnetpb gs_serv gs_lib gs_fonts guile
+# usedforbuild    aaa_base aaa_dir autoconf automake base bash bindutil binutils bison bzip compress cpio cracklib devs diff ext2fs file fileutil find flex gawk gcc gdbm gettext gpm gpp gppshare groff gs_fonts gs_lib gs_serv guile gzip kbd less libc libgpp libnetpb libpng libtool libz lx_suse make mktemp modules ncurses net_tool netcfg netpbm nkita nkitb nssv1 pam patch perl pgp ps python rcs rpm sendmail sh_utils shadow shlibs strace syslogd sysvinit tcsh te_ams te_latex te_mpost tetex texinfo textutil timezone unzip util vim xdevel xf86 xshared guile
+
+
+Distribution: SuSE Linux 7.0 (i386)
+Name: lilypond
+Version: @TOPLEVEL_VERSION@
+Release: 2
+Copyright:    GPL
+Group: Applications/Publishing
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-@TOPLEVEL_VERSION@.tar.gz
+# music notation software for.. ?
+Summary: A program for printing sheet music.
+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
+%description
+LilyPond is a music typesetter.  It produces beautiful
+sheet music using a high level description file as input.  LilyPond is
+part of the GNU Project.
+
+Authors:
+--------
+    Han-Wen Nienhuys <hanwen@cs.uu.nl>
+    Jan Nieuwenhuizen <janneke@gnu.org>
+    Alexandre Oliva <oliva@dcc.unicamp.br>
+    Mats Bengtsson <matsb@s3.kth.se>
+    Eric Bullinger <eric@aut.ee.ethz.ch>
+    Jan Arne Fagertun <Jan.A.Fagertun@energy.sintef.no>
+    Anthony Fok <foka@debian.org>
+    Neil Jerram <nj104@cus.cam.ac.uk>
+    Donald Ervin Knuth
+    Werner Lemberg <wl@gnu.org>
+    David R. Linn <drl@vuse.vanderbilt.edu>
+    François Pinard <pinard@iro.umontreal.ca>
+    Jeffrey B. Reed <daboys@bga.com>
+    Shay Rojanski
+    Tom Cato Amundsen <tca@gnu.org>
+    Laura Conrad <lconrad@world.std.com>
+    James Hammons <jlhamm@pacificnet.net>
+    Bjoern Jacke <bjoern.jacke@gmx.de>
+    Michael Krause <m.krause@tu-harburg.de>
+    David R. Linn <drl@vuse.vanderbilt.edu>
+    Adrian Mariano
+    Stephen Peters <portnoy@ai.mit.edu>
+    Glen Prideaux <glenprideaux@iname.com>
+    Roy R. Rankin <Roy.Rankin@alcatel.com.au>
+    Juergen Reuter <reuterj@ira.uka.de>
+    August S.Sigov <august@infran.ru>
+    Rune Zedeler <rune@zedeler.dk>
+
+SuSE series: ap
+
+%package doc
+Summary: Prebuilt website containing all LilyPond documentation.
+Group: Applications/Publishing
+# BuildArchitectures: noarch
+
+%description doc
+
+The documentation of LilyPond, both in HTML and PostScript.
+
+%define INSTALL install -m755 -s
+%define INSTALL_DIR install -d -m755
+%define INSTALL_DATA install -m644
+%prep
+%setup
+
+%build
+
+#
+
+# DO NOT use % { configure } , it hardcodes all paths, runs libtool,
+# so we can't do make prefix=/tmp/ install.
+
+# In fact, do not take out the spaces between % and { , because RPM will gladly
+# do a substitution anyway.
+
+CFLAGS="$RPM_OPT_FLAGS" ./configure --disable-checking --disable-debugging --enable-printing --prefix=%{_prefix} --enable-optimise --enable-shared
+
+make LDFLAGS=-s "CFLAGS=$RPM_OPT_FLAGS" all
+
+# urg
+# %build doc
+# line 42: second %build
+# ok, now make sure that lilypond package will succeed,
+# even if documentation fails to build
+
+make -C Documentation  || true
+make web || true
+
+%install
+
+
+
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc
+
+## this is an ugly hack
+mkdir -p scripts/share/lilypond/tex
+cp tex/titledefs.tex scripts/share/lilypond/tex
+## end of hack
+
+
+strip lily/out/lilypond midi2ly/out/midi2ly
+make prefix="$RPM_BUILD_ROOT%{_prefix}" install
+
+%{INSTALL_DIR} $RPM_BUILD_ROOT/usr/share/texmf/fonts/source/public/lilypond
+(cd $RPM_BUILD_ROOT/usr/share/lilypond \
+    && mv mf/* $RPM_BUILD_ROOT/usr/share/texmf/fonts/source/public/lilypond \
+    && rm -fr mf \
+    && ln -s ../texmf/fonts/source/public/lilypond mf)
+%{INSTALL_DIR} $RPM_BUILD_ROOT/usr/share/texmf/fonts/afm/lilypond
+(cd $RPM_BUILD_ROOT/usr/share/lilypond \
+    && mv afm/* $RPM_BUILD_ROOT/usr/share/texmf/fonts/afm/lilypond \
+    && rm -fr afm \
+    && ln -s ../texmf/fonts/afm/lilypond afm)
+%{INSTALL_DIR} $RPM_BUILD_ROOT/usr/share/texmf/tex/lilypond
+(cd $RPM_BUILD_ROOT/usr/share/lilypond \
+    && mv tex/* $RPM_BUILD_ROOT/usr/share/texmf/tex/lilypond \
+    && rm -fr tex \
+    && ln -s ../texmf/tex/lilypond tex)
+%{INSTALL_DIR} $RPM_BUILD_ROOT/usr/share/texmf/lilypond/ps
+(cd $RPM_BUILD_ROOT/usr/share/lilypond \
+    && mv ps/* $RPM_BUILD_ROOT/usr/share/texmf/lilypond/ps \
+    && rm -fr ps \
+    && ln -s ../texmf/lilypond/ps ps)
+
+
+%if info=="yes"
+gzip -9fn $RPM_BUILD_ROOT%{_prefix}/info/* || true
+%endif
+
+
+
+gzip -9fn $RPM_BUILD_ROOT%{_prefix}/man/man1/* || true
+
+
+
+
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d
+cp buildscripts/out/lilypond-profile $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d/lilypond.sh
+cp buildscripts/out/lilypond-login $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d/lilypond.csh
+
+# urg
+#%install doc
+#line 63: second %install
+# again, make sure that main package installs even if doco fails
+mkdir -p web/out
+tar -C web -xzf out/web.tar.gz || true
+
+%ifos cygwin
+# urg, this symlink doesn't come through on cygwin
+# this is the way symlinks work over there, let's fake one
+rm -f $RPM_BUILD_ROOT%{_prefix}/share/lilypond/cmtfm
+echo '!<symlink>c:\\texmf\\fonts\\tfm\\public\\cm' > $RPM_BUILD_ROOT%{_prefix}/share/lilypond/cmtfm
+%{fix_suffixes}
+%endif
+
+%{?suse_check}
+
+
+%pre
+if [ -d usr/share/lilypond/ps ]; then
+  mv usr/share/lilypond/ps usr/share/lilypond/ps.old
+  echo "please, remove /usr/share/lilypond/ps.old manually."
+fi
+
+%post
+
+touch /tmp/.lilypond-install
+rm `find /var/lib/texmf -name 'feta*pk -print' -or -name 'feta*tfm -print'` /tmp/.lilypond-install
+%if info=="yes"
+/usr/bin/install-info %{_prefix}/info/lilypond.info.gz %{_prefix}/info/dir || true
+%endif
+mkdir -p var/adm/SuSEconfig
+touch var/adm/SuSEconfig/run-texhash
+
+
+%preun
+%if info=="yes"
+if [ $1 = 0 ]; then
+    /usr/bin/install-info --delete %{_prefix}/info/lilypond.info.gz %{_prefix}/info/dir || true
+fi
+%endif
+
+%postun
+mkdir -p var/adm/SuSEconfig
+touch var/adm/SuSEconfig/run-texhash
+
+
+
+%files
+%defattr(-, root, root)
+%doc CHANGES COPYING DEDICATION INSTALL.txt NEWS
+%doc README.txt FAQ.txt AUTHORS.txt VERSION ROADMAP
+%doc buildscripts/
+%doc scripts/
+# hairy to hook it in (possibly non-existing) emacs
+%doc lilypond-mode.el
+%doc lilypond-font-lock.el
+
+%config /etc/profile.d/*
+
+%ifnos cygwin
+%{_prefix}/bin/abc2ly
+%{_prefix}/bin/as2text
+%{_prefix}/bin/convert-ly
+%{_prefix}/bin/etf2ly
+%{_prefix}/bin/lilypond
+%{_prefix}/bin/ly2dvi
+%{_prefix}/bin/midi2ly
+%{_prefix}/bin/lilypond-book
+%{_prefix}/bin/mup2ly
+%{_prefix}/bin/musedata2ly
+%{_prefix}/bin/pmx2ly
+%else
+%{_prefix}/bin
+%endif
+
+%if info=="yes"
+%{_prefix}/info/lilypond.info.gz
+%{_prefix}/info/lilypond-internals.info.gz
+%endif
+
+%{_prefix}/man/man1/abc2ly.1.gz
+%{_prefix}/man/man1/as2text.1.gz
+%{_prefix}/man/man1/convert-ly.1.gz
+%{_prefix}/man/man1/etf2ly.1.gz
+%{_prefix}/man/man1/lilypond.1.gz
+%{_prefix}/man/man1/ly2dvi.1.gz
+%{_prefix}/man/man1/midi2ly.1.gz
+%{_prefix}/man/man1/lilypond-book.1.gz
+%{_prefix}/man/man1/musedata2ly.1.gz
+%{_prefix}/man/man1/mup2ly.1.gz
+%{_prefix}/man/man1/pmx2ly.1.gz
+
+%{_prefix}/share/lilypond/
+%{_prefix}/share/texmf/
+%{_prefix}/share/locale/*/LC_MESSAGES/lilypond.mo
+# urg?
+#%{_prefix}/../etc/profile.d/lilypond.*
+
+%files doc
+# this gets too messy...
+%doc mutopia/
+%doc input/
+%doc web/
+# verbatim include of input: list the directory without issuing a %dir 
+
+%changelog -n lilypond
+* Sun Apr 22 2001 - schlemme@mathe.tu-freiberg.de
+- update: 1.3.149
+* Mon Apr 10 2000 - bk@suse.de
+- added suse update config macro
+* Thu Mar 16 2000 - kukuk@suse.de
+- Use gs_serv, not gs_both (doesn't exist on all platforms)
+* Wed Mar 01 2000 - uli@suse.de
+- moved man pages to /usr/share
+* Tue Dec 21 1999 - ke@suse.de
+- add documentation (#271).
+* Mon Dec 13 1999 - ke@suse.de
+- update: 1.2.17.
+- compiler fix (thanks to schwab@suse.de).
+- #271.
+* Mon Oct 25 1999 - ke@suse.de
+- update: 1.2.16.
+* Mon Sep 13 1999 - bs@suse.de
+- ran old prepare_spec on spec file to switch to new prepare_spec.
+* Mon Sep 06 1999 - ro@suse.de
+- update to 1.2.6 to make it compile with new guile
+- various fixes and one hack to make this compile at all
+* Sun Aug 22 1999 - ke@suse.de
+- provide /etc/profile.d scripts.
+- make lily.ps available (thanks to Ulrich Windl).
+* Tue Aug 17 1999 - ke@suse.de
+- update: version 1.2.1.
+* Thu Nov 05 1998 - ke@suse.de
+- use the TDS and provide links from /usr/share/lilypond.
+- install examples via %doc.
+* Wed Oct 28 1998 - ke@suse.de
+- update: version 1.0.17.
+* Fri Aug 07 1998 - ke@suse.de
+- initial package: version 1.0.0
index d5c804ee8faae9f2b337a04f970fd45422fb95b4..54a19767ca832ccac9dfa0808e5f6c11546296e0 100644 (file)
@@ -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 <as-. c-.> <c-. es-.> <as-. c-.> <c-. es-.> <as-. c-.> |
        r8 <as-. c-.> <c-. d-.> <as-. c-.> <c-. d-.> <as-. c-.> |
        r8 <g-. b-.> <b-. d-.> <g-. b-.> <b-. d-.> <g-. b-.> |
-       \break
 }
 
 trebleVerseOne =  \notes\relative c{
@@ -154,15 +152,21 @@ trebleVerseOne =  \notes\relative c{
        r8 <f g b> <g b d> <f g b> <g b d> <f g b> |
        r8 <es g c> <g c es> <es g c> <g c es> <es g c> |
        <g''4.( b,> <)f8 d>
-       \times 2/3 { < [ f( d> <es c> <)d b] > } |
+       % manual beam override bug
+       %\times 2/3 { < [f( d> <es c> <)d b] > } |
+       \times 2/3 < { [ f( es )d ] } { d c b } > |
        %10
        <c2. es> |
        r8 <g, c> <c es> <g c> <c es> <g c> |
        r8 <f c'> <c' d> <f, c'> <c' d> <f, c'> |
-       r8 <f as bes> <as bes d> <f g bes> <as bes d> <f g bes> |
-       r8 <es g bes> <g bes es> <es g bes> <g bes es> 
-       <{ es'( )  d4.() f8}{ c' | bes4.  as8 } > 
-       \times 2/3 { < [f( as> <es g> <)d f] > } |
+       r8 <f as bes> <as bes d> <f g bes> <as bes d> <f as bes> |
+       % manual beam override bug
+       % r8 < [ es g bes> <g bes es> <es g bes> <g bes es ] > 
+       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> <es g> <)d f] > } |
+       \times 2/3 < { [ f( es )d ] } { as g f } > |
        %16
        <es2. g> |
        r8 <f, g> <g b> <f g> <g b> <f g> |
@@ -170,30 +174,31 @@ trebleVerseOne =  \notes\relative c{
        r8\pp <es as c> <as c es> <es as c> <as c es> <es as c> |
        %20
        r8 <es g bes> <g bes es> <es g bes> <g bes es> <es g bes> |
-       \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 <f, g> <g b> <f g> <g b> <f g> |
        r8 <e g> <g c> <e g> <g c> <e g> |
        r8 <f a c> <a c f> <f a c> <a c f> <f a c> |
        r8 <e g c> <g c e> <e g c> <g c e> <e g c> |
-       \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
-       <e2 e'> <e4 g>|
-       <f2\mf as!(> <as8.->( c> <)f16 )as> |
+       <e2 e'> r4 |
+       <f2\mf as!\(> <as8.->( c> <f16 \))as> |
+       % urg: slurs with staccati are ugly
        <e4. g> <e8-. g-.(> <e-. g-.> <e-. )g-.> |
        <f4. g> <b,8-. g'-.(> <d-. g-.> <f-. )g-.> |
        <e2 g> <e4\pp g> |
-       <f2 a(> <a8. c> <f16 )a> |
-       <e4. g> <e8-. g-.(> <e-. g-.> <e-. )g-.> |
+       <f2 a\(> <a8.( c> <f16 \))a> |
+       <e4.\( g> <e8-.( g-.> <e-. g-.> <e-. \))g-.> |
        <f4. g> <b,8-. g'-.(> <d-. g-.> <f-. )g-.> |
        %60
-       <e2. g> |
+       <e2 g> r4 |
 }
 
 trebleThrough =  \notes \relative c'{
@@ -206,12 +211,15 @@ trebleThrough =  \notes \relative c'{
 
        <g4. g'> <b8 b'> [<d'8.-> 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 <f, a c> <a c f> <f a c> <a c f> <f a c> |
        %70
        r8 <e g c> <g c e> <e g c> <g c e> <e g c> |
-       \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 } > |
-       <e2 e'> r4 |
-       <es!2 es'! > r4 |
-       \property Voice . TextItem \override #'font-style = #'italic
-       <d2_"decresc." d'> r4 |
-       \property Voice . TextItem \revert #'font-style
+       <e2. e'> |
+       <es!2. es'! > |
+       \property Voice . TextScript \override #'font-shape = #'italic
+       <d2._"decresc." d'> |
+       \property Voice . TextScript \revert #'font-shape
 
        %75
-       <b2 b'> r4 |
+       <b2. b'> |
        <c2 c'> <e4\pp g> |
 
        % four copied from begin eentje
@@ -243,9 +250,9 @@ trebleThrough =  \notes \relative c'{
        <f4. g> <b,8-. g'-.(> <d-. g-.> <f-. )g-.> |
        %80
 
-       \property Voice . TextItem \override #'font-style = #'italic
+       \property Voice . TextScript \override #'font-shape = #'italic
        <e2._"dim." g> |
-       \property Voice . TextItem \revert #'font-style
+       \property Voice . TextScript \revert #'font-shape
 
        <g,2. e' g> |
        <g2.-\fermata e' g> |
@@ -311,7 +318,7 @@ bassThrough =  \notes\relative c{
        <g,8 g'> [<g' d'> <d' f> <g, d'> <as-> b-> d->> <b d f>] |
        % copied
        <g,8 g'> [<g' d'> <d' f> <g, d'> <as-> b-> d->> <b d f>] |
-       <g,8 g'> [<g' d' e> <d' f> <g, d'> <gis-> b-> d->> <b d f>] |
+       <g,8 g'> [<g' d'> <d' f> <g, d'> <gis-> b-> d->> <b d f>] |
        %65
        <gis,8 gis'> [<d''\> e> <e b'> <d e> <e b'> <d\! e>] |
        <a,8 a'> [<c' e> <e a> <c e> <e a> <c e>] |
@@ -331,7 +338,7 @@ bassThrough =  \notes\relative c{
        c,8 [<c' e> <e g> <c e> <e g> <c e>] |
        c,8 [<c' f> <f as> <c f> <f as> <c f>] |
        c,8 [<c' e> <e g> <c e> <e g> <c e>] |
-       <g,8 g'> [<g' d'> <d' f> <g, d'> <d' f> <g, d'>] |
+       g,8 [<g' d'> <d' f> <g, d'> <d' f> <g, d'>] |
        %80
        c,8 [<c' e> <e g> <c e> <e g> <c e>] |
        c,8 [<c' g> <e c> <c g> <e c> <c g>] |
@@ -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 1 * 3/4 * 25
        \break
-       \skip 4 * 234
+       \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,19 +450,15 @@ grandStaff =  \context PianoStaff <
                        \lyricStaff 
                \grandStaff
        >
-       \paper { 
-%{             \translator {
-                       \HaraKiriStaffContext
-                       %VerticalExtent = #'(0 . 0)
-                       %MinimumVerticalExtent = #'(0 . 0)
-                       %StaffMinimumVerticalExtent = #'(0 . 0)
-               }
-               %}
+       \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 {
-                       \LyricsContext
-                       VerticalExtent = #'(1.2 . 1.2)
-                       MinimumVerticalExtent = #'(0 . 0)
-                       StaffMinimumVerticalExtent = #'(1.2 . 1.2)
+                       \HaraKiriStaffContext
                }
        }
        \midi{
index 899b0f0061a9504fb3e69b52a13296ae008fc88b..49c77c451d08bc4ff6e547f556743e8e19c5be14 100644 (file)
 {
        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
index e0a2d5d0014c68b5d940f6546657574d3574a19e..b6d3ee6a26226895c813ac526552604c97538756 100644 (file)
@@ -532,9 +532,24 @@ def compose_full_body (body, opts):
                l = -1.0;
        else:
                l = __main__.paperguru.get_linewidth()
-       
-       if 'relative' in opts:#ugh only when is_fragment
-               body = '\\relative c { %s }' % body
+
+       for o in opts:
+               m= re.search ('relative(.*)', o)
+               v = 0
+               if m:
+                       try:
+                               v = string.atoi (m.group (1))
+                       except ValueError:
+                               pass
+
+                       v = v + 1
+                       pitch = 'c'
+                       if v < 0:
+                               pitch = pitch + '\,' * v
+                       elif v > 0:
+                               pitch = pitch + '\'' * v
+
+                       body = '\\relative %s { %s }' %(pitch, body)
        
        if is_fragment:
                body = r"""\score { 
index 1b9a948292eaf52dad6ecdb18bece3c13f214b86..3a4eb4175d58383803ff87835bb37b477e449b3e 100644 (file)
@@ -280,6 +280,7 @@ def system (cmd, ignore_error = 0):
        """
        
         if ( os.name != 'posix' ):
+               cmd = re.sub (r'''\\''', r'''\\\\\\''', cmd)
                cmd = "sh -c \'%s\'" % cmd
        if verbose_p:
                progress (_ ("Invoking `%s\'") % cmd)
@@ -499,10 +500,12 @@ lily output file in TFILES after that, and return the Latex file constructed.  '
                orientation = extra['orientation'][0]
 
        # set sane geometry width (a4-width) for linewidth = -1.
-       if not extra['linewidth'] or extra['linewidth'][0] < 0:
+       maxlw = max (extra['linewidth'] + [-1])
+       if maxlw < 0:
+               # who the hell is 597 ?
                linewidth = 597
        else:
-               linewidth = extra['linewidth'][0]
+               linewidth = maxlw
        s = s + '\geometry{width=%spt%s,headheight=2mm,headsep=12pt,footskip=2mm,%s}\n' % (linewidth, textheight, orientation)
 
        if extra['latexoptions']:
@@ -534,11 +537,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}'
 
@@ -562,12 +570,9 @@ None
        f.write (s)
        f.close ()
 
-        if ( os.name == 'posix' ):
-               cmd = 'latex \\\\nonstopmode \\\\input %s' % latex_fn
-       else:
-               cmd = 'latex \\\\\\\\nonstopmode \\\\\\\\input %s' % latex_fn
+       cmd = 'latex \\\\nonstopmode \\\\input %s' % latex_fn
 
-       if not verbose_p:
+       if not verbose_p and os.name == 'posix':
                progress ( _("Running %s...") % 'LaTeX')
                cmd = cmd + ' 1> /dev/null 2> /dev/null'
 
@@ -592,7 +597,7 @@ None.
 
        cmd = 'dvips %s -o%s %s' % (opts, outbase + '.ps', outbase + '.dvi')
        
-       if not verbose_p:
+       if not verbose_p and os.name == 'posix':
                progress ( _("Running %s...") % 'dvips')
                cmd = cmd + ' 1> /dev/null 2> /dev/null'