]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.5.23 release/1.5.23
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 29 Nov 2001 17:34:40 +0000 (18:34 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 29 Nov 2001 17:34:40 +0000 (18:34 +0100)
===========

* Resurrected experimental sketch output, now with dispatch.

* Bugfix: prefix directory defaults to DIR_DATADIR if not defined.

* Rune: more reliable repeat dots (WARNING: FONT CHANGED)

1.5.22.h

44 files changed:
CHANGES
Documentation/header.html.in
Documentation/topdocs/INSTALL.texi
Documentation/user/converters.itely
Documentation/user/refman.itely
Documentation/user/tutorial.itely
Documentation/windows/installing.texi
Documentation/windows/lily-gs.sh
INSTALL.txt
VERSION
input/test/beams.ly
input/trip.ly
lily/bar.cc
lily/completion-note-heads-engraver.cc
lily/grob.cc
lily/lily-guile.cc
lily/lookup.cc
lily/main.cc
lily/my-lily-parser.cc
lily/note-heads-engraver.cc
lily/paper-outputter.cc
lily/parser.yy
lily/stanza-number-engraver.cc
lily/text-engraver.cc
lilypond-mode.el
make/out/lilypond.lsm
make/out/lilypond.mandrake.spec
make/out/lilypond.redhat.spec
make/out/lilypond.suse.spec
mf/GNUmakefile
mf/feta-puntje.mf
scm/ascii-script.scm
scm/lily.scm
scm/ps.scm
scm/pysk.scm
scm/sketch.scm
scm/tex.scm
scm/translator-property-description.scm
scripts/abc2ly.py
scripts/etf2ly.py
scripts/lilypond-book.py
scripts/ly2dvi.py
scripts/update-lily.py
stepmake/stepmake/metafont-rules.make

diff --git a/CHANGES b/CHANGES
index 8b28b189f141a9d9d18251cf5eb6f4cbd645f2e5..5c34ea703ff63de34de74f689f8c0f7b97ce5f37 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,16 +1,20 @@
-1.5.22.jcn4
+1.5.22.jcn1
 ===========
 
 ===========
 
-* Stanza number: allow markup texts.
+* Resurrected experimental sketch output, now with dispatch.
 
 
-* Partial bugfix: ly2dvi: handle spaces in .ly file names (except for
-latex calls).
+* Bugfix: prefix directory defaults to DIR_DATADIR if not defined.
 
 
-* Bugfix: prepend DATADIR to %loadpath too.
+* Rune: more reliable repeat dots (WARNING: FONT CHANGED)
 
 
-* Resurrected experimental sketch output, now with dispatch.
+1.5.22.hwn1
+===========
 
 
-* Documented Linux-2.4.0, Guile-1.4 --with-threads bug.
+* Dashed slur bugfix. 
+
+* GUILE 1.4 compatibility.
+
 
 1.5.22
 ======
 
 1.5.22
 ======
index bd4b1165934037407acadeac316128e683dcdef8..f5a7104cacd2a6650c196fb0b1cf70b3a5c16b2b 100644 (file)
@@ -50,7 +50,7 @@ which substitutes some @AT_VARIABLES@ as well.
       </td></tr>
       <tr><td><font size="-1">
        <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">GNU/Linux binaries</a><br>
       </td></tr>
       <tr><td><font size="-1">
        <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">GNU/Linux binaries</a><br>
-       <a href="@TOP@Documentation/windows/out-www/installing.html">GNU/Windows binaries</a><br>
+       <a href="@TOP@Documentation/windows/out-www/installing.html">Windows binaries</a><br>
        <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source code</a><br>
       </font></td></tr>
       <tr><td bgcolor="#e8e8ff">
        <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source code</a><br>
       </font></td></tr>
       <tr><td bgcolor="#e8e8ff">
index 45eb1b5e4558abedba50e14787210e7eb539aa14..e54217156990ed97cfac0856f4076e161749de4a 100644 (file)
@@ -171,12 +171,10 @@ configure something like:
 
 
 @item pktrace, [OPTIONAL], needed for generating PostScript Type1
 
 
 @item pktrace, [OPTIONAL], needed for generating PostScript Type1
-fonts. Get it from
- @uref{http://www.cs.uu.nl/~hanwen/public/software/pktrace-0.1.tar.gz}
+fonts. Get it from  @uref{http://www.cs.uu.nl/~hanwen/pktrace/}
 
 @item autotrace-0.27a, [OPTIONAL], needed for generating PostScript Type1
 
 @item autotrace-0.27a, [OPTIONAL], needed for generating PostScript Type1
-fonts. You must apply the patch included pktrace-0.1 first.
-@uref{http://autotrace.sourceforge.net}.
+fonts. @uref{http://autotrace.sourceforge.net}.
  
 @item MetaPost [OPTIONAL] needed for generating PostScript Type3 fonts. Please
 note that tetex-0.4pl8 (included with Red Hat 5.x) does not include
  
 @item MetaPost [OPTIONAL] needed for generating PostScript Type3 fonts. Please
 note that tetex-0.4pl8 (included with Red Hat 5.x) does not include
@@ -533,7 +531,7 @@ interfere with your build, you may want to do this before the build too:
 @end example
 
 
 @end example
 
 
-@c Why isn't this in BUGS (where it belongs?)
+
 @section Problems
 
 For help and questions use @email{lilypond-user@@gnu.org}.  Please
 @section Problems
 
 For help and questions use @email{lilypond-user@@gnu.org}.  Please
@@ -548,7 +546,6 @@ Flex 2.5.4a does not produce g++-3.0 compliant C++ code.  To compile
 LilyPond with gcc-3.0 you may do:
 
 @example
 LilyPond with gcc-3.0 you may do:
 
 @example
-        rm -f config.cache
         CC=gcc-3.0 CXX=g++-3.0 ./configure --enable-config=gcc-3.0
         make conf=gcc-3.0 -C lily out-gcc-3.0/lexer.cc
         patch -p1 < lexer-gcc-3.0.patch
         CC=gcc-3.0 CXX=g++-3.0 ./configure --enable-config=gcc-3.0
         make conf=gcc-3.0 -C lily out-gcc-3.0/lexer.cc
         patch -p1 < lexer-gcc-3.0.patch
@@ -557,18 +554,6 @@ LilyPond with gcc-3.0 you may do:
 
 Note that this is fixed in Debian/unstable for flex >= 2.5.4a-13.
 
 
 Note that this is fixed in Debian/unstable for flex >= 2.5.4a-13.
 
-@unnumberedsubsec Linux-2.4.0, Guile-1.4 --with-threads
-
-There's a bug in certain kernels around version 2.4.0, that is
-triggered when using Guile 1.4 compiled with pthreads.  You'll see
-random segmentation fault craches of LilyPond.  Upgrade to a newer
-version of Linux.  If you can't do that, you may try to recompiling
-Guile without threads (YMMV):
-
-@example
-         guile-1.4$ ./configure --without-threads; make all install
-#end example
-
 @unnumberedsubsec NetBSD
 
 @itemize @bullet
 @unnumberedsubsec NetBSD
 
 @itemize @bullet
index 05e31d59ffe4ff5344d1cfc8110903423b717519..1d1e75b1b921c669c90f8fa9af45b89f384a6428 100644 (file)
@@ -33,8 +33,10 @@ therefore not recommended to use midi2ly for human-generated midi
 files. Correcting the quantization mistakes of the human player takes a
 lot of time.
 
 files. Correcting the quantization mistakes of the human player takes a
 lot of time.
 
-Hackers who know about signal processing are invited to write  a more
-robust midi2ly.
+Hackers who know about signal processing are invited to write a more
+robust midi2ly.  midi2ly is written in Python, using a module written in
+C to parse the MIDI files.
+
 
 @subsection Invoking midi2ly
 
 
 @subsection Invoking midi2ly
 
@@ -75,12 +77,6 @@ robust midi2ly.
 @end table
 
 
 @end table
 
 
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
-
-Written by @email{Jan Nieuwenhuizen, janneke@@gnu.org}.
-
-
 @node etf2ly
 @section etf2ly
 
 @node etf2ly
 @section etf2ly
 
@@ -111,11 +107,9 @@ version information
 
 @refbugs
 
 
 @refbugs
 
-Known: articulation scripts are buggy.  Empty measures confuse etf2ly.
-
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
+The list of articulation scripts is incomplete.  Empty measures confuse
+etf2ly.
 
 
-Report bugs to @email{bug-lilypond@@gnu.org}.
 
 @node abc2ly
 @section abc2ly
 
 @node abc2ly
 @section abc2ly
@@ -172,18 +166,12 @@ not.
 
 abc2ly ignores the ABC beaming.
 
 
 abc2ly ignores the ABC beaming.
 
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
-@c How about Laura?   /MB
-
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
 @node pmx2ly
 @section pmx2ly
 
 PMX is a MusiXTeX preprocessor written by Don Simons, see
 @uref{http://icking-music-archive.sunsite.dk/Misc/Music/musixtex/software/pmx/}.
 
 @node pmx2ly
 @section pmx2ly
 
 PMX is a MusiXTeX preprocessor written by Don Simons, see
 @uref{http://icking-music-archive.sunsite.dk/Misc/Music/musixtex/software/pmx/}.
 
-Report bugs to @email{bug-lilypond@@gnu.org}.
 
 @subsection Invoking pmx2ly
 
 
 @subsection Invoking pmx2ly
 
@@ -204,10 +192,6 @@ set output filename to FILE
 version information
 @end table
 
 version information
 @end table
 
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
-
 
 @node musedata2ly
 @section musedata2ly
 
 @node musedata2ly
 @section musedata2ly
@@ -242,10 +226,6 @@ version information
 @var{REFFILE}
 @end table
 
 @var{REFFILE}
 @end table
 
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
-
 
 @node mup2ly
 @section mup2ly
 
 @node mup2ly
 @section mup2ly
@@ -287,9 +267,5 @@ print warranty and copyright.  Mup2ly comes with absolutely @strong{NO WARRANTY}
 Currently, only plain notes (pitches, durations), voices and staves are
 converted.
 
 Currently, only plain notes (pitches, durations), voices and staves are
 converted.
 
-Written by @email{Jan Nieuwenhuizen,janneke@@gnu.org}, based on pmx2ly.
-
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
 
 
 
 
index 7acb95d58ac419989247d4a1f1bcc1897259aeae..12adf9a8c4d4c93d1ae8f73327f6c8ba79a0b766 100644 (file)
@@ -329,7 +329,7 @@ r1 r2 r4 r8 r16 r32 r64 r64
 @lilypond[]
 \score {
   \notes \relative c'' {
 @lilypond[]
 \score {
   \notes \relative c'' {
-        a\breve  \autoBeamOff
+    a\breve  \autoBeamOff
     a1 a2 a4 a8 a16 a32 a64 a64 
     r\longa r\breve  
     r1 r2 r4 r8 r16 r32 r64 r64 
     a1 a2 a4 a8 a16 a32 a64 a64 
     r\longa r\breve  
     r1 r2 r4 r8 r16 r32 r64 r64 
@@ -609,6 +609,7 @@ Shortcut for
   \property Staff.clefOctavation = @var{extra transposition of clefname}
 @end example
 
   \property Staff.clefOctavation = @var{extra transposition of clefname}
 @end example
 
+
 Any change in these properties creates a clef (A @internalsref{Clef} grob).
 
 Supported clef-names include 
 Any change in these properties creates a clef (A @internalsref{Clef} grob).
 
 Supported clef-names include 
@@ -640,7 +641,12 @@ G clef on 2nd line
 @end table
 
 By adding @code{_8} or @code{^8} to the clef name, the clef is
 @end table
 
 By adding @code{_8} or @code{^8} to the clef name, the clef is
-transposed one octave down or up, respectively.
+transposed one octave down or up, respectively.  Note that you have to
+enclose @var{clefname} in quotes if you use underscores or digits in the
+name. For example,
+@example
+       \clef "G_8"
+@end example 
 
 Supported associated glyphs (for @code{Staff.clefGlyph}) are:
 
 
 Supported associated glyphs (for @code{Staff.clefGlyph}) are:
 
index 5bc98fe20fa9b1dc39a1df7aae277f6e65f124cd..fc88448dd451a06c3f3d5e36fc1620496e4c1a4f 100644 (file)
@@ -837,10 +837,12 @@ at @uref{http://www.ghostscript.com}.
 @unnumberedsubsec Windows users
 Windows users start the terminal by clicking on the LilyPond icon.
 Notepad is sufficient for editing the LilyPond file. Viewing the PS file
 @unnumberedsubsec Windows users
 Windows users start the terminal by clicking on the LilyPond icon.
 Notepad is sufficient for editing the LilyPond file. Viewing the PS file
-can be done with @code{gsview32 test.ps}.  Viewing DVI files can be done
-with @code{yap test.dvi}.  The "print" button in Yap will print files.
-You can also print from the command line by executing @code{gsview32 /s
-test.ps}
+can be done with @code{gsview32 test.ps}.@footnote{ You can also view
+DVI files with @code{yap test.dvi}, but unfortunately the postscript
+interaction seems broken, meaning that you will not see slurs or beams
+in the Yap window.}  You can also print from the command line by
+executing @code{gsview32 /s test.ps}
+
 
 
 @node The first real tune
 
 
 @node The first real tune
index 2df724461ad98167c8e9fe51ddfd9c4840e1883f..daa584aca59a897a3b86be4f440b446b9748a8ca 100644 (file)
@@ -19,41 +19,30 @@ users.  Please remember that we (the developers) rather dislike windows,
 and none of us use it.  Don't complain to us that installing LilyPond is
 too difficult; rather, if you know something about your Windows, send us
 code that works better (see @uref{compiling.html,compiling}).
 and none of us use it.  Don't complain to us that installing LilyPond is
 too difficult; rather, if you know something about your Windows, send us
 code that works better (see @uref{compiling.html,compiling}).
+Nevertheless, detailed bug reports are appreciated; before you send a
+report, make sure to read the section on bugreports below. 
 
 
-@section Windows binary setup 
-
-Apart from LilyPond itself, you need Cygwin, GUILE, Python and a TeX
-installation, but all this software be installed by running setup.exe:
-
-@table @asis
-@item LilyPond
-Download and run
-@c let's do http, so that people read the README
-@uref{http://www.lilypond.org/gnu-windows/setup.exe, setup.exe}
-to install LilyPond.
 
 
-This will install the minimal set of cygwin tools needed to run
-LilyPond.  Make sure to install in the default place, @file{c:/cygwin},
-and install everything.
+@section Windows binary setup 
 
 
-As of version 1.3.150, you also have the option to install MiKTeX and
-GSView from this installer, which is recommended.  If you choose to
-install these by hand (see below), make sure to install them
-@strong{before} you install LilyPond, otherwise your LilyPond setup will
-be broken.
 
 
-If you already have cygwin installed, don't worry: nothing will be
-installed twice.  To expand on this minimal set, click
-@uref{http://sources.redhat.com/cygwin/setup.exe,here}, or visit a
-Cygwin @uref{http://sources.redhat.com/cygwin/mirrors.html,mirror site}.
-@end table
+All the software you need is installed by downloading and running
+@uref{http://www.lilypond.org/gnu-windows/setup.exe, setup.exe}.  You
+will be asked some questions. If you are unsure just click "Next".  Do
+not change the default install directory @file{c:/cygwin}.
 
 
+This installs LilyPond, and Cygwin, GUILE, Python, MiKTeX and GSView If
+you already have some of that software under @file{c:/cygwin}, then
+don't worry: nothing will be installed twice.
 
 
-@section Windows running setup
+If you want to install any of this software by hand, do this
+@strong{before} you run @file{setup.exe}, otherwise your LilyPond setup
+will not work.
 
 
-If you're lucky, after running @file{setup.exe} you're all set up.
+@section Testing LilyPond
 
 
-Open a LilyPond shell (or any bash shell), and type
+Open a LilyPond shell (To open a a lilypond shell, click the "GNU
+LilyPond" icon), and type
 
 @quotation
 @example
 
 @quotation
 @example
@@ -61,7 +50,7 @@ lilypond --help
 @end example
 @end quotation
 
 @end example
 @end quotation
 
-If you don't see something similar to
+You should see something similar to
 
 @quotation
 @example
 
 @quotation
 @example
@@ -79,25 +68,71 @@ Options:
 @end example
 @end quotation
 
 @end example
 @end quotation
 
-you should try adding @file{/usr/lilypond-x.y.z/bin} to your @var{PATH},
-do:
+Then, prepare a file called @file{foo.ly}, by issuing
+@example
+notepad foo.ly
+@end example
+Enter the following into the file
+@example
+
+\score @{ \notes @{ c4 ( ) c4 @} @}
+
+@end example
+Close the file and save it. Run the following command a few times until
+it says @code{PS output to `foo.ps', DVI output to `foo.dvi'}.
+@example
+
+ly2dvi -P foo
+
+@end example
+You can now view the file using the following command
+@example
+
+gsview32 foo.ps
+
+@end example
+
+If this works, then you can head to the
+@uref{../../user/out-www/lilypond/Tutorial.html,Tutorial} to start using
+LilyPond.
 
 
+
+
+@section Removing LilyPond
+
+Start @file{setup.exe}, click Next, select "Install from Local
+Directory". Then click next until you reach "Select packages to
+install". Click "View". Now, for every package, click on the recycle
+icon until it says "Uninstall". Then, click Next.
+
+(If you find this too tedious, you can also simply remove
+@file{c:/cygwin}. This also removes the @file{/home/} directories under
+cygwin (i.e. @file{C:\CYGWIN\HOME}, so make sure that you bring
+important files in safety first.)
+
+@section Troubleshooting
+
+
+@unnumberedsubsec invoking lilypond --help doesn't work
+
+Open the shell, and try adding @file{/usr/lilypond-x.y.z/bin} to your
+@var{PATH}, do:
 @quotation
 @example
 PATH=/usr/lilypond-1.4.2/bin:$PATH
 @end example
 @end quotation
 
 @quotation
 @example
 PATH=/usr/lilypond-1.4.2/bin:$PATH
 @end example
 @end quotation
 
-and try again.
-
-
-@subsection Trouble
+Now, invoke @file{lilypond --help}
 
 For problems and solutions see
 @uref{http://lilypond.org/wiki?TroubleshootingWindows,Troubleshooting
 Windows}
 
 
 
 For problems and solutions see
 @uref{http://lilypond.org/wiki?TroubleshootingWindows,Troubleshooting
 Windows}
 
 
+
+
+@ignore
 @subsection Additional software
 
 LilyPond needs a number of software packages to be really useful.  These
 @subsection Additional software
 
 LilyPond needs a number of software packages to be really useful.  These
@@ -141,11 +176,8 @@ Click @uref{ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/gs650/gs650w32.exe
 @uref{ftp://ftp.cs.wisc.edu/ghost/ghostgum,ftp.cs.wisc.edu}.
 or visit the
 @uref{http://www.cs.wisc.edu/~ghost/,Ghostscript, Ghostview and GSview site}.
 @uref{ftp://ftp.cs.wisc.edu/ghost/ghostgum,ftp.cs.wisc.edu}.
 or visit the
 @uref{http://www.cs.wisc.edu/~ghost/,Ghostscript, Ghostview and GSview site}.
-
 @end table
 
 @end table
 
-
-
 [TODO:
 
 
 [TODO:
 
 
@@ -154,9 +186,6 @@ emacs-on-cygwin setup.
 
 ]
 
 
 ]
 
-
-@ignore 
-
   guile -v
   Guile 1.4.1
 
   guile -v
   Guile 1.4.1
 
@@ -188,4 +217,19 @@ in each corner.
 
 @end ignore
 
 
 @end ignore
 
+@ignore
+@c irrelevant.
+
+If you want to install more of cygwnTo expand on this minimal set,
+@section If you already have MikTeX, GSView or
 
 
+If you already have cygwin installed, don't worry: nothing will be
+installed twice.  To expand on this minimal set, click
+@uref{http://sources.redhat.com/cygwin/setup.exe,here}, or visit a
+Cygwin @uref{http://sources.redhat.com/cygwin/mirrors.html,mirror site}.
+
+
+This will install the minimal set of cygwin tools needed to run
+LilyPond.  Make sure to install in the default place, @file{c:/cygwin},
+and install everything. 
+@end ignore
index 5ae3acbad1c26922d034d67de55cb9e7ec160b86..c8c9bd4ad697da53378757bf6f4048a24f23d8fc 100644 (file)
@@ -14,12 +14,18 @@ gsview36="/usr/windows/Ghostgum/GSview"
 # "C:\GSTOOLS\GSVIEW\gsview32.exe" "%1"
 
 
 # "C:\GSTOOLS\GSVIEW\gsview32.exe" "%1"
 
 
+
+## we set GS_LIB although the registry keys have been set.
+##  
+
 if [ -e "$gs550/gswin32.exe" ]; then
        PATH="$gs550:$PATH"
 if [ -e "$gs550/gswin32.exe" ]; then
        PATH="$gs550:$PATH"
+    GS_LIB='C:\cygwin\usr\windows\gs\gs5.50\lib'
 fi
 
 if [ -e "$gs650/gswin32.exe" ]; then
        PATH="$gs650:$PATH"
 fi
 
 if [ -e "$gs650/gswin32.exe" ]; then
        PATH="$gs650:$PATH"
+    GS_LIB='C:\cygwin\usr\windows\gs\gs6.50\lib'
 fi
 
 if [ -e "$gsview26/gsview32.exe" ]; then
 fi
 
 if [ -e "$gsview26/gsview32.exe" ]; then
@@ -29,3 +35,9 @@ fi
 if [ -e "$gsview36/gsview32.exe" ]; then
        PATH="$gsview36:$PATH"
 fi
 if [ -e "$gsview36/gsview32.exe" ]; then
        PATH="$gsview36:$PATH"
 fi
+
+
+
+
+export GS_LIB 
+export PATH 
index 7fa5e4fe7ccffb7859c1dce59d6def02372f8f46..972e0c14e503a87bd52cfb9e6aeecae45c7a7e3c 100644 (file)
@@ -173,12 +173,10 @@ Compilation
           ./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
 
    * pktrace, [OPTIONAL], needed for generating PostScript Type1 fonts.
           ./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
 
    * pktrace, [OPTIONAL], needed for generating PostScript Type1 fonts.
-     Get it from
-     `http://www.cs.uu.nl/~hanwen/public/software/pktrace-0.1.tar.gz'
+     Get it from  `http://www.cs.uu.nl/~hanwen/pktrace/'
 
    * autotrace-0.27a, [OPTIONAL], needed for generating PostScript Type1
 
    * autotrace-0.27a, [OPTIONAL], needed for generating PostScript Type1
-     fonts. You must apply the patch included pktrace-0.1 first.
-     `http://autotrace.sourceforge.net'.
+     fonts. `http://autotrace.sourceforge.net'.
 
    * MetaPost [OPTIONAL] needed for generating PostScript Type3 fonts.
      Please note that tetex-0.4pl8 (included with Red Hat 5.x) does not
 
    * MetaPost [OPTIONAL] needed for generating PostScript Type3 fonts.
      Please note that tetex-0.4pl8 (included with Red Hat 5.x) does not
diff --git a/VERSION b/VERSION
index 58cd2a286fc66c614bab2b11e5a981cd092a6d3a..753f92fe0eba58d345daa6bad2a4675863bebe42 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
-PATCH_LEVEL=22
-MY_PATCH_LEVEL=jcn4
+PATCH_LEVEL=23
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 0c965477724917b6015aaa2fa5915ce69201a6c7..18e992a57c11bb99c04324d909c2babdad670773 100644 (file)
@@ -13,7 +13,7 @@ TestedFeatures =       "beams and beamflags"
        <
 %              \property Score.beamQuantisation = #'none
                \context GrandStaff < 
        <
 %              \property Score.beamQuantisation = #'none
                \context GrandStaff < 
-               \notes\transpose c' { 
+\context Staff = SA            \notes\transpose c' { 
 
                        \time 8/4
                        \stemUp [c8 c'' a' f']
 
                        \time 8/4
                        \stemUp [c8 c'' a' f']
@@ -39,7 +39,7 @@ TestedFeatures =       "beams and beamflags"
                }
        >
        <       
                }
        >
        <       
-               \notes { 
+\context Staff = SB            \notes { 
 \transpose c' {
                        \time 8/4
                        \stemDown [a'8 a, c e]
 \transpose c' {
                        \time 8/4
                        \stemDown [a'8 a, c e]
index 6aa569f52328c06888cb2507148170b69c5a3650..50add21ba5792cd357e6346b25a0a7de6f8f6ac8 100644 (file)
@@ -91,7 +91,7 @@ praeludiumLeft =  \notes \relative c {
 
 
 
 
 
 
-
+    
 fugaIIRight =  \notes   \relative c''   {
   \key e \major              % E-major
   \clef violin
 fugaIIRight =  \notes   \relative c''   {
   \key e \major              % E-major
   \clef violin
@@ -202,7 +202,11 @@ fugaIIPedal =  \notes \relative c {
   \clef bass
 
   %13
   \clef bass
 
   %13
-  r4 fis,4-\ltoe e4.-\lheel e'8-\rheel | 
+    \property Staff.PhrasingSlur \override #'dashed = #5.0
+    c4 \( ( d ) e\) f
+
+%    r4 fis,4-\ltoe e4.-\lheel e'8-\rheel | 
+
 % tie accs: 2nd should get no acc
 f4-\rtoe~ f8
 fis8-\rtoe fis4-\rtoe [e8-\ltoe a-\rtoe] | 
 % tie accs: 2nd should get no acc
 f4-\rtoe~ f8
 fis8-\rtoe fis4-\rtoe [e8-\ltoe a-\rtoe] | 
index 33a04d2f3956df291a9629a566e091179dd23dfe..bd38f9637ce5c17d9fae1d2f938fe2065c612ae0 100644 (file)
@@ -53,6 +53,8 @@ Bar::compound_barline (Grob*me, String str, Real h)
   Real fatline = gh_scm2double (me->get_grob_property ("thick-thickness"));
 
   Real staffline = me->paper_l ()->get_var ("stafflinethickness");
   Real fatline = gh_scm2double (me->get_grob_property ("thick-thickness"));
 
   Real staffline = me->paper_l ()->get_var ("stafflinethickness");
+  Real staffspace = me->paper_l ()->get_var ("staffspace")
+    * Staff_symbol_referencer::staff_space (me);
 
   kern *= staffline;
   thinkern *= staffline;
 
   kern *= staffline;
   thinkern *= staffline;
@@ -61,10 +63,13 @@ Bar::compound_barline (Grob*me, String str, Real h)
   
   Molecule thin = simple_barline (me, hair, h);
   Molecule thick = simple_barline (me, fatline, h);
   
   Molecule thin = simple_barline (me, hair, h);
   Molecule thick = simple_barline (me, fatline, h);
-  Molecule colon = Font_interface::get_default_font (me)->find_by_name (
-    Staff_symbol_referencer::line_count (me) & 1 == 1 ?
-    "dots-repeatcolon" : "dots-evenrepeatcolon"
-  );
+  Molecule colon;
+  Molecule dot = Font_interface::get_default_font (me)->find_by_name ("dots-dot");
+  Real dist = (2-(Staff_symbol_referencer::line_count (me) & 1))*staffspace;
+  dot.translate_axis(dist/2,Y_AXIS);
+  colon.add_molecule(dot);
+  dot.translate_axis(-dist,Y_AXIS);
+  colon.add_molecule(dot);
 
   Molecule m;
   
 
   Molecule m;
   
index 965f6cda80a8b829bf0fa56c5fd153acbe6fd4e3..85609c295a798272175a488d70ead6c1a88b4761 100644 (file)
@@ -302,5 +302,5 @@ ENTER_DESCRIPTION(Completion_heads_engraver,
 break long notes and automatically tie them into the next measure.",
 /* creats*/       "NoteHead Dots",
 /* acks  */       "",
 break long notes and automatically tie them into the next measure.",
 /* creats*/       "NoteHead Dots",
 /* acks  */       "",
-/* reads */       "",
+/* reads */       "easyPlay centralCPosition measurePosition measureLength",
 /* write */       "");
 /* write */       "");
index 3f35eb86b8edd66ee21dad151c9429ddb7e42bc3..4251e16c5edb9594cb8d884c6ee5728e896e018e 100644 (file)
@@ -397,7 +397,7 @@ Grob::handle_broken_grobs (SCM src, SCM criterion)
          return SCM_UNDEFINED;
        }
     }
          return SCM_UNDEFINED;
        }
     }
-  else if (SCM_CONSP (src))
+  else if (ly_pair_p (src)) // SCM_CONSP (src))  // huh?
     {
       SCM oldcar =ly_car (src);
       /*
     {
       SCM oldcar =ly_car (src);
       /*
index 526214b48c46ee6f4361707e9663d196f555392d..e01fd24b30ba7330910da96325600344533ee96f 100644 (file)
@@ -261,18 +261,16 @@ prepend_load_path (String p )
 void
 init_lily_guile (String p )
 {
 void
 init_lily_guile (String p )
 {
-  // very very ugh: LILYPONDPREFIX (a hack), if set, overrules DATADIR.
-  // DATADIR (the default) should work too!
-  prepend_load_path (DIR_DATADIR);
-  prepend_load_path (DIR_DATADIR "/scm");
-
   prepend_load_path (p);
 
   // todo: junk this. We should make real modules iso. just loading files.
   prepend_load_path (p + "/scm/");
 
   prepend_load_path (p);
 
   // todo: junk this. We should make real modules iso. just loading files.
   prepend_load_path (p + "/scm/");
 
+
+#if GUILE_MINOR_VERSION >= 5
   SCM last_mod = scm_current_module ();
   scm_set_current_module (scm_c_resolve_module ("guile"));
   SCM last_mod = scm_current_module ();
   scm_set_current_module (scm_c_resolve_module ("guile"));
+#endif
   
   init_cxx_function_smobs ();
   for (int i=scm_init_funcs_->size () ; i--;)
   
   init_cxx_function_smobs ();
   for (int i=scm_init_funcs_->size () ; i--;)
@@ -281,7 +279,10 @@ init_lily_guile (String p )
   if (verbose_global_b)
     progress_indication ("\n");
   read_lily_scm_file ("lily.scm");
   if (verbose_global_b)
     progress_indication ("\n");
   read_lily_scm_file ("lily.scm");
+
+#if GUILE_MINOR_VERSION >= 5
   scm_set_current_module (last_mod);
   scm_set_current_module (last_mod);
+#endif
 }
 
 unsigned int ly_scm_hash (SCM s)
 }
 
 unsigned int ly_scm_hash (SCM s)
index 036ba8895944abbbd2dd12bed515371f0d2aa64b..40af656ee39e06c0b55361966a02d799a869e349 100644 (file)
@@ -125,11 +125,14 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick)
 {
   Real alpha = (curve.control_[3] - curve.control_[0]).arg ();
   Bezier back = curve;
 {
   Real alpha = (curve.control_[3] - curve.control_[0]).arg ();
   Bezier back = curve;
-
+  Offset perp = curvethick * complex_exp (Offset (0, alpha + M_PI/2)) * 0.5;
   back.reverse ();
   back.reverse ();
-  back.control_[1] += curvethick * complex_exp (Offset (0, alpha + M_PI/2));
-  back.control_[2] += curvethick * complex_exp (Offset (0, alpha + M_PI/2));  
+  back.control_[1] += perp;
+  back.control_[2] += perp;
 
 
+  curve.control_[1] -= perp;
+  curve.control_[2] -= perp;
+  
   SCM scontrols[8];
 
   for (int i=4; i--;)
   SCM scontrols[8];
 
   for (int i=4; i--;)
@@ -152,8 +155,12 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick)
                     ly_quote_scm (list),
                     gh_double2scm (linethick),
                     SCM_UNDEFINED));
                     ly_quote_scm (list),
                     gh_double2scm (linethick),
                     SCM_UNDEFINED));
+  Box b(curve.extent (X_AXIS),
+       curve.extent (Y_AXIS));
+
+  b[X_AXIS].unite (back.extent (X_AXIS));
+  b[Y_AXIS].unite (back.extent (Y_AXIS));
 
 
-  Box b (curve.extent (X_AXIS), curve.extent (Y_AXIS));
   return Molecule (b, at);
 }
 
   return Molecule (b, at);
 }
 
index 39e462d9445f649d47e7c5a2927e84304169da3b..67b85396d81d8178d3405c76a03ca29058faabc3 100644 (file)
@@ -255,12 +255,12 @@ setup_paths ()
   /* Adding mf/out make lilypond unchanged source directory, when setting
      LILYPONDPREFIX to lilypond-x.y.z */
   char *suffixes[] = {"ly", "afm", "mf/out", "scm", "tfm", "ps", 0};
   /* Adding mf/out make lilypond unchanged source directory, when setting
      LILYPONDPREFIX to lilypond-x.y.z */
   char *suffixes[] = {"ly", "afm", "mf/out", "scm", "tfm", "ps", 0};
-  String prefix = prefix_directory;
-  if (prefix.empty_b ())
-    prefix =  DIR_DATADIR;
+
+  if (prefix_directory.empty_b ())
+    prefix_directory =  DIR_DATADIR;
   for (char **s = suffixes; *s; s++)
     {
   for (char **s = suffixes; *s; s++)
     {
-      String p =  prefix + to_str ('/') + String (*s);
+      String p =  prefix_directory + to_str ('/') + String (*s);
       global_path.add (p);
 
 #if !KPATHSEA
       global_path.add (p);
 
 #if !KPATHSEA
@@ -324,6 +324,7 @@ main_prog (void * , int, char**)
 
     Very ugh.
    */
 
     Very ugh.
    */
+
   init_lily_guile (prefix_directory);
   cout << endl;
 
   init_lily_guile (prefix_directory);
   cout << endl;
 
index c850a721041932d89cc7c333790a7af35de60fc7..937c0f338aaaa337dbc59d899e4b57fbecaebb7f 100644 (file)
@@ -83,11 +83,6 @@ My_lily_parser::parser_error (String s)
   exit_status_global = 1;
 }
 
   exit_status_global = 1;
 }
 
-void
-My_lily_parser::set_last_duration (Duration const *d)
-{
-  default_duration_ = *d;
-}
 
 
 Input
 
 
 Input
index ae238425cd33725d1068d92ff38b246442213dd9..e3eed55cd51dfcb747b7f25003a6cdb0b567ce83 100644 (file)
@@ -139,5 +139,5 @@ ENTER_DESCRIPTION(Note_heads_engraver,
 /* descr */       "Generate one or more noteheads from Music of type Note_req.",
 /* creats*/       "NoteHead Dots",
 /* acks  */       "",
 /* descr */       "Generate one or more noteheads from Music of type Note_req.",
 /* creats*/       "NoteHead Dots",
 /* acks  */       "",
-/* reads */       "",
+/* reads */       "easyPlay centralCPosition",
 /* write */       "");
 /* write */       "");
index abfed8256326a756f274791b9ea91fdcbcce84f8..24ed811878b28200c5cc8576c4ee5f8d860187bc 100644 (file)
@@ -91,7 +91,7 @@ Paper_outputter::output_comment (String str)
 void
 Paper_outputter::output_scheme (SCM scm)
 {
 void
 Paper_outputter::output_scheme (SCM scm)
 {
-  scm_apply_2 (output_func_, scm, file_, SCM_EOL);
+  gh_call2 (output_func_, scm, file_);
 }
 
 void
 }
 
 void
index 21943567633c2675e88ad215841effc835a845f8..022451ca8d30bf4bafb66a4f0a0fd245daaf756a 100644 (file)
@@ -1615,9 +1615,11 @@ optional_notemode_duration:
        }
        | multiplied_duration   {
                $$ = $1;
        }
        | multiplied_duration   {
                $$ = $1;
+               THIS->default_duration_ = *unsmob_duration ($$);
        }
        | explicit_duration {
                $$ = $1;
        }
        | explicit_duration {
                $$ = $1;
+               THIS->default_duration_ = *unsmob_duration ($$);
        }       
        ;
 
        }       
        ;
 
@@ -1630,15 +1632,11 @@ steno_duration:
                        l =  intlog2 ($1);
 
                $$ = Duration (l, $2).smobbed_copy ();
                        l =  intlog2 ($1);
 
                $$ = Duration (l, $2).smobbed_copy ();
-
-               THIS->set_last_duration (unsmob_duration ($$));
        }
        | DURATION_IDENTIFIER dots      {
                Duration *d =unsmob_duration ($1);
                Duration k (d->duration_log (),d->dot_count () + $2);
                $$ = k.smobbed_copy ();
        }
        | DURATION_IDENTIFIER dots      {
                Duration *d =unsmob_duration ($1);
                Duration k (d->duration_log (),d->dot_count () + $2);
                $$ = k.smobbed_copy ();
-
-               THIS->set_last_duration (unsmob_duration ($$));
        }
        ;
 
        }
        ;
 
index 833241cb530df3cb45cb68f0412b32d87fd77452..ae47a7d189b24ae21fe46bb98a928805ced3d2f0 100644 (file)
@@ -45,7 +45,7 @@ Stanza_number_engraver::process_music ()
 
 
       // TODO
 
 
       // TODO
-      if (gh_string_p (s) || gh_pair_p (s))
+      if (gh_string_p (s))
 
        /*
          if (i.grob_l_->has_interface (symbol ("lyric-syllable-interface")))
 
        /*
          if (i.grob_l_->has_interface (symbol ("lyric-syllable-interface")))
index 3fdc1a3f71e1495885e91f863e51a64332a2d2b9..5db60e1750c93f641f14cc2021ef8475674771ac 100644 (file)
@@ -145,7 +145,8 @@ Text_engraver::stop_translation_timestep ()
   for (int i=0; i < texts_.size (); i++)
     {
       Item *ti = texts_[i];
   for (int i=0; i < texts_.size (); i++)
     {
       Item *ti = texts_[i];
-      Side_position_interface::add_staff_support (ti);
+      if (!to_boolean (get_property ("scriptHorizontal")))
+       Side_position_interface::add_staff_support (ti);
       typeset_grob (ti);
     }
   texts_.clear ();
       typeset_grob (ti);
     }
   texts_.clear ();
index 60e1a9c2cf502ad09b3c72201faaab8be6b22970..647f03862af862e22fc398817584cd5971e7a08e 100644 (file)
@@ -149,6 +149,18 @@ in LilyPond-include-path."
   :group 'LilyPond
   :type 'string)
 
   :group 'LilyPond
   :type 'string)
 
+(defcustom LilyPond-gv-command "gv -watch"
+  "Command used to display PS files."
+
+  :group 'LilyPond
+  :type 'string)
+
+(defcustom LilyPond-midi-command "timidity"
+  "Command used to play MIDI files."
+
+  :group 'LilyPond
+  :type 'string)
+
 ;; This is the major configuration variable.
 (defcustom LilyPond-command-alist
   `(
 ;; This is the major configuration variable.
 (defcustom LilyPond-command-alist
   `(
@@ -311,6 +323,42 @@ Must be the car of an entry in `LilyPond-command-alist'."
   (LilyPond-command (LilyPond-command-menu "Midi") 'LilyPond-master-file)
 )
 
   (LilyPond-command (LilyPond-command-menu "Midi") 'LilyPond-master-file)
 )
 
+(defun LilyPond-command-formatdvi ()
+  "Format the dvi output of the current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "2Dvi") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-formatps ()
+  "Format the ps output of the current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "2PS") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-smartview ()
+  "View the dvi output of current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "SmartView") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-view ()
+  "View the dvi output of current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "View") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-viewps ()
+  "View the ps output of current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "ViewPS") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-midi ()
+  "View the ps output of current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "Midi") 'LilyPond-master-file)
+)
+
 ;; FIXME, this is broken
 (defun LilyPond-region-file (begin end)
   (let (
 ;; FIXME, this is broken
 (defun LilyPond-region-file (begin end)
   (let (
index 77e808cea163a588fecb941d1d61a9cd2027d3c4..e614e84fe3b76ebbc19938dd8555f2faa7c35f01 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
 Begin3
 Title: LilyPond
-Version: 1.5.22
-Entered-date: 09NOV01
+Version: 1.5.23
+Entered-date: 29NOV01
 Description: @BLURB@
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.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
 Description: @BLURB@
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.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
-       1000k lilypond-1.5.22.tar.gz 
+       1000k lilypond-1.5.23.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.5.22.tar.gz 
+       1000k lilypond-1.5.23.tar.gz 
 Copying-policy: GPL
 End
 Copying-policy: GPL
 End
index e852d43d1dee87375897c016965fc4e8b569a5eb..bf2fd2f6e584b72baf42fccfeb879a28be4818a4 100644 (file)
@@ -1,5 +1,5 @@
 %define name lilypond
 %define name lilypond
-%define version 1.5.22
+%define version 1.5.23
 %define release 1mdk
 
 Name: %{name}
 %define release 1mdk
 
 Name: %{name}
index 95965f7f103a1932f4b21b774b8f7fa9e869e70c..4140712f8a79254afdb64dd21cec82d48edf2624 100644 (file)
@@ -1,11 +1,11 @@
 %define info yes
 
 Name: lilypond
 %define info yes
 
 Name: lilypond
-Version: 1.5.22
+Version: 1.5.23
 Release: 1
 License: GPL
 Group: Applications/Publishing
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.22.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.23.tar.gz
 Summary: Create and print music notation 
 URL: http://www.lilypond.org/
 BuildRoot: /tmp/lilypond-install
 Summary: Create and print music notation 
 URL: http://www.lilypond.org/
 BuildRoot: /tmp/lilypond-install
index 4564a645bbc8b484040183d5185f6cddc18d00c1..6acea87cbb7102918b9a9a351f42be1e219ee41b 100644 (file)
 
 Distribution: SuSE Linux 7.0 (i386)
 Name: lilypond
 
 Distribution: SuSE Linux 7.0 (i386)
 Name: lilypond
-Version: 1.5.22
+Version: 1.5.23
 Release: 2
 Copyright:    GPL
 Group: Applications/Publishing
 Release: 2
 Copyright:    GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.22.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.23.tar.gz
 # music notation software for.. ?
 Summary: A program for printing sheet music.
 URL: http://www.lilypond.org/
 # music notation software for.. ?
 Summary: A program for printing sheet music.
 URL: http://www.lilypond.org/
index 6f4667cf14e1e89b8f1ca8f86b638cc3ca58de11..9b2ae77de20f143f242253fc1c3b85f0d75095b3 100644 (file)
@@ -15,7 +15,7 @@ TEST_FILES = $(wildcard *test*.mf)
 FET_FILES = $(filter-out $(TEST_FILES),$(wildcard feta[0-9]*.mf))
 FONT_FILES = $(filter-out $(TEST_FILES),$(wildcard feta*[0-9].mf))
 
 FET_FILES = $(filter-out $(TEST_FILES),$(wildcard feta[0-9]*.mf))
 FONT_FILES = $(filter-out $(TEST_FILES),$(wildcard feta*[0-9].mf))
 
-XPM_FONTS = feta20 feta-nummer10
+XPM_FONTS = feta20 feta-nummer10 feta-braces20
 #CM_AFM_FILES = cmr10
 
 $(outdir)/cmr10.afm:
 #CM_AFM_FILES = cmr10
 
 $(outdir)/cmr10.afm:
index 67199364fb9538186efe257448cdf020e7525742..5ad45c1951005b49e3b2fa329a2c11ff2fa628f8 100644 (file)
@@ -10,18 +10,4 @@ fet_beginchar("duration dot","dot", "dot")
        set_char_box(0, dot_diam#, dot_diam#/2, dot_diam#/2);
 fet_endchar;
 
        set_char_box(0, dot_diam#, dot_diam#/2, dot_diam#/2);
 fet_endchar;
 
-fet_beginchar("repeat dots", "repeatcolon", "repeatcolon")
-       pickup pencircle scaled dot_diam;
-       draw (dot_diam/2, staff_space/2);
-       addto currentpicture also currentpicture yscaled -1;
-       set_char_box(0, dot_diam#, staff_space#/2, staff_space#/2);
-fet_endchar;
-
-fet_beginchar("even repeat dots", "evenrepeatcolon", "evenrepeatcolon")
-       pickup pencircle scaled dot_diam;
-       draw (dot_diam/2, staff_space);
-       addto currentpicture also currentpicture yscaled -1;
-       set_char_box(0, dot_diam#, staff_space#, staff_space#);
-fet_endchar;
-
 fet_endgroup("dots");
 fet_endgroup("dots");
index b3138812f30164dfaa4174dc52e00bd6acf831b3..25255e3f2886171b41417498a05da2e240822ed0 100644 (file)
@@ -1,11 +1,9 @@
 (define-module (scm ascii-script)
 (define-module (scm ascii-script)
-  :export (as-output-expression)
-  :no-backtrace
   )
 
 (define this-module (current-module))
 
   )
 
 (define this-module (current-module))
 
-(define (as-output-expression expr port)
+(define-public (as-output-expression expr port)
   (display (eval expr this-module) port)
   )
 
   (display (eval expr this-module) port)
   )
 
index 8922fef0eaed20729c3dca70db49e167bf9cdd88..5f10a15e7c704fa54d1903f59104cfd5ddd80939 100644 (file)
 ))
 
 
 ))
 
 
-
-
 (define (find-dumper format )
   (let*
       ((d (assoc format output-alist)))
 (define (find-dumper format )
   (let*
       ((d (assoc format output-alist)))
           "sketch.scm"
           "pdf.scm"
           "pdftex.scm"
           "sketch.scm"
           "pdf.scm"
           "pdftex.scm"
-          "ascii-script.scm"
           "c++.scm"
           "grob-property-description.scm"
           "translator-property-description.scm"
           "c++.scm"
           "grob-property-description.scm"
           "translator-property-description.scm"
 
 
 
 
 
 
+1
index f469ec7ac9a308679542ac94ac1e7955e5e0f90b..6af36d6ab7a897bb502b69a484f47c814c7f2d15 100644 (file)
@@ -8,20 +8,27 @@
 
 
 (define-module (scm ps)
 
 
 (define-module (scm ps)
-  :export (ps-output-expression)
-  :no-backtrace
   )
 
 (define this-module (current-module))
 
   )
 
 (define this-module (current-module))
 
-(define (ps-output-expression expr port)
-  (display (eval expr this-module) port)
-  )
+(debug-enable 'backtrace)
+
+(if (or (equal? (minor-version) "4")
+       (equal? (minor-version) "3.4"))
+    (define-public (ps-output-expression expr port)
+      (display (eval-in-module expr this-module) port )
+      )
+
+    (define-public (ps-output-expression expr port)
+      (display (eval expr this-module) port )
+      )
+    )
 
  
 (use-modules
  (guile)
 
  
 (use-modules
  (guile)
- (guile-user))
+)
 
 
 
 
 
 
index e999e00d257dad970f91543c3d7ae8e7f79bab85..e62575af535daeafefd88d3bc86b70b0c1e2f6db 100644 (file)
@@ -8,19 +8,16 @@
 
 
 (define-module (scm pysk)
 
 
 (define-module (scm pysk)
-  :export (pysk-output-expression)
-  :no-backtrace
   )
 
 (use-modules (scm ps)
             (ice-9 regex)
             (ice-9 string-fun)
   )
 
 (use-modules (scm ps)
             (ice-9 regex)
             (ice-9 string-fun)
-            (guile-user)
             (guile)
             )
 
 (define this-module (current-module))
             (guile)
             )
 
 (define this-module (current-module))
-(define (pysk-output-expression expr port)
+(define-public (pysk-output-expression expr port)
   (display (pythonify expr) port )
   )
 
   (display (pythonify expr) port )
   )
 
index 6a7660dbb7cf7a2474dae326f98818a9c9acc473..c5417abeabe99a810a3f7f7e0105af51e5fc9f29 100644 (file)
    "Fs(20)\n"
    ;; chars > 128 don't work yet
    (format #f "txt('\\~o',(" (modulo i 128))
    "Fs(20)\n"
    ;; chars > 128 don't work yet
    (format #f "txt('\\~o',(" (modulo i 128))
-;;   (format #f "txt('\\~o',(" i)
-;;   "txt('" (ascii->string i) "',("
-;;         "char(" ,(number->string i)  ",("
+   ;;      "char(" ,(number->string i)  ",("
    (sketch-numbers->string (map mul-scale (list x y)))
    "))\n"))
 
    (sketch-numbers->string (map mul-scale (list x y)))
    "))\n"))
 
index 01880f90f64e7a28f950b0916b50290c5ceee252..072ed76ecede1241b2d85a716b866b3747798f5a 100644 (file)
@@ -6,16 +6,12 @@
 ;;; Han-Wen Nienhuys <hanwen@cs.uu.nl>
 
 
 ;;; Han-Wen Nienhuys <hanwen@cs.uu.nl>
 
 
-(define-module (scm tex)
-  :export (tex-output-expression)
-  :no-backtrace
-  )
-
+(define-module (scm tex) )
+(debug-enable 'backtrace)
 (use-modules (scm ps)
             (ice-9 regex)
             (ice-9 string-fun)
             (ice-9 format)
 (use-modules (scm ps)
             (ice-9 regex)
             (ice-9 string-fun)
             (ice-9 format)
-            (guile-user)
             (guile)
             )
 
             (guile)
             )
 
@@ -87,7 +83,7 @@
   (embedded-ps (list 'bracket  arch_angle arch_width arch_height height arch_thick thick)))
 
 (define (dashed-slur thick dash l)
   (embedded-ps (list 'bracket  arch_angle arch_width arch_height height arch_thick thick)))
 
 (define (dashed-slur thick dash l)
-  (embedded-ps (list 'dashed-slur   thick dash l)))
+  (embedded-ps (list 'dashed-slur thick dash `(quote ,l))))
 
 (define (hairpin thick w sh eh)
   (embedded-ps (list 'hairpin thick w sh eh))
 
 (define (hairpin thick w sh eh)
   (embedded-ps (list 'hairpin thick w sh eh))
   ""
   )
 
   ""
   )
 
-
 (define (embedded-ps expr)
   (let
       ((os (open-output-string)))
 (define (embedded-ps expr)
   (let
       ((os (open-output-string)))
 ;;
 ;; need to do something to make this really safe.
 ;;
 ;;
 ;; need to do something to make this really safe.
 ;;
-(define (output-tex-string s)
+(define-public (output-tex-string s)
   (if security-paranoia
       (if use-regex
          (regexp-substitute/global #f "\\\\" s 'pre "$\\backslash$" 'post)
   (if security-paranoia
       (if use-regex
          (regexp-substitute/global #f "\\\\" s 'pre "$\\backslash$" 'post)
                                        ; no-origin not yet supported by Xdvi
 (define (no-origin) "")
 
                                        ; no-origin not yet supported by Xdvi
 (define (no-origin) "")
 
-(define (tex-output-expression expr port)
-  (display (eval expr this-module) port )
+(define my-eval-in-module eval)
+
+(if (or (equal? (minor-version) "4")
+       (equal? (minor-version) "3.4"))
+    (begin
+      (set! my-eval-in-module eval-in-module)
+
+    ))
+
+(define-public (tex-output-expression expr port)
+  (display (my-eval-in-module expr this-module) port )
   )
   )
+
index bd7963dbb5deecebd7889186940e07e42a3c9391..97abc27d8d842975ef3b731bae4e07629e887a3d 100644 (file)
@@ -301,7 +301,7 @@ help with debugging large scores.")
 (translator-property-description 'squashedPosition integer? " Vertical position of
 squashing for Pitch_squash_engraver.")
 (translator-property-description 'stavesFound list? "list of all staff-symbols found.")
 (translator-property-description 'squashedPosition integer? " Vertical position of
 squashing for Pitch_squash_engraver.")
 (translator-property-description 'stavesFound list? "list of all staff-symbols found.")
-(translator-property-description 'stanza markup? "Stanza `number' to print at start of a verse. Use in LyricsVoice context.")
+(translator-property-description 'stanza string? "Stanza `number' to print at start of a verse. Use in LyricsVoice context.")
 
 
 (translator-property-description 'stemLeftBeamCount integer? "
 
 
 (translator-property-description 'stemLeftBeamCount integer? "
index 23aa46d3977c9df9c39fd87349449dac56bfbaab..af8cbf877c8b810b10e0b4813c2416e22859dfc9 100644 (file)
@@ -1269,6 +1269,12 @@ Options:
   
 This program converts ABC music files (see
 http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt) To LilyPond input.
   
 This program converts ABC music files (see
 http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt) To LilyPond input.
+
+
+Report bugs to bug-gnu-music@gnu.org
+
+Written by Han-Wen Nienhuys <hanwen@cs.uu.nl>, Laura Conrad
+<lconrad@laymusic.org>, Roy Rankin <Roy.Rankin@@alcatel.com.au>
 """
 
 def print_version ():
 """
 
 def print_version ():
index f80334bc14d7dac35c0f4953e79d63b7ca4c8d8d..36976017a4240744ac4547d1bc61d8f66d257760 100644 (file)
@@ -1,7 +1,7 @@
 #!@PYTHON@
 
 # info mostly taken from looking at files. See also
 #!@PYTHON@
 
 # info mostly taken from looking at files. See also
-# http://www.cs.uu.nl/~hanwen/lily-devel/etf.html
+# http://lilypond.org/wiki/?EnigmaTransportFormat
 
 # This supports
 #
 
 # This supports
 #
@@ -24,7 +24,7 @@
 #  * dynamics
 #  * empty measures (eg. twopt03.etf from freenote)
 #
 #  * dynamics
 #  * empty measures (eg. twopt03.etf from freenote)
 #
-# 
+
 
 program_name = 'etf2ly'
 version = '@TOPLEVEL_VERSION@'
 
 program_name = 'etf2ly'
 version = '@TOPLEVEL_VERSION@'
index 1686b60c6c29f0ceecc1325e410c239e19b2382a..efd48214a34096cda1404358694c4b12cbfc28a1 100644 (file)
 #       geometry.sty and article.cls. Give me a hint, and I'll
 #       fix it.)
 
 #       geometry.sty and article.cls. Give me a hint, and I'll
 #       fix it.)
 
+#
+# TODO: magnification support should also work for texinfo -> html: eg. add as option to dvips. 
+# 
+
 # This is was the idea for handling of comments:
 #      Multiline comments, @ignore .. @end ignore is scanned for
 #      in read_doc_file, and the chunks are marked as 'ignore', so
 # This is was the idea for handling of comments:
 #      Multiline comments, @ignore .. @end ignore is scanned for
 #      in read_doc_file, and the chunks are marked as 'ignore', so
@@ -31,6 +35,8 @@
 #      The the rest of the rexeces are searched for. They don't have to test
 #      if they are on a commented out line.
 
 #      The the rest of the rexeces are searched for. They don't have to test
 #      if they are on a commented out line.
 
+
+
 import os
 import stat
 import string
 import os
 import stat
 import string
@@ -927,16 +933,6 @@ def process_lilypond_blocks(outname, chunks):#ugh rename
        return newchunks
 
 
        return newchunks
 
 
-def find_eps_dims (match):
-       "Fill in dimensions of EPS files."
-       
-       fn =match.group (1)
-       dims = bounding_box_dimensions (fn)
-       if g_outdir:
-               fn = os.path.join(g_outdir, fn)
-       
-       return '%ipt' % dims[0]
-
 
 def system (cmd):
        sys.stderr.write ("invoking `%s'\n" % cmd)
 
 def system (cmd):
        sys.stderr.write ("invoking `%s'\n" % cmd)
@@ -955,19 +951,20 @@ def get_bbox (filename):
                if m:
                        gr = map (string.atoi, m.groups ())
                        break
                if m:
                        gr = map (string.atoi, m.groups ())
                        break
-
+       
        return gr
 
 def make_pixmap (name):
        bbox = get_bbox (name + '.eps')
        return gr
 
 def make_pixmap (name):
        bbox = get_bbox (name + '.eps')
-
+       margin = 3
        fo = open (name + '.trans.eps' , 'w')
        fo = open (name + '.trans.eps' , 'w')
-       fo.write ('%d %d translate\n' % (-bbox[0], -bbox[1]))
+       fo.write ('%d %d translate\n' % (-bbox[0]+margin, -bbox[1]+margin))
        fo.close ()
        
        res = 90
        fo.close ()
        
        res = 90
-       x = (bbox[2] - bbox[0]) * res / 72.
-       y = (bbox[3] - bbox[1]) * res / 72.
+
+       x = (2* margin + bbox[2] - bbox[0]) * res / 72.
+       y = (2* margin + bbox[3] - bbox[1]) * res / 72.
 
        cmd = r"""gs -g%dx%d -sDEVICE=pgm  -dTextAlphaBits=4 -dGraphicsAlphaBits=4  -q -sOutputFile=- -r%d -dNOPAUSE %s %s -c quit | pnmtopng > %s"""
        
 
        cmd = r"""gs -g%dx%d -sDEVICE=pgm  -dTextAlphaBits=4 -dGraphicsAlphaBits=4  -q -sOutputFile=- -r%d -dNOPAUSE %s %s -c quit | pnmtopng > %s"""
        
@@ -1187,14 +1184,31 @@ def check_texidoc (chunks):
                n.append (c)
        return n
 
                n.append (c)
        return n
 
+
+## what's this? Docme --hwn
+##
 def fix_epswidth (chunks):
        newchunks = []
        for c in chunks:
 def fix_epswidth (chunks):
        newchunks = []
        for c in chunks:
-               if c[0] == 'lilypond' and 'eps' in c[2]:
-                       body = re.sub (r"""\\lilypondepswidth{(.*?)}""", find_eps_dims, c[1])
-                       newchunks.append(('lilypond', body, c[2], c[3], c[4]))
-               else:
+               if c[0] <> 'lilypond' or 'eps' not in c[2]:
                        newchunks.append (c)
                        newchunks.append (c)
+                       continue
+
+               mag = 1.0
+               for o in c[2]:
+                       m  = re.match ('magnification=([0-9.]+)', o)
+                       if m:
+                               mag = string.atof (m.group (1))
+
+               def replace_eps_dim (match, lmag = mag):
+                       filename = match.group (1)
+                       dims = bounding_box_dimensions (filename)
+
+                       return '%fpt' % (dims[0] *lmag)
+       
+               body = re.sub (r"""\\lilypondepswidth{(.*?)}""", replace_eps_dim, c[1])
+               newchunks.append(('lilypond', body, c[2], c[3], c[4]))
+                       
        return newchunks
 
 
        return newchunks
 
 
index c8ac68ce3cd5fedc72f893cbac15729bbeafffe1..22a9a2245b65a1ba14e94fd69198ba53f546423f 100644 (file)
@@ -414,7 +414,7 @@ def run_lilypond (files, outbase, dep_prefix):
                if dep_prefix:
                        opts = opts + ' --dep-prefix=%s' % dep_prefix
 
                if dep_prefix:
                        opts = opts + ' --dep-prefix=%s' % dep_prefix
 
-       fs = '"' + string.join (files, '" "') + '"'
+       fs = string.join (files)
 
        if not verbose_p:
                # cmd = cmd + ' 1> /dev/null 2> /dev/null'
 
        if not verbose_p:
                # cmd = cmd + ' 1> /dev/null 2> /dev/null'
@@ -613,7 +613,6 @@ None
        f.write (s)
        f.close ()
 
        f.write (s)
        f.close ()
 
-       # FIXME: howto escape spaces in file names?
        cmd = 'latex \\\\nonstopmode \\\\input %s' % latex_fn
 
        if not verbose_p:
        cmd = 'latex \\\\nonstopmode \\\\input %s' % latex_fn
 
        if not verbose_p:
@@ -639,7 +638,7 @@ None.
        if extra['orientation'] and extra['orientation'][0] == 'landscape':
                opts = opts + ' -tlandscape'
 
        if extra['orientation'] and extra['orientation'][0] == 'landscape':
                opts = opts + ' -tlandscape'
 
-       cmd = 'dvips "%s" -o"%s" "%s"' % (opts, outbase + '.ps', outbase + '.dvi')
+       cmd = 'dvips %s -o%s %s' % (opts, outbase + '.ps', outbase + '.dvi')
        
        if not verbose_p:
                progress ( _("Running %s...") % 'dvips')
        
        if not verbose_p:
                progress ( _("Running %s...") % 'dvips')
index 76d9068fe52710bd0d638c5c1de8777e64cdf423..3ff0442234b070a61a32223c18b5e67e6e8068ec 100644 (file)
@@ -31,19 +31,7 @@ import string
 import sys
 import __main__
 
 import sys
 import __main__
 
-
-# if set, LILYPONDPREFIX must take prevalence
-# if datadir is not set, we're doing a build and LILYPONDPREFIX 
-datadir = '@datadir@'
-if os.environ.has_key ('LILYPONDPREFIX') \
-   or '@datadir@' == '@' + 'datadir' + '@':
-       datadir = os.environ['LILYPONDPREFIX']
-else:
-       datadir = '@datadir@'
-
-sys.path.append (os.path.join (datadir, 'python'))
-sys.path.append (os.path.join (datadir, 'python/out'))
-
+package_name = 'lilypond'
 program_name = 'build-lily'
 program_version = '@TOPLEVEL_VERSION@'
 
 program_name = 'build-lily'
 program_version = '@TOPLEVEL_VERSION@'
 
@@ -105,7 +93,182 @@ option_definitions = [
        ('', 'w', 'warranty', _ ("show warranty and copyright")),
        ]
 
        ('', 'w', 'warranty', _ ("show warranty and copyright")),
        ]
 
-from lilylib import *
+
+################################################################
+# lilylib.py -- options and stuff
+# 
+# source file of the GNU LilyPond music typesetter
+
+import os
+
+try:
+       import gettext
+       gettext.bindtextdomain ('lilypond', localedir)
+       gettext.textdomain ('lilypond')
+       _ = gettext.gettext
+except:
+       def _ (s):
+               return s
+
+if program_version == '@' + 'TOPLEVEL_VERSION' + '@':
+       program_version = '1.5.17'
+
+def identify ():
+       sys.stdout.write ('%s (GNU LilyPond) %s\n' % (program_name, program_version))
+
+def warranty ():
+       identify ()
+       sys.stdout.write ('\n')
+       sys.stdout.write (_ ('Copyright (c) %s by' % ' 2001'))
+       sys.stdout.write ('\n')
+       sys.stdout.write ('  Han-Wen Nienhuys')
+       sys.stdout.write ('  Jan Nieuwenhuizen')
+       sys.stdout.write ('\n')
+       sys.stdout.write (_ (r'''
+Distributed under terms of the GNU General Public License. It comes with
+NO WARRANTY.'''))
+       sys.stdout.write ('\n')
+
+def progress (s):
+       errorport.write (s + '\n')
+
+def warning (s):
+       progress (_ ("warning: ") + s)
+               
+def error (s):
+
+
+       '''Report the error S.  Exit by raising an exception. Please
+       do not abuse by trying to catch this error. If you do not want
+       a stack trace, write to the output directly.
+
+       RETURN VALUE
+
+       None
+       
+       '''
+       
+       progress (_ ("error: ") + s)
+       raise _ ("Exiting ... ")
+
+def getopt_args (opts):
+       '''Construct arguments (LONG, SHORT) for getopt from  list of options.'''
+       short = ''
+       long = []
+       for o in opts:
+               if o[1]:
+                       short = short + o[1]
+                       if o[0]:
+                               short = short + ':'
+               if o[2]:
+                       l = o[2]
+                       if o[0]:
+                               l = l + '='
+                       long.append (l)
+       return (short, long)
+
+def option_help_str (o):
+       '''Transform one option description (4-tuple ) into neatly formatted string'''
+       sh = '  '       
+       if o[1]:
+               sh = '-%s' % o[1]
+
+       sep = ' '
+       if o[1] and o[2]:
+               sep = ','
+               
+       long = ''
+       if o[2]:
+               long= '--%s' % o[2]
+
+       arg = ''
+       if o[0]:
+               if o[2]:
+                       arg = '='
+               arg = arg + o[0]
+       return '  ' + sh + sep + long + arg
+
+
+def options_help_str (opts):
+       '''Convert a list of options into a neatly formatted string'''
+       w = 0
+       strs =[]
+       helps = []
+
+       for o in opts:
+               s = option_help_str (o)
+               strs.append ((s, o[3]))
+               if len (s) > w:
+                       w = len (s)
+
+       str = ''
+       for s in strs:
+               str = str + '%s%s%s\n' % (s[0], ' ' * (w - len(s[0])  + 3), s[1])
+       return str
+
+def help ():
+       ls = [(_ ("Usage: %s [OPTION]... FILE") % program_name),
+               ('\n\n'),
+               (help_summary),
+               ('\n\n'),
+               (_ ("Options:")),
+               ('\n'),
+               (options_help_str (option_definitions)),
+               ('\n\n'),
+               (_ ("Report bugs to %s") % 'bug-lilypond@gnu.org'),
+               ('\n')]
+       map (sys.stdout.write, ls)
+       
+def setup_temp ():
+       """
+       Create a temporary directory, and return its name. 
+       """
+       global temp_dir
+       if not keep_temp_dir_p:
+               temp_dir = tempfile.mktemp (program_name)
+       try:
+               os.mkdir (temp_dir, 0777)
+       except OSError:
+               pass
+
+       return temp_dir
+
+
+def system (cmd, ignore_error = 0):
+       """Run CMD. If IGNORE_ERROR is set, don't complain when CMD returns non zero.
+
+       RETURN VALUE
+
+       Exit status of CMD
+       """
+       
+       if verbose_p:
+               progress (_ ("Invoking `%s\'") % cmd)
+       st = os.system (cmd)
+       if st:
+               name = re.match ('[ \t]*([^ \t]*)', cmd).group (1)
+               msg = name + ': ' + _ ("command exited with value %d") % st
+               if ignore_error:
+                       warning (msg + ' ' + _ ("(ignored)") + ' ')
+               else:
+                       error (msg)
+
+       return st
+
+
+def cleanup_temp ():
+       if not keep_temp_dir_p:
+               if verbose_p:
+                       progress (_ ("Cleaning %s...") % temp_dir)
+               shutil.rmtree (temp_dir)
+
+
+def strip_extension (f, ext):
+       (p, e) = os.path.splitext (f)
+       if e == ext:
+               e = ''
+       return p + e
+
 
 
 notify = 0
 
 
 notify = 0
@@ -274,6 +437,7 @@ for opt in options:
                pass
        elif o == '--help' or o == '-h':
                help ()
                pass
        elif o == '--help' or o == '-h':
                help ()
+               sys.exit (0)
        elif o == '--buid-root' or o == '-b':
                build_root = a
        elif o == '--command' or o == '-c':
        elif o == '--buid-root' or o == '-b':
                build_root = a
        elif o == '--command' or o == '-c':
index b8d78cf76f178689d6ac4a1b00bb8a5482d790a7..eb2e55b1ab55b2e87d4659eadb287cee56c32b8f 100644 (file)
@@ -33,6 +33,12 @@ $(outdir)/%.pfb:
 
 
 
 
 
 
+
+
+$(outdir)/%.pfb: 
+       pktrace  $(basename $(@F))
+       mv $(basename $(@F)).pfb $(outdir)
+
 #%.afm:
 #      $(SHELL) $(depth)/buildscripts/tfmtoafm.sh $(shell basename $@ .afm)
 #      mv $@ $@.in
 #%.afm:
 #      $(SHELL) $(depth)/buildscripts/tfmtoafm.sh $(shell basename $@ .afm)
 #      mv $@ $@.in