From: fred Date: Tue, 26 Mar 2002 22:25:38 +0000 (+0000) Subject: lilypond-1.2.6 X-Git-Tag: release/1.5.59~2165 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=06bbabc6fe40ced438fb6d99f6ae53c315e712a3;p=lilypond.git lilypond-1.2.6 --- diff --git a/Documentation/README-W32.texi b/Documentation/README-W32.texi new file mode 100644 index 0000000000..fb5d49ec21 --- /dev/null +++ b/Documentation/README-W32.texi @@ -0,0 +1,818 @@ +\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{}.tar.gz +@item cd yodl-@emph{} +@item ./configure --prefix=/gnuwin32/yodl-@emph{} --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{}.tar.gz +@item cd lilypond-@emph{} +@item ./configure --prefix=/gnuwin32/lilypond-@emph{} \ @* + --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{}.tar.gz +@item cd python-@emph{} +@item configure --prefix=/gnuwin32/Python-@emph{} +@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{}.@emph{} +@item use your normal configure +@item make edits +@item Change @file{VERSION} to increment @emph{} +@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 + +@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 diff --git a/Documentation/faq.texi b/Documentation/faq.texi new file mode 100644 index 0000000000..99d169d316 --- /dev/null +++ b/Documentation/faq.texi @@ -0,0 +1,707 @@ +\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 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 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 : + +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 : + +[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 : + +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 diff --git a/Documentation/links.texi b/Documentation/links.texi new file mode 100644 index 0000000000..0bc8ea4403 --- /dev/null +++ b/Documentation/links.texi @@ -0,0 +1,175 @@ +\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 diff --git a/Documentation/programs.texi b/Documentation/programs.texi new file mode 100644 index 0000000000..75fd7aa2f0 --- /dev/null +++ b/Documentation/programs.texi @@ -0,0 +1,781 @@ +\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 diff --git a/Documentation/topdocs/index.tely b/Documentation/topdocs/index.tely index 253c68c3d0..97cb864d59 100644 --- a/Documentation/topdocs/index.tely +++ b/Documentation/topdocs/index.tely @@ -9,11 +9,13 @@ @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? @@ -25,7 +27,7 @@ the GNU Project. -@unnumberedsec View sheet music +@unnumberedsec Sheet music @itemize @bullet