--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@setfilename README-W32.info
+@settitle LilyPond on W32
+
+
+@node Top, , , (dir)
+
+@chapter LilyPond on W32
+
+FIXME: remove yodl refs.
+
+No, there's no reason to be concered, Lily should work in
+Windows-NT(/95/98?) too. The setup may not be easy or smooth. This
+document will help you getting started.
+
+
+@section DISCLAIMER
+
+If you have the Cygnus gnu-windows32 port of the GNU utils, LilyPond
+will work in Windows-NT (/95/98?).
+
+We still recommend you use Unix. In particular, use GNU/Linux: We've
+been there, and we've seen it happen several times. It is @strong{much}
+easier and quicker to install RedHat Linux and LilyPond than to
+obtain, compile and install all the necessary tools to compile and run
+LilyPond on Windows.
+
+``Ok, thanks for the suggestions. I can't run Linux or I don't want
+to run Unix. What can I expect?''
+
+@itemize @bullet
+@item LilyPond development is moving quite fast, and all developers use Unix.
+ Newly added features may require some attention to get them to work.
+@item LilyPond depends on a number of other packages that usually are
+ available on Unix boxes, but are not installed by default on Windows.
+@end itemize
+
+
+LilyPond will now install/extract in a unix-like tree:
+@example
+
+ usr/[local/]bin/
+ usr/[local/]share/lilypond/*
+
+@end example
+
+etc.
+
+Lily runs in a the unix-like Cygnus gnu-windows environment;
+hopefully Cygnus will adopt the @file{/usr/[local/]} tree too.
+
+@*
+If you really don't want usr/ in your root directory, but rather scatter
+your programs and packages all over your harddisk, do something like:
+@example
+
+ md lilypond
+ cd lilypond
+ unzip ../lilypond-0.1.77.exe.zip
+
+@end example
+
+and add @file{lilypond/usr/bin} to your @file{PATH} and
+@file{lilypond/usr/share/lilypond} to your @file{LILYINCLUDE}.
+
+
+If you've received a binary release of LilyPond (@file{.exe.zip}),
+you may skip the following sections.
+
+
+It can be done! Occasionally, the Cygnus b19.1 cross compiler and
+utilities under GNU/Linux are used to make the binary @file{.exe.zip}
+releases (some makefile hacking was needed to build this stuff). Jeffrey
+Reed tries to keep-up with LilyPond development, and is doing quite
+well. His latest release is available on
+@uref{http://home.austin.rr.com/jbr/jeff/lilypond/}.
+
+
+I have heard of such tools that think they're probably much smarter than the
+packager and thus decide for themselves that they don't need to unpack certain
+files (e.g., empty directories such as bin/out).
+
+To unpack the lilypond sources, you should do something like: @example
+
+ tar zxf releases/lilypond-x.y.z.tar.gz
+
+@end example
+
+
+If you're familiar with the GNU/Cygnus development package, you may skip
+this.
+
+Don't forget to set
+@example
+
+ /start/settings/control-panel/system/environment/system-variables:
+ GCC_EXEC_PREFIX=/Cygnus/b19/H-i386-cygwin32/lib/gcc-lib/
+ MAKE_MODE=UNIX
+
+@end example
+
+You want to run bash, while building Lily:
+@example
+
+ c:\bash
+ bash-2.01$
+
+@end example
+
+The install instructions mention something like:
+@example
+
+ configure
+ make
+ make install
+
+@end example
+
+Now for a small UNIX lesson: The current working directory (cwd) is
+by default not in your PATH, like it is under DOS (for security reasons).
+Check this by looking at the output of:
+@example
+
+ echo $PATH
+
+@end example
+
+The cwd looks like @code{'::'} or @code{':.'}. If it's not there, you may
+add the cwd to your path:
+@example
+
+ PATH=$PATH:.
+
+@end example
+
+or you must use './' when issuing a command in th cwd, try:
+@example
+
+ ./configure
+ make
+
+@end example
+
+My point of reference comes from 15 odd years working with a variety
+of @code{UNIX} platforms. I am relatively new to Windows-NT and, even
+though I am a card carrying @code{UNIX} bigot, I am excited about the
+NT OS. My goals for lilypond are to give back to the Free Software
+Foundation a little of what they have given me over the years and to
+contribute to the lilypond project by supporting a Windows-NT port. I
+hope that someday we can distribute and run lilypond on the NT OS in a
+much more native fashion.
+
+@itemize @bullet
+
+@item Building lilypond on Windows-NT
+@item Maintaining lilypond on Windows-NT
+@item Running lilypond on Windows-NT
+
+@end itemize
+
+
+Currently as stated above lilypond is primarily a @code{UNIX} thing.
+The Windows-NT port is based on the @code{UNIX} environment provided by
+@uref{http://www.cygnus.com,Cygnus}. Therefore the first step is to
+download and install the Cygnus development kit:
+
+@uref{http://www.cygnus.com/misc/gnu-win32/}
+
+Please follow the documentation Cygnus has on there web site for
+downloading and installing. The important part is that you down load
+the entire development kit. I believe it is @file{full.exe}. The
+installation will ask you where you want to install it. I will refer
+to Cygnus installation directory as @file{/gnuwin32/cygwin-b20}. There
+should be a @file{README} file that contains installation instructions.
+After the installation is complete you should have a @emph{Cygnus}
+shortcut in your @emph{Program} section of your @emph{Start Menu}. This
+shortcut is your door to the @code{UNIX} world and I will refer to the
+resulting window as a @file{bash} shell.
+
+The shortcut points to @file{/gnuwin32/cygwin-b20/cygnus.bat}. The
+following is my @file{cygnus.bat} file.
+
+@example
+
+@@ECHO OFF
+rem default environment
+
+rem GNU cygnus installation
+
+SET CYGREL=B19.1
+SET MAKE_MODE=unix
+SET LOCAL_ROOT=d:\gnuwin32
+SET LOCAL_FS=d:/gnuwin32
+SET LOCAL_DIR=d:/gnuwin32/cygwin-b20
+SET CYGROOT=%LOCAL_ROOT%\cygwin-b20
+SET CYGFS=%LOCAL_FS%/cygwin-b20
+SET TCL_LIBRARY=%CYGROOT%\share\tcl8.0
+rem
+rem This was not in the original but is needed by lots of packages
+rem
+SET BISON_SIMPLE=%CYGFS%/share/bison.simple
+
+rem
+rem I place the cygnus stuff in front of /WINNT
+rem
+
+SET PATH=d:\bin;%LOCAL_ROOT%\bin;%CYGROOT%\H-i586-cygwin32\bin;%PATH%
+SET MANPATH=%LOCAL_ROOT%\man;%LOCAL_ROOT%\cygwin-b20\full-man\man
+SET INFOPATH=%LOCAL_FS%/cygwin-b20/full-man/info;%LOCAL_FS%/cygwin-b20/info;%LOCAL_DIR%/info
+
+rem General tools not included with Cygnus Development Kit
+
+rem CVS
+
+SET PATH=%PATH%;%LOCAL_ROOT%\cvs-1.9.28\bin
+SET INFOPATH=%INFOPATH%;%LOCAL_FS%/cvs-1.9.28/info
+SET MANPATH=%MANPATH%;%LOCAL_ROOT%\cvs-1.9.28\man
+
+rem EMACS
+
+SET PATH=%PATH%;%LOCAL_ROOT%\emacs-19.34\bin
+SET INFOPATH=%INFOPATH%;%LOCAL_FS%/emacs-19.34/info
+
+rem VIM
+
+SET VIM=%LOCAL_ROOT%\vim-4.6\doc
+SET PATH=%PATH%;%LOCAL_ROOT%\vim-4.6
+
+rem TeX
+
+SET PATH=%PATH%;%LOCAL_ROOT%\texmf\miktex\bin
+
+rem a2ps
+
+SET PATH=%PATH%;%LOCAL_ROOT%\a2ps-4.10\bin
+SET INFOPATH=%INFOPATH%;%LOCAL_FS%/a2ps-4.10/info
+SET MANPATH=%MANPATH%;%LOCAL_ROOT%\a2ps-4.10\man
+
+rem python
+
+SET PATH=%PATH%;\Program Files\Python
+
+rem perl
+
+SET PATH=%PATH%;\qub
+
+rem yodl
+
+uname -sv
+bash -login
+
+@end example
+
+Please look over this carefully. Be careful with the forward and
+backward slash notations. The paths specified were done for good
+reasons. Maybe someday we will all be using @code{UNC}. Note the
+@code{BISON} entry and the @code{PATH} ordering in particular. Also note
+that the generic @file{cygnus.bat} you will be looking at does not
+include alot of the packages listed. We will be installing some of
+these.
+
+The installation also suggests that you create a directory @file{/bin}
+and copy @file{/gnuwin32/cygwin-b20/H-i586-cygwin32/bin/sh.exe} to
+@file{/bin}. The @file{sh.exe} shell provided by Cygnus is a descendant
+of the @file{ash} shell. The @file{sh.exe} shell has improved greatly
+and is much faster than the @file{bash} shell for script invocations.
+So this is my recommendation for post installation steps. From a
+@file{bash} shell:
+
+@itemize @bullet
+@item @code{cd /}
+@item @code{mkdir bin}
+@item @code{cd /bin}
+@item @code{cp /gnuwin32/cygwin-b20/H-i586-cygwin32/bin/sh.exe sh.exe}
+@item @code{cp /gnuwin32/cygwin-b20/H-i586-cygwin32/bin/bash.exe bash.exe}
+@item @code{cd /}
+@item @code{mkdir /tmp}
+@item @code{chmod a+rwx tmp}
+@item @code{mkdir /etc}
+@item @code{cd /etc}
+@item @code{mkpasswd -l > passwd}
+@item @code{mkgroup -l > group}
+@end itemize
+
+
+There is also some discussion of how you want to @emph{mount} the Cygnus
+development kit. @emph{mount} is a @code{UNIX} term that refers to the
+mechanism used to provide a disk resource to the filesystem. Cygnus
+supplies a mechinism for @emph{mounting} a filesystem as a @code{DOS} like
+resource or a @code{UNIX} like resource. Among other things this
+attempts to deal with the text file carriage return line feed on
+@code{DOS} versus the line feed on @code{UNIX} and the issue that @code{DOS}
+has two file types, text and binary. Where @code{UNIX} deals with a
+single streams type. My opinion on this matter currently is to use
+binary mounts only. This can be accomplished by:
+
+@itemize @bullet
+@item From a bash shell, umount /
+@item mount -b d: /
+@end itemize
+
+If you have other disks that you intend to use for data generated by
+cygnus tools you will have to mount those devices with the @emph{-b}
+switch.
+
+
+@uref{http://www.xraylith.wisc.edu/~khan/software/gnu-win32/egcs.html}
+
+Cygnus now distributes the ecgs compiler with cygwin-b20.
+
+
+@uref{http://www.gnu.org/order/ftp.html}
+
+Considering the origin of the major contributors of lilypond, this is a
+must. However before we actually do a @strong{GNU} build we have to
+discuss some caveats of the Windows-NT OS in particular the naming of
+executable files. @code{Windows-NT} uses a .exe extension where @code{UNIX}
+does not use an extension. This causes a problem during the
+installation portion of a @strong{GNU} build. The following script can be
+used to help alleviate this problem.
+
+@example
+
+#!/bin/sh
+
+realinstall=/gnuwin32/cygwin-b20/H-i586-cygwin32/bin/install.exe
+args=''
+while [ $# -ne 0 ]
+do
+ case $1 in
+ -*) args="$args $1"
+ ;;
+
+ *) if [ -f $1.exe ]; then
+ args="$args $1.exe"
+ else
+ args="$args $1"
+ fi
+ ;;
+ esac
+ shift
+done
+
+$realinstall $args
+
+@end example
+
+I place this in script @file{~/bin}. The LilyPond configure, build,
+and install process handles this with it's own install script. In
+addition there are patches to the cygnus install command that also
+deals with this problem. Having said that, here is how one
+might build the @emph{gettext} package.
+
+@itemize @bullet
+@item download the package from one of the ftp sites.
+@item From a bash shell, cd ~/usr/src.
+@item tar zxf gettext-0.10.tar.gz
+@item cd gettext-0.10
+@item ./configure --prefix=$CYGFS/H-i586-cygwin32
+@item make
+@item make install
+@end itemize
+
+
+@uref{http://www.gnu.org/order/ftp.html}
+
+Following the instructions for @emph{gettext} package to download, build,
+and install the @emph{groff} package.
+
+
+@uref{http://www.python.org}
+
+Python is the scripting language of choice for a lilypond build.
+There is a native @code{Windows-NT} self extracting binary distribution
+available. I recommend installing Python in a directory that does
+@strong{not} have spaces. And then place it in the bash shell path by
+editing $CYGFS/cygnus.bat.
+
+
+@uref{http://www.cpan.org}
+
+I believe perl is used in some legacy scripts to date. There is a
+native @code{Windows-NT} self extracting binary distribution available.
+I recommend installing Perl in a directory that does @strong{not} have
+spaces. And then place it in the bash shell path by editing
+$CYGFS/cygnus.bat.
+
+The development methodology of @emph{LilyPond} relies on a the following
+directory structure:
+
+
+@example
+
+$HOME/usr/src/
+ |-releases/
+ |-patches/
+ |-test/
+
+@end example
+
+@table @samp
+
+@item releases/ Downloaded and generated releases live here. For
+example @file{lilypond-1.1.17.tar.gz}.
+
+@item patches/ Downloaded and generated patches live here. For
+example @file{lilypond-1.1.17.diff.gz}.
+
+@item test/ This directory is used to generate releases and patches.
+
+@end table
+
+I strongly recommend using this file structure to build @emph{yodl} and
+@emph{lilypond}.
+
+@itemize @bullet
+@item download the package from
+@uref{http://www.xs4all.nl/~jantien/yodl/} to
+@file{$HOME/usr/src/releases}.
+@item From a bash shell, cd @file{$HOME/usr/src}.
+@item tar zxf releases/yodl-@emph{<version>}.tar.gz
+@item cd yodl-@emph{<version>}
+@item ./configure --prefix=/gnuwin32/yodl-@emph{<version>} --srcdir=.
+Since @emph{yodl} is under development I choose to install it in a
+version rooted directory. This allows me to test newly released
+versions without losing a known working version.
+
+@item make
+@item make install
+@item place it in the bash shell path by editing $CYGFS/cygnus.bat.
+For example:
+@example
+rem yodl
+
+SET PATH=%PATH%;%LOCAL_ROOT%\yodl-1.31.7\bin
+
+
+@end example
+
+@end itemize
+
+
+
+GUILE, GNU's Ubiquitous Intelligent Language for Extension, is a
+library that implements the Scheme language plus various convenient
+facilities. It's designed so that you can link it into an application
+or utility to make it extensible. GNU's plan is to link this library
+into all GNU programs that call for extensibility.
+
+@itemize @bullet
+@item download guile-1.3 patch from
+@uref{http://home.austin.rr.com/jbr/jeff/lilypond/guile.patch} and save it
+to @file{/tmp/guile.patch}.
+@item download guile-1.3 from one of GNU's ftp sites.
+@item From a bash shell, tar zxf guile-1.3.tar.gz
+@item cd guile-1.3
+@item patch -p2 < /tmp/guile.patch
+@item LD=/gnuwin32/cygwin-b20/H-i586-cygwin32/bin/ld \ @*
+ ./configure --prefix=$CYGFS/H-i586-cygwin32
+@item make sure bin_PROGRAMS macro in libguile/Makefile does @emph{not} have the
+.exe extension during the build
+@item make
+@item make sure bin_PROGRAMS in libguile/Makefile @emph{does} have the
+.exe extension during the install. Yuck.
+@item make install
+@end itemize
+
+
+@itemize @bullet
+@item download the package from
+@uref{http://www.cs.uu.nl/people/hanwen/lilypond/} to
+@file{$HOME/usr/src/releases}.
+@item From a bash shell, cd @file{$HOME/usr/src}.
+@item tar zxf releases/lilypond-@emph{<version>}.tar.gz
+@item cd lilypond-@emph{<version>}
+@item ./configure --prefix=/gnuwin32/lilypond-@emph{<version>} \ @*
+ --srcdir=. @*
+Since @emph{lilypond} is under development I choose to install it in a
+version rooted directory. This allows me to test newly released
+versions without losing a known working version.
+@item make
+@item make install
+@item place it in the bash shell path by editing $CYGFS/cygnus.bat.
+For example:
+@example
+rem lilypond
+
+SET PATH=%PATH%;%LOCAL_ROOT%\lilypond-1.1.17\bin
+
+
+@end example
+
+@end itemize
+
+
+If you have built @emph{lilypond} on @code{Windows-NT} using the directory
+ and the process described
+in section FIXME, then you are ready to maintain
+@emph{lilypond}. It can not be that easy!? Well, there is one caveat.
+Currently to use the @file{stepmake/bin/release.py} and
+@file{stepmake/bin/package-diff.py} scripts you need to obtain/build a
+version of @emph{python} that was built with @strong{Cygnus} development kit.
+The process I used is as follows:
+
+@itemize @bullet
+@item obtain python source from @uref{http://www.python.org}
+@item tar zxf /tmp/python-@emph{<version>}.tar.gz
+@item cd python-@emph{<version>}
+@item configure --prefix=/gnuwin32/Python-@emph{<version>}
+@item edit toplevel @file{Makefile} @code{EXE} macro so it reads @code{EXE=.exe}
+@item make
+@item make install
+@item place it in the bash shell path by editing $CYGFS/cygnus.bat.
+For example:
+@example
+rem python
+
+SET PATH=%PATH%;%LOCAL_ROOT%\python-1.5.1\bin
+
+
+@end example
+
+@end itemize
+
+I choose to build @emph{lilypond} with the standard @code{Windows-NT}
+@emph{python} and use the @strong{Cygnus} version for using the release
+scripts. This way I can make sure the @code{Windows-NT} @emph{python}
+version is able to build @emph{lilypond}. Currently there are several
+issues with the release scripts. Using @code{os.link} and
+@code{os.system(set -x;...)} are to name a few.
+
+To generate a new release and patch you must use the directory
+. And follow the
+instructions found in @file{PATCH.txt}. Editing
+@file{Documentation/AUTHORS.yo}, @file{VERSION}, and @file{NEWS} is also
+required. When my edits are complete and tested I:
+
+@itemize @bullet
+@item Edit @file{config.make} and change @emph{python} path to the
+@strong{Cygnus} version: @code{PYTHON=/gnuwin32/Python-1.5.1/bin/python}.
+@item make release
+@end itemize
+
+The new release is placed in @file{releases} directory and the patch is
+placed in the @file{patches} directory. I email the new patch to
+@email{gnu-music-discuss@@gnu.org}. More than one patch a day can be
+generated by:
+
+@itemize @bullet
+@item cd $HOME/usr/src
+@item tar zxf releases/lilypond-@emph{<version>}.@emph{<patchlevel>}
+@item use your normal configure
+@item make edits
+@item Change @file{VERSION} to increment @emph{<patchlevel>}
+@item Change @file{NEWS}
+@item make release
+@end itemize
+
+
+We are now distributing a formated binary distribution for
+Windows-NT. Please refer to
+@uref{http://home.austin.rr.com/jbr/jeff/lilypond/} for current news,
+download, installation, and running information.
+
+Jeffrey B. Reed @email{daboys@@austin.rr.com}
+
+@section RUNNING LILYPOND -- by Dominique Cretel
+
+You may want to refer to section FIXME, for more current
+information about downloading, installing, and running the Windows-NT
+binary distribution.
+
+@enumerate i
+@item First, I have download tha 0.1.64 version of LilyPond music software.
+
+@item Then I extract it in a temp directory, and I move the directory
+"lilypond-0.1.64" to the root directory of my D drive.
+
+@item I go to the D:\Lilypond-0.1.64\tex directory to modify the
+lilyponddefs.tex file (lines 75 and 84), and comment all
+cmbx15 ans cmbx14, and replace them by cmbx12.
+
+@item build a command file like this:
+Note: I use MiKTeX to process the tex file generated.
+
+@example
+
+---begin ly2dvi.bat
+echo off
+set ver=0.1.64
+set path=%path%;d:\lilypond-%ver%\bin
+lilypond -I d:\lilypond-%ver%\init %1
+rem *** pause
+
+set path=c:\texmf\miktex\bin;%path%
+set TEXINPUTS=%TEXINPUTS%;d:\lilypond-%ver%\tex
+set MFINPUTS=%MFINPUTS%;d:\lilypond-%ver%\mf
+tex %1.tex
+rem *** pause
+
+dvips %1.dvi
+rem *** pause
+
+set path=%path%;d:\gstools\gsview
+gsview32 %1.ps
+---end ly2dvi.bat
+
+@end example
+
+@item execute lilypond by doing:
+@example
+
+ly2ps silly <Enter>
+
+@end example
+
+@end enumerate
+
+Note:
+@*
+You'll better have to put the SET commands lines in a separate command
+file to avoid consumming each time environnment ressources.
+
+Bye,@*
+Dominique Cretel @email{dominique.cretel@@cfwb.be}
+
+@section PROBLEMS AND ANWSWERS
+
+This is all to confusing. I have:
+@enumerate i
+@item downloaded @file{/tmp/lilypond-0.1.78.tar.gz}
+@item @example
+
+ cd ~/usr/src
+
+@end example
+
+@item @example
+
+ tar zxf /tmp/lilypond-0.1.78.tar.gz
+
+@end example
+
+@item @example
+
+ ./configure --prefix=/users/jeff/lilypond-0.1.78 \--enable-tex-prefix=/users/jeff/lilypond-0.1.78/texmf \--enable-tex-dir=/users/jeff/lilypond-0.1.78/texmf/tex \--enable-mf-dir=/users/jeff/lilypond-0.1.78/texmf/mf
+
+@end example
+
+@item @example
+
+ make
+
+@end example
+
+@item @example
+
+ make install
+
+@end example
+
+@end enumerate
+
+I did have a problem with lilypond.info. And I will look into this
+further. After mending lilypond.info issue, it compiled and install
+with no problems.
+
+I have 64 Meg of physical memory and 64 Meg of swap. Actually I need
+to increase the swap space. If a memory problem is occuring it most
+likely is during the link process of lilypond. There is a boat load
+of objects to link.
+
+Jan the mount -b stuff is confussing to me. I have the entire system
+mounted _without_ -b and only use -b on certain paths for programs
+that create binary files that do not use O_BINARY open option. By the
+way the midi file open is one of these cases, I need to look into
+that. I have had no problems with this methodology.
+
+
+The windows multiroot filesystem is an utterly broken concept. Please
+do everything on one (urg) drive, C:.
+
+@example
+
+> configure
+> creating cache ./config.cache
+> [..]
+> creating config.make
+> creating config.hh
+> cd: lstat /d failed
+
+@end example
+
+Ok, this looks like another stupid windows problem.
+You're working on 'drive D:', right?
+
+I can think of some solutions, but i don't know if they work;
+i just had to do some work in windows some time ago. If you
+have problems with this, please ask @email{gnu-win32@@cygnus.com}.
+I'll start with the simplest:
+@itemize @bullet
+ @item do everything on drive C:, or
+ @item explicitely mount drive d:, work from there:
+ @example
+
+ mkdir -p /mnt/d
+ mount d: /mnt/d
+ cd /mnt/d/lilypond-x.y.z/
+
+@end example
+
+ @item make d:/ the root of cygnus, in cmd.exe/command.exe do:
+ @example
+
+ umount /
+ mount d: /
+
+@end example
+
+@end itemize
+
+
+> - First I have installed Python (for win32) "Pyth151.exe" and "Configure
+@*
+> don't find it. I had to put it in the path for configure find it?
+@*
+
+Yes, of course. It should be possible to have different versions of tools
+installed (e.g. perl 4 and perl 5). The best way to tell people (or tools
+like configure) which one to use is to put it in the path?
+
+Another small unix lesson: Where under dos each program installs itself
+into a nice directory
+@example
+
+ c:\DosProgram\*
+
+@end example
+
+under unix, installation is handled centrally. Executables go in
+@file{/usr/bin} (or @file{/usr/local/bin}), and are always in your path.
+
+
+@example
+
+> 4. make -C lily don't work. I get an error (see below). I get several
+> object files in the ./lily/out directory (34 files: 17 *.dep, 16 *.o,
+> and 1 *.hh):
+> [...]
+> include/engraver-group.hh:35: virtual memory exhausted
+> make: *** [out/bar-grav.o] Error 1
+> bash-2.01$
+
+
+@end example
+
+Ok, so everything works now, there's only some error with one of the
+source files. Lets see which one (and now the cc's now why they're
+reading this :-)
+
+It looks like you've run out of memory. You should compile without
+optimisation, gcc/egcs need a lot of memory for optimising.
+Reconfigure without optimisation:
+@example
+
+ configure --disable-optimise
+
+@end example
+
+or edit @file{config.make}:
+@example
+
+ ## USER_CXXFLAGS = -g # -O no optimise!
+ USER_CXXFLAGS = -g
+
+@end example
+
+There are some other things to look at: how much RAM do you have
+(please say something > 8Mb :-)? Although it might be an egcs bug,
+you should have a look at the size of your swap file.
+For an US version of windows, you should find it here:
+@example
+
+ /start/settings/control-panel/system/performance/virtual-memory
+
+@end example
+
+you see, amongst others, these entries:
+@example
+
+ paging file size for selected drive:
+
+ space-available: xx
+ initial-size: xx
+ maximum-size: xx
+
+ total paging file size for all drives
+
+ currently allocated: xx
+
+@end example
+
+Try to set:
+@example
+
+ initial-size: 64
+ maximum-size: 128
+
+@end example
+
+Make sure that:
+@itemize @bullet
+@item maximum-size >= 128 Mb
+@item urrently-allocated + space-available >= 128 Mb
+@end itemize
+
+
+@bye
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@setfilename faq.info
+@settitle FAQ - GNU LilyPond FAQs
+
+@node Top, , Windows32, (dir)
+@top
+@menu
+* FAQ - GNU LilyPond FAQs:: FAQ - GNU LilyPond FAQs
+@end menu
+
+
+
+@node FAQ - GNU LilyPond FAQs, Miscellaneous, , Top
+@menu
+* Miscellaneous:: Miscellaneous
+* Installing:: Installing
+* Documentation:: Documentation
+* Language- mudela:: Language- mudela
+* Do you support -:: Do you support -
+* How do I -:: How do I -
+* Development:: Development
+* Running:: Running
+* Copyright:: Copyright
+* Windows32:: Windows32
+@end menu
+@chapter FAQ - GNU LilyPond FAQs
+
+
+@node Miscellaneous, Installing, FAQ - GNU LilyPond FAQs, FAQ - GNU LilyPond FAQs
+@section Miscellaneous
+
+@subsubsection HELP! I'm stuck!
+
+Please read this document carefully. If you are still at loss,
+send your subsubsections to the @strong{mailing list}, and not to authors
+directly.
+
+Note: relative paths are meant to be relative to the source directory
+
+@node Installing, Documentation, Miscellaneous, FAQ - GNU LilyPond FAQs
+@section Installing
+
+@subsubsection If I install the .exe file on my DOS/windows 3.11 machine, it doesn't work
+
+The DOS port is done with the cygnus gnu/windows32 port of the GNU utils.
+It does @emph{not} work with windows 3.x; you need Windows-NT (95/98?). This
+is not a recommendation, however. We recommend you use Unix, in
+particular, use GNU/Linux. For further information see @file{README-W32}.
+
+@subsubsection Where is guile-config
+
+RedHat RPMS don't include guile-config. You need guile-config as it
+was produced during the RPM build run. Build the RPM from source
+(@file{.src.rpm}), and use the guile-config that is in
+@file{/usr/src/redhat/BUILD/guile-1.3/guile-config/}.
+
+@subsubsection I get all kinds of errors while compiling @file{parser.cc}
+
+LilyPond uses features of bison version 1.25. Please confirm that
+you are using a version 1.25 or better, that is @strong{GNU} bison
+@strong{1.25}. Don't forget to do "make clean" after installing it. Don't
+forget to remove the stale @file{bison.simple} as well.
+
+If the problem persists, then please send a bug report to the mailing list.
+
+@subsubsection I upgraded by applying a patch, and now my configure/build breaks.
+
+Patches don't include automatically generated files, i.e.
+@file{configure} and files generated by @file{configure}. Regenerate them
+yourself:
+@example
+
+ autoconf
+ configure
+
+@end example
+
+You might need to create some extra "out" directories. Do this with
+@example
+
+ make out-wwws
+
+@end example
+
+@subsubsection Some of your neat scripts fail, what directories do you use:
+
+[This only applies if you don't do @code{make install}, and develop out
+of the source directory]
+
+I have a directory which contains all our development projects
+@example
+
+ ~/usr/
+
+@end example
+
+which looks like @file{/usr/}
+@example
+
+ bin/
+ share
+ lib/
+ share/
+ src/
+
+ etc....
+
+@end example
+
+
+)
+
+~/usr/src/bin is in the PATH, and contains symbolic links to the
+compiled executables.
+
+@subsubsection Is there an emacs mode?
+
+Yes. It is included with the source archive as mudela-mode.el. If
+you have an rpm it is in /usr/doc/lilypond-X/. You have to install it
+yourself.
+
+@subsubsection How do i create the @file{.tfm} files?
+
+You don't. The @file{.tfm} files should be generated automatically by
+Metafont when you run TeX. Check your TeX installation, or ask
+your local TeX guru. The supplied @file{.afm} files are intended to
+be used by LilyPond, not by any other programs.
+
+@node Documentation, Language- mudela, Installing, FAQ - GNU LilyPond FAQs
+@section Documentation
+
+@subsubsection Why is the documentation/website/etc. so lousy?
+
+LilyPond development is moving quite fast, documentation will often
+lag a bit behind. We must always make a choice between writing more
+doco, writing more code and answering email.
+
+If you think you can make a correction, or devised a solution that
+should be documented, please do so and send in a patch.
+
+@node Language- mudela, Do you support -, Documentation, FAQ - GNU LilyPond FAQs
+@section Language: mudela
+
+@subsubsection Why can't you type @code{#c} in stead of @code{cis} ?
+
+We think that @code{#c} looks as if you are entering the symbols to
+print (which you are not; remember, you're entering the musical
+content in Mudela)
+
+@subsubsection Why do I have to type the accidentals to the note if I specified them?
+
+Take this example
+@example
+
+ cis cis
+
+@end example
+
+Independently of how it was written and what the current key was, you
+would say that you are playing and reading "two C-sharp" notes. We
+have tried to make the language somewhat context-free. Of course
+sheet music is not context-free. Unfortunately, sheet music is also 2
+dimensional, and ASCII is not.
+
+Technically it would be feasible to have the Interpreting phase do
+tricky things to add (or leave out) the accidentals, but we think that
+it is impractical: it hampers the readability and portability of your
+source, since you need LilyPond to fill in the details and actually
+make sense of it.
+
+@subsubsection What is @code{cis} anyway
+
+@code{cis} is the dutch naming for C-sharp. The notes are named
+a, b,.., g. The suffix -is means sharp, and -es flat. This system is
+common in a number of languages (such as swedish, dutch, german.)
+Certain other languages (such as English, French and Italian) just add
+the word for "sharp" to the notename.
+
+We chose the Dutch system, because we're dutch. You are free to chose
+whatever names you like; they are user definable.
+
+@subsubsection Why are [] around the notes, and () inbetween?
+
+[] designate beams, a note can only be in one beam at the same
+time. () is a slur, which connects notes. You need to be able to
+specify
+@example
+
+ a()a()a
+
+@end example
+
+@subsubsection I want to insert some TeX commands.
+
+You shouldn't: it's against LilyPond philosophy to have typesetting
+commands in the mudela source. Moreover, this would be difficult.
+LilyPond uses TeX like a glorified output engine: the output consists
+of (x,y) positions and symbols. You can only sensibly do TeX stuff in
+the symbol string. You can access the symbol string easily for some
+symbols (notably lyrics and @code{^"text"} commands).
+
+@node Do you support -, How do I -, Language- mudela, FAQ - GNU LilyPond FAQs
+@section Do you support ...
+
+@subsubsection Do you support pop songs (chords, single staff, lyrics)?
+
+Yes, see the @file{twinkle-pop} example.
+
+@subsubsection Do you support guitar chord diagrams?
+
+No. Go ahead and send a patch.
+
+We ourselves don't play guitar, and don't know the fine points of this
+notation. We would welcome anyone who could give this a try.
+
+@subsubsection Do you support TAB notation?
+
+No. The same as for the previous subsubsection goes, but TAB is a lot
+more work than diagrams (TAB needs modification of Parser, Lexer,
+Staff, Notehead, Stem code and all the code that creates these graphic
+elements.)
+
+@subsubsection Do you support multiple staff-sizes?
+
+Yes. At this time you can choose between 11, 13, 16, 19, 20, 23 and
+20 pt staff-size. Use the staffLineLeading property for setting the
+size of the staff, and fontSize for setting the size of the glyphs.
+
+@subsubsection Do you support Gregorian chant notation?
+
+No. Go ahead.
+
+@subsubsection Do you support grace notes?
+
+Yes. See @file{input/test/grace.ly}
+
+@node How do I -, Development, Do you support -, FAQ - GNU LilyPond FAQs
+@section How do I ....
+
+@subsubsection How do I change the TeX layout?
+
+See @file{lilyponddefs.tex}, it has some comments. Or use @file{ly2dvi}.
+
+subsubsection(How do I place lyrics under @emph{each} of the staves in a score, as choral music. I can work out how to put lyrics for each line all under the top line, or at the bottom but not between!)
+
+You change the order lyrics and staves. You have to name all
+staves (lyric and melodic), otherwise they will end up in the same
+staff/lyricline
+@example
+
+ \score @{
+ < \melodic \type Staff = "treble" \trebleMelody
+ \lyric \type Lyrics = "tlyrics" \trebtext
+ \type Staff = "bass" \melodic \bassMelody
+ \lyric \type Lyrics = "blyrics" \basstext
+ >
+ \paper @{ @}
+ @}
+
+@end example
+
+@subsubsection How do I put more than one marking on a note.
+
+You can stack them
+@example
+
+ c4^"a"^"b"
+
+@end example
+
+or use spacing-notes to put markings at different horizontal positions
+@example
+
+ < c1
+ @{ s4\ff s4^"text" s4-\marcato s4 @}
+ >
+
+@end example
+
+This also works for crescendi, eg,
+@example
+
+ < c1
+ @{ s4\< s2 \! s4 @}
+ >
+
+@end example
+
+@subsubsection How do I combine multiple pieces into one document
+
+There are several solutions:
+
+@itemize @bullet
+@item
+@example
+
+ ly2dvi foo.ly bar.ly
+
+@end example
+
+produces one combined @file{foo.dvi}
+@item make a toplevel @file{.ly} file that contains al pieces:
+@example
+
+ % booklet.ly
+ \input "piece-1.ly"
+ \input "piece-2.ly"
+ \input "piece-3.ly"
+
+@end example
+
+@item make a hybrid TeX/LilyPond @file{.doc} document (see the
+ @file{Documentation/tex} directory).
+@end itemize
+
+For the first two solutions, you will need to move @code{\header} info
+in each individual piece from toplevel into the @code{\paper} block.
+
+There are several examples in the @file{mutopia} directory.
+
+@subsubsection How do I get bar numbers?
+
+See @file{input/test/bar-scripts.ly}.
+
+@subsubsection How do I change the tagline 'Lily was here'
+
+In the @code{\header} field, add a @code{tagline} entry, eg
+@example
+
+tagline="Typeset by GNU LilyPond"
+
+@end example
+
+to get a bit less frivolous tagging.
+
+@node Development, Running, How do I -, FAQ - GNU LilyPond FAQs
+@section Development
+
+subsubsection(Could you implement feature XXXX? It is really easy, just extend the syntax to allow YYYY!)
+
+If it is reasonable, I'll add XXXX to the TODO list. In general
+finding a cute syntax (such as YYYY) isn't very hard. The complicated
+issue how to adapt the internals to do XXXX. The parser is really a
+simple front end to the complicated internals.
+
+@subsubsection Can I join in on LilyPond development? How do I do this?
+
+LilyPond development is open for anyone who wants to join. We try
+to use a Bazaar style development model for LilyPond, see
+@uref{http://locke.ccil.org/~esr/writings/cathedral.html.} This means:
+frequent releases, everyone can send in a patch or do suggestions and
+all development discussions are public.
+
+To be precise, discussions take place on the gnu-music-discuss mailing
+list, which is open for subscription to everyone.
+
+@subsubsection I want to implement XXXX! Should I do this?
+
+There might be better ways of doing XXXX, so it's a good thing to
+ask about this before you start hacking. If you want to keep in touch
+with current developments, you should subscribe to the mailing list
+(see the "links" section of the documentation).
+
+@subsubsection Is there a GUI frontend? Should I start building one?
+
+LilyPond currently has no graphical interface. The authors seriously
+doubt if a simple-minded approach (dragging and dropping notes) is any
+easier or quicker to use than mudela. But for composing a graphical
+environment probably is indispensable.
+
+In any case @email{Derek Wyatt}(wyatt@@scar.utoronto.edu) is working on
+GTK based editor, but that effort practically died. (see
+@uref{http://harmonia.scar.utoronto.ca}.
+
+Matthew Hiller is working on extending Midiscore and Koobase to handle
+mudela. Check out @uref{http://zoo.cs.yale.edu/~meh25/}.
+
+There is also a GUI package RoseGarden that could be extended to
+output mudela.
+
+If you want to work on this, please send e-mail to the mailing list
+@email{gnu-music-discuss@@gnu.org}.
+
+
+@subsubsection I want to implement XXXX! How should I do this?
+
+Your best bet of getting us to include code, is to present it as a
+"fait accompli", i.e., to send a patch to the mailing list.
+
+@subsubsection I made some code, how do I get you to include it?
+
+Send in a patch:
+@example
+
+ diff -urN old-file new-file > patch
+
+@end example
+
+or
+@example
+
+ diff -urN old-directory/ new-directory/ > patch
+
+@end example
+
+Alternatively, you can use issue the command
+@example
+
+ make diff
+
+@end example
+
+Don't forget to put your name and e-mail address
+in the @file{AUTHORS.pod} file, or you won't get credits :-]
+
+@emph{Please} always send a @strong{-u} diff, even if it is larger than the
+whole file.
+
+@subsubsection How do I learn the C++ code?
+
+The entry point is in @code{main()}. Good luck. :-)
+
+Seriously, read, reread and reread internals and CodingStyle, and
+just start anywhere.
+
+Anywhere? Well, most of the comment doco are in the header files, so
+your best bet would be @code{less lily/include/*.hh}.
+
+You should also have a look using Javadoc like tools. Try
+DOC++, @uref{http://www.imaginator.com/doc++}
+
+@subsubsection Why GPL?
+
+No comment.
+
+
+@subsubsection Your make system does not adhere to GNU coding standards, could you please fix it?
+
+No. We have evaluated the standard GNU combination for compiling
+programs (autoconf, automake, libtool) and found to be inadequate in
+several respects. More detailed argumentation is included with
+LilyPond's generic make package @code{StepMake}
+(see @file{stepmake-x.x.x/Documentation/automake.urgh})
+
+LilyPond already compiles into a different directory ((the different
+directory is called out/, there is one in every source directory).
+make distclean essentially reduces to @file{rm -f out/*} in every directory
+
+@subsubsection gdb crashes when I debug!
+
+Upgrade to 4.17.
+
+@subsubsection Why do I need g++ >= 2.8 / EGCS-1.1 ?
+
+Supporting more compilers than EGCS/G++ 2.8 is unlikely to make
+LilyPond run on more platforms. It would give us an enormous headache
+in detecting and catering for every variant of every compiler: not
+having to support other compilers saves us a @emph{lot} of trouble.
+
+@node Running, Copyright, Development, FAQ - GNU LilyPond FAQs
+@section Running
+
+@subsubsection I use dvilj4, and there are lots of warning messages for the printing
+
+You should use dvips and ghostscript to print the @code{dvi} output:
+the slurs and beams are PS @code{\special} commands.
+
+
+subsubsection(My symbols are all messed up after I upgraded, I get the wrong symbols and dvi-checksum errors!)
+
+We obviously mucked with the fonts in the upgrade. Remove @emph{all}
+previous fonts, including the @file{.pk} and @file{.tfm} fonts in
+@file{/var/lib/texmf}. A script automating this has been included, see
+@file{buildscripts/clean-fonts.sh}.
+
+@subsubsection all the pk and tfm fonts are created in the directory where the mudela file is, not in "/var/spool/texmf" where I think they should be.
+
+Mats Bengtsson <mats.bengtsson@@s3.kth.se> writes:
+
+The simple solution used by Anthony Fok in the Debian distribution of
+Lilypond is to link the mf/ directory to
+/usr/lib/texmf/fonts/source/public/lilypond Depending on what
+distribution of teTeX and Linux you have installed, there might also
+be other places like /usr/local/lib/texmf/fonts/source/public/lilypond
+or /var/spool/texmf//fonts/source/public/lilypond
+
+Wherever you put it, don't forget to run mktexlsr (or texhash for
+older installations) afterwards, so that TeX will find the files.
+Also, don't forget to remove all old .tfm and .*pk files when the font
+is updated (as it will be in version 1.1.40, for example).
+
+@subsubsection Are there scalable versions of the font?
+
+Yes, they are type-3 fonts. In the @file{mf/}
+subdirectory, issue:
+@example
+
+ make pfa
+
+@end example
+ in the mf/ subdirectory. This will also make @file{mfplain} for metapost.
+The @file{pfa}s will be in the subdirectory @file{out/}.
+
+@subsubsection How does PS output work?
+
+@itemize @bullet
+ @item
+Generate the PostScript Type-3 fonts.
+@item
+Run lilypond with option @code{-f ps}:
+@example
+
+ lilypond -fps foo.ly
+
+@end example
+
+@item To view the @file{.ps} output with GhostView, set GS_FONTPATH to the
+directory containing the @file{pfa}s. In the source tree, this is @file{mf/out/}.
+
+i.e. do something like:
+@example
+
+ export GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
+ gv foo.ps &
+
+@end example
+
+@end itemize
+
+Direct PS output is still experimental. For creating nice looking ps
+output, use TeX and @code{dvips}.
+
+
+@subsubsection The beams and slurs are gone if use the XDvi magnifying glass!?
+
+The beams and slurs are done in PostScript. XDvi doesn't show
+PostScript in the magnifying glass. Complain to the XDvi maintainers.
+
+@subsubsection I don't get midi-output, even if I use @strong{-M}!
+
+Your \score should include a \midi block, eg.
+@example
+
+ \score @{
+ \melodic @{ c4 c g g @}
+ \paper @{@}
+ \midi @{
+ output = "myfile.midi";
+ \tempo 4=70;
+ @}
+ @}
+
+@end example
+
+The @strong{-M} option was added to LilyPond because processing the \paper
+block is so slow.
+
+subsubsection(A lot of musical stuff doesn't make it to the MIDI file, eg. dynamics, articulation, etc.)
+
+The MIDI output was originally put in as a proof that MIDI could be
+done, and as a method of proof"reading" the input. The MIDI support
+is by no means finished. Patches appreciated.
+
+@node Copyright, Windows32, Running, FAQ - GNU LilyPond FAQs
+@section Copyright
+
+@subsubsection What is Urtext? Critical Edition?
+
+Werner Lemberg:
+
+It may be translated best as `that what the composer intended to tell
+the reader'
+
+Peter Chubb <peterc@@aurema.com> writes:
+
+An Urtext is a reconstruction of the earliest form of a text,
+including mistakes the original author wrote. Where there is no
+available facsimile of the original, creating this can involve some
+inspired detective work (in comparing various later editions and
+trying to deduce what the original form was). As far as copyright
+goes, my guess is that, for works that are otherwise out of copyright,
+an Urtext is copyright to the person who reconstructed it, as a
+derived work from the editions s/he consulted. If the edition is
+created directly from a facsimile, as would be the case for most
+Urtext editions of music, then the amount of new (copyright) material
+is minimal.
+
+A critical edition is an edition that is designed for critical
+study of a text. It'll usually have lots of footnotes, alternative
+readings, possible realisations of bass parts and harmonies, etc. It
+aims to elucidate the author's original intentions, as opposed to
+reproduce exactly what was written. The critical apparatus will be
+copyright to its author.
+
+A playing edition is one that has been edited for modern usage.
+It'll have fewer or no alternative readings, it'll be in modern
+notation, it may have additional editorial marks (phrase marks, slurs,
+etc.) will often have a fully realised basso continuo part (if oone
+was present in the original) and may have had key changes, time
+signature changes, time compression (original in 4/1, playing edition
+in 4/4, for example, with all semibreves replaced with crotchets)
+Copyright is in the arranger/editor.
+
+subsubsection(How does copyright for sheet music work? Can I enter and spread my newly bought Bach urtext?)
+
+Silas S. Brown <ssb22@@hermes.cam.ac.uk>:
+
+There are several aspects to sheet music copyright:
+
+1. The music itself - copyright for the composer's life plus 70 years (so
+not applicable to Bach).
+
+2. If the music is an arrangement, then the arranger holds copyright on
+that arrangement. However, you can produce your own arrangement using
+that arrangement as a reference point. Obviously your arrangement must be
+sufficently different to be called your own arrangement - you need to do
+more than change one note!
+
+3. In some countries, the same applies for editions. This could be
+relevant to the Bach example. If a modern person has edited the music,
+then they hold the copyright on the edition. This does not stop you from
+removing the editorial features - remove all editorial slurs, phrasemarks,
+ornaments etc and only leave those that you know to be original. You can
+then add some of your own if you want to be your own editor.
+
+4. If there are lyrics, then the lyricist also holds copyright. This
+does not stop you from using the music without the lyrics if it is
+otherwise out of copyright.
+
+5. The copyright of the printed page is held by the publisher for 30
+years after printing (25 in some countries). This stops you from
+photocopying (unless it's "fair use" eg. you're partially sighted and need
+to enlarge the music) or otherwise reproducing the typesetting that is
+used on it. But the copyright is only held over the typesetting work, not
+the music itself. Since Mudela specifies the notes, independently of any
+typesetting work that went into your reference copy, you are not
+duplicating any of the publisher's work.
+
+6. If you want to violate copyright, there are two main cases where you
+may do so: fair use, and with permission. The former is rather fuzzily
+defined, but it includes such things as including small extracts of a
+score in a critique, and making a large print or Braille copy for a blind
+or partially-sighted performer (many people argue that in this case it
+should always be kept with the original copy and/or destroyed after it is
+no longer needed). The latter is obvious: You can always write to the
+composer, arranger, editor, lyricist or publisher in subsubsection and ask if
+you can do whatever it is you're trying to do. Some will respond more
+readily than others, but anything that they say will override any copying
+restrictions imposed on you.
+
+References - best one I know is the UK-based Performing Right Society,
+@uref{http://www.prs.co.uk/} (especially "membership") and their links to other
+international equivalents.
+
+
+Juergen Reuter <reuterj@@ira.uka.de>:
+
+[More information can be had at: ]
+
+@uref{http://lcweb.loc.gov/copyright/}
+(USA copyright law)
+
+@uref{http://fairuse.stanford.edu/}
+(meta site about copyright with many links to other resources)
+
+@uref{http://host.mpa.org/crc.html}
+(copyright from the viewpoint of the USA music publishers' association)
+
+@uref{http://www.wipo.int}
+(World Intellectual Property Organization (a UNO agency); with
+information about international copyright)
+
+John Sankey:
+
+See @uref{http://www.geocities.com/Vienna/Studio/1714/harpsichord.html}
+for a summary of copyright relative to old music, also for the
+expert forum for such subsubsections.
+
+Werner Lemberg <sx0005@@sx2.HRZ.Uni-Dortmund.DE>:
+
+This is not correct. Urtext editions per se are @emph{not} copyrighted
+-- if you print exactly what the composer has written, how can there
+some copyright be added? Copyrighted are usually only the `Critical
+notes', the foreword, and the cadenzas some editors have added.
+
+This means that the `Photocopying forbidden' sign in many scores is
+not always correct for e.g. J.S. Bach -- you are allowed to copy the
+pages which don't contain editorial stuff which is probably
+copyrighted.
+
+A very unfortunate situation for the publishers.
+
+
+@node Windows32, Top, Copyright, FAQ - GNU LilyPond FAQs
+@section Windows32
+
+@subsubsection I downloaded the windows32 port, and it doesn't match the website!
+
+The website is usually made from the latest snapshots. Binary releases,
+in particular the windows32 binaries, are only made every once in a while.
+They may lag several versions behind the latest version.
+
+@subsubsection But i want a native DOS/Windows-NT/95 port
+
+Reconsider. Try Linux. It's fun!
+
+@bye
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@setfilename links.info
+@settitle links - Links to other related websites
+
+@node Top, , Backlinks, (dir)
+@top
+@menu
+* links - Links to other related websites::links - Links to other related websites
+@end menu
+
+
+
+@node links - Links to other related websites, Description, , Top
+@menu
+* Description:: Description
+* Www:: Www
+* Ftp:: Ftp
+* News:: News
+* Mailing lists:: Mailing lists
+* mail-yo:: mail-yo
+* Backlinks:: Backlinks
+@end menu
+@chapter links - Links to other related websites
+
+
+@node Description, Www, links - Links to other related websites, links - Links to other related websites
+@section Description
+
+This page contains links to organisations and ftp-sites, which may be
+of interest to LilyPond users.
+
+@node Www, Ftp, Description, links - Links to other related websites
+@section Www
+
+@unnumberedsubsec LilyPond
+
+@table @samp
+@item @uref{http://www.cs.uu.nl/people/hanwen/lilypond/}Han-Wen's site.
+@item @uref{http://sca.uwaterloo.ca/lilypond/}The canadian mirror
+(thanks, Eric!)
+@end table
+
+
+@table @samp
+@item @uref{http://www.gnu.org/}
+ LilyPond is part of the GNU Project. The GNU project is the name
+ of Richard Stallman's effort to create a freely available
+ system of software.
+@item @uref{http://www.zib.de/Visual/software/doc++/index.html}
+ The documentation system for C++ sources, which is used for the
+ LilyPond sources.
+@item @uref{http://www.iat.unc.edu/technology/music/music.html}
+ An enormous collection of music related URLs
+@item @uref{http://www.ram.org/ramblings/philosophy/fmp.html}
+ Musings on free music, plus hints how to record your own (free) music.
+@item @uref{http://www.geocities.com/Vienna/Studio/1714/}
+ John Sankey has taken up the task of recording classical
+ music, and distributing the results at no cost.
+@end table
+
+@node Ftp, News, Www, links - Links to other related websites
+@section Ftp
+
+At this moment we have about one development-patchlevel per week.
+These development releases will be at
+
+@itemize @bullet
+@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development}
+
+@item @uref{ftp://sca.uwaterloo.ca/pub/lilypond}
+
+@item @uref{ftp://ftp.lilypond.org/pub/lilypond}
+@end itemize
+
+Debian releases are located at
+@uref{http://cgi.debian.org/www-master/debian.org/Packages/stable/tex/lilypond.html}
+and
+@uref{ftp://ftp.debian.org/debian/dists/unstable/main/binary-i386/tex/lilypond_*.deb}
+
+Precompiled i386 RedHat RPMS are available from
+@uref{http://linux.umbc.edu/software/lilypond/rpms/}.
+
+@node News, Mailing lists, Ftp, links - Links to other related websites
+@section News
+
+The following newsgroups all contain material relevant to LilyPond
+@itemize @bullet
+
+@item @uref{news://comp.music.research}
+
+@item @uref{news://rec.music.compose}
+
+@item @uref{news://gnu.announce}
+
+@item @uref{news://comp.os.linux.announce}
+@end itemize
+
+@node Mailing lists, mail-yo, News, links - Links to other related websites
+@section Mailing lists
+
+@node mail-yo, Backlinks, Mailing lists, links - Links to other related websites
+
+
+For programs which are part of the GNU music project, the following
+mailing list have been setup:
+
+@table @samp
+@item info-gnu-music@@gnu.org
+ A moderated list for information on the GNU Music project, to
+ subscribe: send mail with subject "subscribe" to
+ info-gnu-music-request@@gnu.org.
+
+ As this list is moderated, normal people should ask to
+ @email{drl@@gnu.org, David R. Linn} or
+ @email{hanwen@@cs.uu.nl, Han-Wen} to forward announces instead of
+ sending it to info-gnu-music@@gnu.org
+
+Since the GNU Music project currently only has LilyPond, this list is
+mainly for announcing new versions of LilyPond.
+
+@uref{http://www.mail-archive.com/info-gnu-music@@gnu.org}
+
+@item help-gnu-music@@gnu.org
+ For help with programs from the GNU music project. To subscribe: send
+ mail with subject "subscribe" to
+ @email{help-gnu-music-request@@gnu.org}
+
+ Since the GNU Music project currently only has LilyPond, this list is mainly about using and extending LilyPond.
+
+ @uref{http://www.mail-archive.com/help-gnu-music@@gnu.org}
+
+@item bug-gnu-music@@gnu.org
+ If you have bugreports, you should send them to this list. If you want
+ to read all bugreports, you should subscribe to this list. To
+ subscribe: send mail with subject "subscribe" to
+ @email{bug-gnu-music-request@@gnu.org}
+ @uref{http://www.mail-archive.com/bug-gnu-music@@gnu.org}
+@item gnu-music-discuss@@gnu.org,
+ For discussions concerning the GNU Music project, to subscribe: send
+ mail with subject "subscribe" to
+ @email{gnu-music-discuss-request@@gnu.org}
+ This list is archived at
+ @uref{http://www.mail-archive.com/gnu-music-discuss@@gnu.org}
+@end table
+
+Announces of new versions will be sent to info-gnu-music and
+gnu-music-discuss.
+
+
+@node Backlinks, Top, mail-yo, links - Links to other related websites
+@section Backlinks
+
+@table @samp
+@item @uref{http://sca.uwaterloo.ca/Mutopia/}
+ Mutopia project (under construction).
+@item @uref{http://www.ssc.com/linux/}
+ The Number One Free Operating System Kernel: Linux
+@item @uref{ http://sound.condorow.net}
+ Dave Philips' Linux sound applications page
+@item @uref{http://www4.smart.net/~jcovey/scores.html}
+ Jeff Covey's guitar music
+@item @uref{http://www.home.fh-karlsruhe.de/~rost0001/web/musik/musik.html}
+ Stochastic composing using LilyPond
+@item @uref{http://www.medieval.org/emfaq/scores/software.html}
+ More software for (early) music.
+@item @uref{http://www.pbm.com/~lindahl/ravenscroft/modern}
+ Transcriptions of the music of Thomas Ravenscroft, partly using
+ LilyPond
+@item @uref{http://www.redhat.com/}
+ RedHat Software Inc. develops and markets a GNU/Linux distribution (of
+ which we are avid users)
+@end table
+
+
+@bye
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@setfilename programs.info
+@settitle Programs
+
+@node Top, , mudela-book Authors, (dir)
+@top
+@menu
+* Programs:: Your Softs-
+* convert-mudela:: convert-mudela to newer versions
+* LilyPond:: the GNU Music Typesetter
+* Ly2dvi:: Python utility to convert mudela to DVI
+* midi2ly:: convert MIDI to -mudela-
+* mudela-book:: integrate LaTeX and mudela
+@end menu
+
+
+
+
+@node Programs, convert-mudela, , Top
+@chapter Programs
+
+
+
+
+
+
+
+
+@node convert-mudela, convert-mudela DESCRIPTION, Programs, Top
+@menu
+* convert-mudela DESCRIPTION:: convert-mudela DESCRIPTION
+* convert-mudela SYNOPSIS:: convert-mudela SYNOPSIS
+* convert-mudela OPTIONS:: convert-mudela OPTIONS
+* convert-mudela BUGS:: convert-mudela BUGS
+* convert-mudela Authors:: convert-mudela Authors
+@end menu
+@chapter convert-mudela
+
+convert-mudela sequentially applies different mudela-conversions to
+upgrade a Mudela input file.
+
+@node convert-mudela DESCRIPTION, convert-mudela SYNOPSIS, convert-mudela, convert-mudela
+@section DESCRIPTION
+
+Upgrade a Mudela input file from FROM_PATCHLEVEL to TO_PATCHLEVEL.
+If no files are given, the standard input and output are used.
+
+@node convert-mudela SYNOPSIS, convert-mudela OPTIONS, convert-mudela DESCRIPTION, convert-mudela
+@section SYNOPSIS
+
+ convert-mudela [options] [files]
+
+@node convert-mudela OPTIONS, convert-mudela BUGS, convert-mudela SYNOPSIS, convert-mudela
+@section OPTIONS
+@table @samp
+@item --output
+ The output file to write.
+@item --edit
+ Do an inline edit of the input file. override @code{--output}
+@item --show-rules
+ shows all known conversions, and exit
+@item --from=FROM_PATCHLEVEL
+ Set the level to convert from. If this is not set, convert-mudela will
+ guess this, on the basis of @code{\version} strings in the file
+@item --to=TO_PATCHLEVEL
+ Set the goal version of the conversion. It defaults to the latest
+ available version.
+@end table
+
+@node convert-mudela BUGS, convert-mudela Authors, convert-mudela OPTIONS, convert-mudela
+@section BUGS
+
+Not all language changes are handled. Multiple output options won't
+work.
+
+convert-mudela is written in python, so you have install
+@uref{http://www.python.org,python}.
+
+@node convert-mudela Authors, LilyPond, convert-mudela BUGS, convert-mudela
+@section Authors
+
+@email{hanwen@@cs.uu.nl, Han-Wen Nienhuys}, @uref{http://www.cs.uu.nl/people/hanwen}
+
+
+
+
+
+
+
+
+@node LilyPond, LilyPond SYNOPSIS, convert-mudela Authors, Top
+@menu
+* LilyPond SYNOPSIS:: LilyPond SYNOPSIS
+* LilyPond DESCRIPTION:: LilyPond DESCRIPTION
+* LilyPond OPTIONS:: LilyPond OPTIONS
+* LilyPond FEATURES:: LilyPond FEATURES
+* LilyPond DISCLAIMER:: LilyPond DISCLAIMER
+* LilyPond PROBLEMS:: LilyPond PROBLEMS
+* LilyPond FILES:: LilyPond FILES
+* LilyPond environment:: LilyPond environment
+* LilyPond BUGS:: LilyPond BUGS
+* LilyPond SEE ALSO:: LilyPond SEE ALSO
+* LilyPond REMARKS:: LilyPond REMARKS
+* LilyPond Authors:: LilyPond Authors
+@end menu
+@chapter LilyPond
+
+@cindex LilyPond
+
+@node LilyPond SYNOPSIS, LilyPond DESCRIPTION, LilyPond, LilyPond
+@section SYNOPSIS
+ @strong{lilypond} [OPTION]... [MUDELA-FILE]...
+
+@node LilyPond DESCRIPTION, LilyPond OPTIONS, LilyPond SYNOPSIS, LilyPond
+@section 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.
+
+
+@node LilyPond OPTIONS, LilyPond FEATURES, LilyPond DESCRIPTION, LilyPond
+@section OPTIONS
+@table @samp
+@item -f,--format=
+ Output format for sheet music. Choices are tex (for TeX
+ output), ps (for PostScript) and scm (for GUILE)
+@item -I,--include=
+ add @file{FILE} to the search path for input files.
+@item -m,--midi
+ Disable TeX output. If you have a \midi definition, it will do the
+ midi output only.
+@item -M,--dependencies
+ Also output rules to be included in Makefile.
+@item -d,--debug
+ Turn debugging info on. GNU LilyPond reads the file @file{.dstreamrc},
+ which lists what functions and classes may produce copious debugging
+ output.
+@item -s,--safe
+ Disallow untrusted @code{\include} directives, backslashes in TeX
+code and named output.
+@item -t,--test
+ Switch on any experimental features. Not for general public use.
+@item -w,--warranty
+ Show the warranty with which GNU LilyPond comes. (It comes with
+ @strong{NO WARRANTY}!)
+@item -o,--output=FILE
+ Set the default output file to @file{FILE}.
+@item -h,--help
+ Show a summary of usage.
+@item -i,--init=FILE
+ Set init file to @file{FILE} (default: @file{init.ly}).
+@item --include, -I=DIRECTORY
+ Add @file{DIRECTORY} to the search path for input files.
+@item --ignore-version, -V
+ Make the incompatible mudela version warning non-fatal.
+@end table
+
+@node LilyPond FEATURES, LilyPond DISCLAIMER, LilyPond OPTIONS, LilyPond
+@section FEATURES
+
+This is an overview of the features that GNU LilyPond supports. For
+details on how to use them, you should consult the Mudela tutorial,
+which is included with the package.
+
+@itemize @bullet
+@item ASCII script input, with identifiers (for music reuse),
+ customizable notenames, customisable fontset.
+@item MIDI output lets you check if you have entered the correct notes.
+@item MIDI to Mudela conversion through the mi2mu program.
+@item Multiple staffs in one score. Each staff can have different time signatures.
+@item Beams, slurs, ties, chords, super/subscripts (accents and text)
+ triplets, general n-plet (triplet, quadruplets, etc.), lyrics,
+ transposition, dynamics (both absolute and hairpin style).
+@item Multiple voices within one staff; beams optionally shared
+ between voices. Up to four voices is handled cleanly.
+@item Multiple scores within one input file. Each score is output to
+ a different file.
+@item Clef changes, meter changes, cadenza-mode, key changes, repeat bars.
+@end itemize
+
+@node LilyPond DISCLAIMER, LilyPond PROBLEMS, LilyPond FEATURES, LilyPond
+@section DISCLAIMER
+
+GNU LilyPond is copyright 1996-1999 by its authors. GNU LilyPond is
+distributed under the terms of the GNU General Public License. GNU LilyPond
+is provided without any warranty what so ever.
+GNU LilyPond may be freely distributed. For further information consult
+the GNU General Public License, from the file @file{COPYING}.
+
+@node LilyPond PROBLEMS, LilyPond FILES, LilyPond DISCLAIMER, LilyPond
+@section PROBLEMS
+
+There is an extensive list of todoes and bugs. See the file
+@file{TODO} distributed with the sources. If you have a problem you
+should try to find out
+
+@itemize @bullet
+@item If the bug has been fixed in a newer release.
+@item If the bug has been found earlier, consult @file{TODO} and @file{BUGS}.
+@end itemize
+
+If you have found a bug, then we would appreciate it if you sent a
+bugreport.
+
+@itemize @bullet
+@item Send a copy of the input which causes the error.
+@item Send a description of the platform you use.
+@item Send a description of the LilyPond version you use
+ (with compile/configure options please).
+@item Send a description of the bug itself.
+@item Send it to @email{bug-gnu-music@@gnu.org}; you don't have to be subscribed
+ to this mailinglist.
+@end itemize
+
+@node LilyPond FILES, LilyPond environment, LilyPond PROBLEMS, LilyPond
+@section FILES
+@table @samp
+@item @file{init.ly}
+ The initialisation file with symbol tables etc. It
+ includes files from the directory
+ @file{PREFIX/share/lilypond/ly/}. (@file{PREFIX} typically is @file{/usr/local}
+)@end table
+
+@node LilyPond environment, LilyPond BUGS, LilyPond FILES, LilyPond
+@section environment
+
+@table @samp
+@item LILYINCLUDE
+ additional directories for finding lilypond data. The
+ format is like the format of @file{PATH}.
+@item LILYPREFIX
+ [FIXME]
+@item LANG
+ selects the language for the warning messages of LilyPond.
+@end table
+
+@node LilyPond BUGS, LilyPond SEE ALSO, LilyPond environment, LilyPond
+@section BUGS
+
+Lots of them. See @file{TODO} and @file{BUGS}
+
+@node LilyPond SEE ALSO, LilyPond REMARKS, LilyPond BUGS, LilyPond
+@section SEE ALSO
+
+LilyPond comes with various other documentation files. They are
+included in the source package.
+
+A further source for information is the website, which can be found at
+@uref{http://www.lilypond.org/}. The website contains on-line versions
+of the documentation
+
+GNU LilyPond is updated very frequently, the latest version is always
+available at: @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond}. This FTP
+site is mirrored at a number of sites; consult the project web pages
+for information about mirrors.
+
+For programs which are part of the GNU music project, the following
+mailing list have been setup:
+
+@table @samp
+@item @email{info-gnu-music@@gnu.org}
+ For information on the GNU Music project, to subscribe: send mail with
+ subject "subscribe" to @email{info-gnu-music-request@@gnu.org}
+@item @email{help-gnu-music@@gnu.org}
+ For help with programs from the GNU music project. To subscribe: send
+ mail with subject "subscribe" to @email{help-gnu-music-request@@gnu.org}
+@item @email{bug-gnu-music@@gnu.org}
+ If you have bugreports, you should send them to this list. If you want
+ to read all bugreports, you should subscribe to this list. To
+ subscribe: send mail with subject "subscribe" to
+ @email{bug-gnu-music-request@@gnu.org}
+@item @email{gnu-music-discuss@@gnu.org}
+ For discussions concerning the GNU Music project, to subscribe: send
+ mail with subject "subscribe" to
+ @email{gnu-music-discuss-request@@gnu.org}
+@end table
+
+Announces of new versions will be sent to info-gnu-music and
+gnu-music-discuss.
+
+@node LilyPond REMARKS, LilyPond Authors, LilyPond SEE ALSO, LilyPond
+@section REMARKS
+
+GNU LilyPond has no connection with the music package Rosegarden, other
+than the names being similar :-)
+
+@node LilyPond Authors, Ly2dvi, LilyPond REMARKS, LilyPond
+@section Authors
+
+@cindex Author
+
+@itemize @bullet
+@item @email{hanwen@@cs.uu.nl, Han-Wen Nienhuys}
+ @uref{http://www.cs.uu.nl/people/hanwen}
+@item @email{janneke@@gnu.org, Jan Nieuwenhuizen}
+ @uref{http://www.xs4all.nl/~jantien}
+@end itemize
+
+Please consult the documentation file @file{AUTHORS} for more detailed
+information, and small contributions.
+
+
+
+
+@node Ly2dvi, Ly2dvi DESCRIPTION, LilyPond Authors, Top
+@menu
+* Ly2dvi DESCRIPTION:: Ly2dvi DESCRIPTION
+* Ly2dvi SYNOPSIS:: Ly2dvi SYNOPSIS
+* Ly2dvi OPTIONS:: Ly2dvi OPTIONS
+* Ly2dvi Features:: Ly2dvi Features
+* Ly2dvi Environment:: Ly2dvi Environment
+* Ly2dvi Files:: Ly2dvi Files
+* Ly2dvi Initialization Sequence::Ly2dvi Initialization Sequence
+* Ly2dvi See Also:: Ly2dvi See Also
+* Ly2dvi Bugs:: Ly2dvi Bugs
+* Ly2dvi Remarks:: Ly2dvi Remarks
+* Ly2dvi Authors:: Ly2dvi Authors
+@end menu
+@chapter Ly2dvi
+
+@node Ly2dvi DESCRIPTION, Ly2dvi SYNOPSIS, Ly2dvi, Ly2dvi
+@section DESCRIPTION
+ly2dvi is a Python script which creates input file for LaTeX,
+based on information from the output files from LilyPond.
+The script handles multiple files. If a mudela file name is
+specified LilyPond is run to make an output (TeX) file.
+
+One or more LaTeX files are created, based on information found
+in the output (TeX) files, and latex is finally run to create
+one or more DVI files.
+
+The majority of this utility came from a bourne script written by Jan
+Arne Fagertun name @file{ly2dvi}.
+
+@node Ly2dvi SYNOPSIS, Ly2dvi OPTIONS, Ly2dvi DESCRIPTION, Ly2dvi
+@section SYNOPSIS
+
+ ly2dvi [options] inputfile[.ly] [....]
+
+@node Ly2dvi OPTIONS, Ly2dvi Features, Ly2dvi SYNOPSIS, Ly2dvi
+@section OPTIONS
+
+@table @samp
+@item -D,--debug
+ Set debug mode. There are two levels - in level one some debug
+ info is written, in level two the command @strong{set -x} is run, which
+ echoes every command in the ly2dvi script.
+@item -F,--headers=
+ Name of additional LaTeX headers file. This is included in the
+ tex file at the end of the headers, last line before @code{\begin@{document@}}
+@item -H,--Heigth=
+ Set paper heigth (points). Used together with width and LaTeX name of
+ papersize in case of papersize unknown to ly2dvi.
+@item -K,--keeplilypond
+ Keep LilyPond output after the run.
+@item -L,--landscape
+ Set landscape orientation - portrait is the default.
+ (@strong{-L} produces @code{\usepackage[landscape]@{article@}})
+@item -N,--nonumber
+ Switch off page numbering.
+@item -O,--orientation=
+ Set orientation landscape - obsolete, use @strong{-L} instead.
+@item -P,--postscript
+ In addition to the DVI file, also Generate a postsript file.
+@item -W,--Width=
+ Set paper width (points). Used together with heigth and LaTeX name of
+ papersize in case of papersize unknown to ly2dvi.
+@item -d,--dependencies
+ Tell lilypond to make dependencies file.
+@item -h,--help
+ Print help.
+@item -k,--keeply2dvi
+ Keep the LaTeX file after the run.
+@item -l,--language=
+ Specify LaTeX language.
+ (@strong{-l norsk} produces @code{\usepackage[norsk]@{babel@}}).
+@item -o,--output=
+ Set output directory.
+@item -p,--papersize=
+ Specify papersize.
+ (@strong{-p a4} produces @code{\usepackage[a4paper]@{article@}})
+@item -s,--separate
+ Normally all output files are included into one LaTeX file.
+ With this switch all files are run separately, to produce one
+ DVI file for each.
+@end table
+
+@node Ly2dvi Features, Ly2dvi Environment, Ly2dvi OPTIONS, Ly2dvi
+@section Features
+
+ly2dvi responds to several parameters specified in the mudela
+file. They are overridden by corresponding command line options.
+
+@table @samp
+@item language="";
+ Specify LaTeX language
+@item latexheaders="";
+ Specify additional LaTeX headers file
+@item orientation="";
+ Set orientation.
+@item paperlinewidth="";
+ Specify the width (pt, mm or cm) of the printed lines.
+@item papersize="";
+ Specify name of papersize.
+@end table
+
+@node Ly2dvi Environment, Ly2dvi Files, Ly2dvi Features, Ly2dvi
+@section Environment
+
+@table @samp
+@item LILYPONDPREFIX
+ Sets the root directory of the LilyPond installation
+@item LILYINCLUDE
+ Additional directories for input files.
+@item TMP
+ Temporary directory name. Default is /tmp
+@end table
+
+@node Ly2dvi Files, Ly2dvi Initialization Sequence, Ly2dvi Environment, Ly2dvi
+@section Files
+
+@file{titledefs.tex} is inspected for definitions used to extract
+additional text definitions from the mudela file. In the current
+version the following are defined:
+
+@table @samp
+@item title
+ The title of the music. Centered on top of the first page.
+@item subtitle
+ Subtitle, centered below the title.
+@item poet
+ Name of the poet, leftflushed below the below subtitle.
+@item composer
+ Name of the composer, rightflushed below the subtitle.
+@item metre
+ Meter string, leftflushed below the below poet.
+@item opus
+ Name of the opus, rightflushed below the below composer.
+@item arranger
+ Name of the arranger, rightflushed below the opus.
+@item instrument
+ Name of the instrument, centered below the arranger
+@item piece
+ Name of the piece, leftflushed below the instrument
+@end table
+
+@file{$LILYPONDPREFIX/share/.lilyrc $HOME/.lilyrc ./.lilyrc} are files
+to set up default running conditions. On Windows OS initialization
+files are named @file{_lilyrc}. The file syntax is as follows:
+
+@example
+VARIABLE-NAME=VALUE
+@end example
+
+
+Where @strong{VARIABLE-NAME} is the name of the variable documented below
+and @strong{VALUE} is either a string, a 1, or a 0. All files are parsed,
+in the shown sequence. In the current version the following are
+allowed:
+
+@table @samp
+@item DEBUG=value
+This turns off (default) or on the debug capabilities. Possible
+values are 0 (off) and 1 (on).
+@item DEPENDENCIES=value
+This turns off (default) or on the ability to generate a Makefile
+dependency list. Possible values are 0 (off) and 1 (on).
+@item KEEPLILYPOND=value
+This turns off (default) or on the ability to keep the log file
+associated with the LilyPond job. Possible values are 0 (off) and 1
+(on).
+@item KEEPLY2DVI=value
+This turns off (default) or on the ability to keep the temporary files
+that are generated by the ly2dvi job. Possible values are 0 (off) and
+1 (on)
+@item LANGUAGE=value
+Specify LaTeX language. Possible value is a valid LaTeX language.
+@item LATEXHF=value
+Specify additional LaTeX headers file. Possible value is a file
+specification.
+@item LILYINCLUDE=value
+Additional directories for input files. Possible value is a delimited
+directory path list.
+@item LILYPONDPREFIX=value
+This defines the LilyPond root directory. Possible value is a valid
+directory specification to the LilyPond distribution location.
+@item NONUMBER=value
+This turns off (default) or on the page numbering capability.
+Possible values are 0 (page numbering enabled) and 1 (page numbering
+disabled).
+@item ORIENTATION=value
+This sets the image orientation. Possible values are
+portrait (default) and landscape.
+@item OUTPUTDIR=value
+This defines the directory where the resultant files will be
+generated. Possible value is a valid directory specification.
+Default is the current working directory.
+@item PAPERSIZE=value
+This defines the papersize the image will be sized to fit. Possible
+values are a0, a1, a2, a3, a4 (default), a5, a6, a7, a8, a9, a10, b0,
+b1, b2, b3, b4, b5, archA, archB, archC, archD, archE, flsa, flse,
+halfletter, ledger, legal, letter, or note.
+@item PHEIGHT=value
+Specify paperheight (points - an inch is 72.27, a cm is 28.453 points).
+@item POSTSCRIPT=value
+This turns off (default) or on the capability of additionally
+generating a postscript file. Possible values are 0 (off) and 1 (on).
+@item PWIDTH=value
+Specify paperwidth (points - an inch is 72.27, a cm is 28.453 points).
+@item SEPARATE=value
+This turns off (default) or on the capability of generating multiple
+dvi and postscript files from multiple source files. The default is
+to generate a concatenation of the source files. Possible values are
+0 (single file) and 1 (separate files).
+@item TMP=value
+This defines the emporary directory. Actually this is not used at the
+present. Possible value is a valid directory specification that is
+writable to the user.
+@end table
+
+@node Ly2dvi Initialization Sequence, Ly2dvi See Also, Ly2dvi Files, Ly2dvi
+@section Initialization Sequence
+The initialization process reads inputs for several sources. Below is
+a list of priorities for lowest to hightest proirity.
+
+@itemize @bullet
+@item Program's defaults
+@item Values found in LilyPond output file
+@item Environment variables
+@item $LILYPONDPREFIX/share/lilypond/.lilyrc
+@item $HOME/.lilyrc
+@item ./.lilyrc
+@item command line options
+@end itemize
+
+Note that this differs slightly from the original bourne shell
+version.
+
+@node Ly2dvi See Also, Ly2dvi Bugs, Ly2dvi Initialization Sequence, Ly2dvi
+@section See Also
+
+lilypond(1), tex(1), latex(1)
+
+@node Ly2dvi Bugs, Ly2dvi Remarks, Ly2dvi See Also, Ly2dvi
+@section Bugs
+
+If you have found a bug, you should send a bugreport.
+
+@itemize @bullet
+@item Send a copy of the input which causes the error.
+@item Send a description of the platform you use.
+@item Send a description of the LilyPond and ly2dvi version you use.
+@item Send a description of the bug itself.
+@item Send it to @email{bug-gnu-music@@gnu.org} (you don't have to subscribe
+ to this mailinglist).
+@end itemize
+
+@node Ly2dvi Remarks, Ly2dvi Authors, Ly2dvi Bugs, Ly2dvi
+@section Remarks
+
+Many papersizes are now supported. Information on other sizes
+(LaTeX names, horizontal and vertical sizes) should be mailed to
+the author or to the mailing list.
+
+Supported papersizes are:
+
+a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, archA, archB, archC, archD,
+archE, b0, b1, b2, b3, b4, b5, flsa, flse, halfletter, ledger, legal,
+letter, note
+
+@node Ly2dvi Authors, midi2ly, Ly2dvi Remarks, Ly2dvi
+@section Authors
+Python Version author:
+@email{daboys@@austin.rr.com, Jeffrey B. Reed},
+@uref{http://home.austin.rr.com/jbr/jeff/lilypond/}
+
+Original bourne shell version author:
+@email{Jan.A.Fagertun@@energy.sintef.no, Jan Arne Fagertun},
+@uref{http://www.termo.unit.no/mtf/people/janaf/}
+
+
+
+
+
+
+
+@node midi2ly, midi2ly DESCRIPTION, Ly2dvi Authors, Top
+@menu
+* midi2ly DESCRIPTION:: midi2ly DESCRIPTION
+* midi2ly OPTIONS:: midi2ly OPTIONS
+* midi2ly DISCLAIMER:: midi2ly DISCLAIMER
+* midi2ly SEE ALSO:: midi2ly SEE ALSO
+* midi2ly Authors:: midi2ly Authors
+@end menu
+@chapter midi2ly
+
+@node midi2ly DESCRIPTION, midi2ly OPTIONS, midi2ly, midi2ly
+@section DESCRIPTION
+midi2ly translates a MIDI input file to Mudela (GNU LilyPond source
+format). midi2ly is part of the GNU LilyPond music typesetting package.
+
+ midi2ly [options] midi-file
+
+@node midi2ly OPTIONS, midi2ly DISCLAIMER, midi2ly DESCRIPTION, midi2ly
+@section OPTIONS
+
+@table @samp
+@item -b, --no-quantify,
+ Write exact durations, e.g.: `a4*385/384'.
+@item -D, --debug,
+ Print lots of debugging stuff.
+@item -h, --help,
+ Show a summary of usage.
+@item -I, --include=@file{DIR},
+ Add DIR to search path.
+@item -k, --key=ACC[:MINOR],
+ Set default key. ACC > 0 sets number of sharps; ACC < 0 sets number
+ of flats. A minor key is indicated by ":1".
+@item -n, --no-silly,
+ Assume no plets or double dots, assume smallest (reciprocal) duration 16.
+@item -o, --output=@file{FILE},
+ Set @file{FILE} as default output.
+@item -p, --no-plets,
+ Assume no plets.
+@item -q, --quiet,
+ Be quiet.
+@item -s, --smallest=N,
+ Assume no shorter (reciprocal) durations than N.
+@item -v, --verbose,
+ Be verbose.
+@item -w, --warranty,
+ Show the warranty with which midi2ly comes. (It comes with @strong{NO WARRANTY}!)
+@item -x, --no-double-dots,
+ Assume no double dotted notes.
+@end table
+
+@node midi2ly DISCLAIMER, midi2ly SEE ALSO, midi2ly OPTIONS, midi2ly
+@section DISCLAIMER
+
+midi2ly is copyright 1996, 1997 by its authors. midi2ly is distributed
+as part of GNU LilyPond, under the terms of the GNU General Public
+License. midi2ly is provided without any warranty what so ever.
+midi2ly may be freely distributed. For further information consult
+the GNU General Public License, from the file @file{COPYING}.
+
+@node midi2ly SEE ALSO, midi2ly Authors, midi2ly DISCLAIMER, midi2ly
+@section SEE ALSO
+
+@table @samp
+@item @strong{lilypond}(1)
+ The GNU LilyPond music typesetter.
+@end table
+
+@node midi2ly Authors, mudela-book, midi2ly SEE ALSO, midi2ly
+@section Authors
+
+Please consult the documentation file @file{AUTHORS} for more detailed
+information, and small contributions.
+
+@email{janneke@@gnu.org, Jan Nieuwenhuizen}, @uref{http://www.xs4all.nl/~jantien}
+
+
+
+
+
+@node mudela-book, mudela-book SYNOPSIS, midi2ly Authors, Top
+@menu
+* mudela-book SYNOPSIS:: mudela-book SYNOPSIS
+* mudela-book DESCRIPTION:: mudela-book DESCRIPTION
+* mudela-book OPTIONS:: mudela-book OPTIONS
+* mudela-book FILES:: mudela-book FILES
+* mudela-book BUGS:: mudela-book BUGS
+* mudela-book Authors:: mudela-book Authors
+@end menu
+@chapter mudela-book
+
+@node mudela-book SYNOPSIS, mudela-book DESCRIPTION, mudela-book, mudela-book
+@section SYNOPSIS @strong{mudela-book} [options] inputfile
+
+@node mudela-book DESCRIPTION, mudela-book OPTIONS, mudela-book SYNOPSIS, mudela-book
+@section DESCRIPTION @file{mudela-book} is a script that helps
+integrating mudela and LaTeX. mudela-book runs LilyPond on
+fragments of mudela in your source file, and includes the results into
+document that can be processed with LaTeX. The result is a text
+document with formatted music integrated.
+
+Lilypond will by default create all output files in directory @file{out}.
+The file to give to latex has ext @file{.latex}.
+
+@strong{About the input}
+
+If the file contains the ``block''
+
+@example
+
+ \begin@{mudela@}
+ CONTENTS
+ \end@{mudela@}
+
+@end example
+
+then LilyPond is run on CONTENTS. mudela-book puts the result back,
+surrounded by @code{\preMudelaExample} and @code{\postMudelaExample}
+commands. @code{\preMudelaExample} and @code{posMudelaExample} is
+defined to nothing by default, and the user can redefine them
+to whatever he wants.
+
+@code{\begin} takes the following options:
+
+@table @samp
+@item eps
+ the music is created as eps graphics that can be inserted in
+ the middle of a text line, not only as a separate paragraph
+@item verbatim
+ CONTENTS is copied into the TeX source enclosed in a verbatim block.
+@item 11pt, 13pt, 16pt, 20pt, 26pt
+ set the fontsize to use for the music
+@item singleline
+ linewidth = -1.
+@item multiline
+ linewidth = textwidth
+@item fragment
+@item nonfragment
+ Override mudela-book autodetection of what type of code is in the
+ mudela block, voice contents or complete code.
+@end table
+
+@node mudela-book OPTIONS, mudela-book FILES, mudela-book DESCRIPTION, mudela-book
+@section OPTIONS
+
+@table @samp
+
+@item --default-mudela-fontsize=??pt
+ Set the fontsize to use for mudela if no fontsize is given
+ as option.
+@item --force-mudela-fontsize=??pt
+ Force all mudela to use this fontsize, overriding options
+ given to \begin@{mudela@}
+@item --outname=FILE
+ The name of LaTeX file to output. If this option is not given,
+the output name derived from the input name.
+@item --out-www=DIRECTORY
+ The name of the directory to output lilypond output and input to.
+ This must be a name; the subdirectory will be created in the cwd. [FIXME]
+@item --help
+ Print a short help message
+@item --dependencies
+ Write dependencies to out-www/filename.dep
+@item --force-verbatim
+ Make all mudela verbatim.
+@item --initfile=FILE
+ read command definitions from @file{FILE}
+@end table
+
+@node mudela-book FILES, mudela-book BUGS, mudela-book OPTIONS, mudela-book
+@section FILES
+ See @file{Documentation/tex/out/mudela-book-doc.dvi} for more info.
+ You have to install LaTeX.
+ @file{mudela-book} is written in python 1.5, so you have to install
+ @uref{http://www.python.org,python}.
+
+@node mudela-book BUGS, mudela-book Authors, mudela-book FILES, mudela-book
+@section BUGS
+
+The LaTeX \includeonly@{...@} command is ignored.
+
+You get trouble if you use the --force-verbatim option and have some
+music in \footnote@{...@} or \marginpar@{...@}.
+
+Ignores almost all LaTeX commands that changes margins and linewidths.
+
+@node mudela-book Authors, Top, mudela-book BUGS, mudela-book
+@section Authors
+
+@email{hanwen@@cs.uu.nl, Han-Wen Nienhuys}, @uref{http://www.cs.uu.nl/people/hanwen}
+
+@email{tomato@@xoommail.com, Tom Cato Amundsen}
+
+
+@bye
@unnumbered LilyPond -- The @uref{http://www.fsf.org/gnu/gnu-history.html,GNU Project} Music Typesetter
+@center
@quotation
@mudela[fragment]
\relative c'' { \key es; r8 [c16 b] [c8 g] [as c16 b] [c8 d] | g,4 }
@end mudela
@end quotation
+@end center
@c include BLURB?
-@unnumberedsec View sheet music
+@unnumberedsec Sheet music
@itemize @bullet