=head1 DESCRIPTION
-Technically GNU LilyPond is a preprocessor which generates TeX
-(or LaTeX) output which contains information to typeset a musical
-score. Practically it is a typesetter, which only uses TeX as an
-output medium. (this is handy because there exist music fonts for TeX)
-
-As a bonus, you can also output a MIDI file of what you typed.
-
-It translates script files (mudela files or F<*.ly>'s) into TeX input.
-Typesetting music is a complex task, whereas the message that printed
-music conveys is usually a simple one. GNU LilyPond is a try at providing
-a simple interface for setting music.
-
+LilyPond is the GNU Project music typesetter. The program generates
+visual or auditive output from a music definition file: it can typeset
+formatted sheet music to a TeX file and play (mechanical) performances
+to a MIDI file.
=head1 OPTIONS
add F<FILE> to the search path for input files.
-
=item B<-M,--midi>
-do midi output only
+This disables TeX output. If you have a \midi definition, it will do
+the midi output only.
=item B<-d,--debug>,
-Turn debugging info. GNU LilyPond will read the file F<.dstreamrc>, which
-tells for what functions and classes may produce copious debugging
+Turn debugging info on. GNU LilyPond reads the file F<.dstreamrc>,
+which lists what functions and classes may produce copious debugging
output.
+=item B<-t,--test>,
+
+Switch on any experimental features. Not for general public use.
+
=item B<-w,--warranty>,
-Show the warranty with which GNU LilyPond comes. (It comes with B<NO WARRANTY>!)
+Show the warranty with which GNU LilyPond comes. (It comes with B<NO
+WARRANTY>!)
=item B<-o,--output=>F<FILE>,
=item B<-h,--help>,
-Show a summary of usage
+Show a summary of usage.
+
+=item B<-i,--init=>F<FILE>,
+
+Set init file to F<FILE> (default: F<lily-init.ly>).
+
+=item B<--include, -I>=F<DIRECTORY>,
+
+Add F<DIRECTORY> to the search path for input files.
-=item B<-i,--init=>F<FILE>
+=item B<--ignore-version, -V>,
-set init file to F<FILE> (default: F<symbol.ini>)
+Make incompatible mudela version non-fatal.
-=item B<--include, -I>=F<DIRECTORY>
-add F<DIRECTORY> to the search path for input files.
+=item B<--no-postscript, -P>,
+
+Don't generate embedded PostScript (or MetaFont) symbols, but resort to
+less beautiful fixed-size versions.
+
+LilyPond uses PostScript for variable symbols where possible. (For some
+of these symbols runtime MetaFont source will be genarated too. These are
+not used unless you also include the appropriate TeX file too. See
+F<tex/fetdefs.tex>.)
=back
=head1 FEATURES
+This is an overview of the features that GNU LilyPond supports. For
+details on how to use them, you should consult mudela(5).
+
=over 5
=item *
ASCII script input, with identifiers (for music reuse),
-customizable notenames, customizable fontset
+customizable notenames, customisable fontset.
=item *
=item *
-Multiple staffs in one score. Each staff can have a different meters.
+Multiple staffs in one score. Each staff can have different meters.
=item *
-multiple stafftypes (melodic, rhythmic) [broken from pl28 on]
+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 *
-beams, slurs, chords, super/subscripts (accents and text), triplets,
-general n-plet (triplet, quadruplets, etc.), lyrics, transposition
-dynamics (both absolute and hairpin style)
+Multiple voices within one staff; beams optionally shared
+between voices. Up to four voices is handled cleanly.
=item *
-multiple voices within one staff; beams optionally shared
-between voices. (well, more than 2 voices won't look pretty --yet.)
-
-=item *
-
-multiple scores within one input file. Each score is output to
+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
+Clef changes, meter changes, cadenza-mode, key changes, repeat bars.
=back
-=head1 DESIGN CONSIDERATIONS
+=head1 DISCLAIMER AND COPYING POLICY
-GNU LilyPond was written with some considerations in mind:
+GNU LilyPond is copyright 1996-1998 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 F<COPYING>.
-=over 5
+=head1 AUTHORS
-=item *
+Please consult the documentation file AUTHORS for more detailed
+information, and small contributions.
-Describing a well-defined language for defining music. We call
-this language (rather arrogantly) The Musical Definition Language
-(mudela for short). GNU LilyPond reads a mudela sourcefile and outputs a
-TeX file.
+=over 4
=item *
-We want to provide an easy-to-use interface for typesetting music in
-its broadest sense. This interface should be intuitive from a musical
-point of view. By broadest sense we mean: it is designed for music
-printed left to right in staffs, using notes to designate rythm and
-pitch.
+Han-Wen Nienhuys <hanwen@cs.ruu.nl>, http://www.cs.ruu.nl/people/hanwen
=item *
-GNU LilyPond uses MusiXTeX fonts and TeX for its output. This is not a key
-issue: in a future version, GNU LilyPond might bypass TeX, but at the moment
-TeX is very convenient for producing output.
+Jan Nieuwenhuizen <jan@digicash.com>, http://www.digicash.com/~jan.
+
+=back
+
+
+=head1 PROBLEMS
+
-=item *
+There is an extensive list of todoes and bugs. See F<TODO>. If you
+have a problem you should try to find out
-Generate high-quality output. Ideally it should be of a professional
-quality. We'd like to render Herbert Chlapiks words, "Fine music
-setting is not possible without a knowledgeable printer," untrue.
+=over 4
=item *
-GNU LilyPond does not display notes directly, nor will it be rehacked to be
-used interactively. GNU LilyPond writes output to a file. It will not be
-extended to play music, or to recognize music.
+If the bug has been fixed in a newer release.
=item *
-GNU LilyPond is intended to run on Unix platforms, but it should
-be portable to any platform which can run TeX and the GNU tools
+If the bug has been found earlier, consult F<TODO> and F<BUGS>.
+
+=back
+
+If you have found a bug, then you should send a bugreport.
+
+=over 4
=item *
+Send a copy of the input which causes the error.
-GNU LilyPond is free. Commercial windows packages for setting music are
-abundant. Free musicprinting software is scarce.
+=item *
+Send a description of the platform you use.
=item *
+Send a description of the LilyPond version you use (with
+compile/configure options please).
-GNU LilyPond is written in GNU C++. It will not be downgraded/ported to fit
-broken systems.
+=item *
+Send a description of the bug itself.
+
+=item *
+Send it to bug-gnu-music@gnu.org (you don't have to subscribe
+to this mailinglist).
=back
-=head1
-DISCLAIMER & COPYING POLICY
+It does help if you can find out where the bug comes from: if GNU
+LilyPond bombs out, then please recompile using with debugging info
+turned on, and send gdb stacktrace of the crash. It also helps if you
+can print the values of the objects. So if your trace is
-GNU LilyPond is copyright 1996,97 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, which is in the file F<COPYING>
+ received SIGSEGV
+ (gdb) backtrace 12
+ #0 Interval::operator+= (this=0x11fffec60..)
+ at ../flower/interval.hh:50
+ #1 0x12005195c in Item::width (this=0x14008a680) at src/item.cc:39
+ #2 0x12008fdbc in itemlist_width (its=0x11fffed58 ..
+ :
+ :
+
+Than it would help if you send a dump of the Interval and the Item
+(use: C<print *this> or use LilyPond C<print()> methods).
-=head1 AUTHORS
+
+=head1 FILES
=over 5
-=item *
+=item F<lily-init.ly>
-Han-Wen Nienhuys <hanwen@stack.nl>, http://www.stack.nl/~hanwen
+The initialisation file with symbol tables etc. It
+includes files from the directory F<init/>.
-Main author
+=back
-=item *
+=head1 ENVIRONMENT
-Jan Nieuwenhuizen <jan@digicash.com>, http://www.digicash.com/~jan.
+B<LILYINCLUDE> an (one) additional directory for finding lilypond data.
-Context errors, Lyrics, mi2mu, MIDI stuff, make structure, bits of
-FlowerLib, general comments, Mudela design.
+=head1 BUGS
-=item *
+Lots of them. See F<TODO> and F<BUGS>
-Mats Bengtsson <matsb@s3.kth.se>, bugfixes, testing, general comments.
+=head1 SEE ALSO
-=back
+=over 4
-Your name could be here! If you want to help, then take a look at the
-SMALLISH PROJECTS section of in the file F<TODO>. Some do not involve
-coding C++
+=item internals
-=head1 EXAMPLES
+On technical details of LilyPond
-At this time, GNU LilyPond output looks nice, but is not of production
-quality. If you're not discouraged; this is what I type in my xterm:
+=item mudela-man
- lilypond someinput.ly
- tex test
- xdvi test&
+On the input format. This is a LilyPond-enhanced LaTeX document.
-This is what the output looks like over here:
+=item MANIFESTO
- GNU LilyPond 0.0.40 #0/FlowerLib 1.1.7 #2. Compile: Mar 11 1997, 22:58:47 (g++ 2.7.2)
- Parsing ... [./init//symbol.ini[./init//dynamic.ini][./init//dutch.ini]
- [./init//script.ini][./init//table_sixteen.ini]][./input/wohltemperirt.ly]
- Setting up music ...Processing music ............
- Preprocessing ...
- Calculating column positions ... [3][6][9]
- Postprocessing ...
- TeX output to lelie.out ...
- midi output to lelie.midi ...
+Goals of the GNU LilyPond project.
- hw:~/musix/spacer$ tex test
- This is TeX, Version 3.14159 (C version 6.1)
- (test.tex
- Hyphenation patterns for english, dutch, loaded.
- (lilyponddefs.tex) (lelie.uit) [1] [2] )
- Output written on test.dvi (2 pages, 8420 bytes).
- Transcript written on test.log.
+=item FAQ
- hw:~/musix/spacer$ xdvi test&
- [1] 855
+The GNU LilyPond FAQ list
-Check out the input files, some of them have comments
+=item http://www.cs.ruu.nl/people/hanwen/lilypond/index.html
+GNU LilyPond has her own webpage. This webpage contains the MIDI, GIF
+and PS files for some standard music files. It also has the complete
+LilyPond documentation
-=head1 PROBLEMS
+=back
-If GNU LilyPond bombs out, then please recompile using with debugging info
-turned on, and send a copy of the input which causes the error and a
-gdb stacktrace of the crash. It also helps if you can print the values
-of the objects. So if your trace is
+GNU LilyPond is
+updated very frequently, the latest version is always available at:
+ftp://pcnov095.win.tue.nl/pub/lilypond and
+ftp://alpha.gnu.org/gnu/lilypond/
- (gdb) backtrace 12
- #0 Interval::operator+= (this=0x11fffec60..)
- at ../flower/interval.hh:50
- #1 0x12005195c in Item::width (this=0x14008a680) at src/item.cc:39
- #2 0x12008fdbc in itemlist_width (its=0x11fffed58 ..
- :
- :
-Than it would help if you send a dump of the Interval and the Item
-(use: C<print *this> or use GNU LilyPond C<print()> methods).
+For programs which are part of the GNU music project, the following
+mailing list have been setup:
-This is a beta version of GNU LilyPond. Please send your helpful comments
-and patches to me (see AUTHORS section)
-GNU LilyPond is updated very frequently, the latest version is always available at:
-ftp://pcnov095.win.tue.nl/pub/lilypond.
+=over 4
+=item info-gnu-music@gnu.org
-=head1 FILES
+For information on the GNU Music project, to subscribe: send mail with
+subject "subscribe" to info-gnu-music-request@gnu.org
-=over 5
+=item help-gnu-music@gnu.org
-=item F<symbol.ini>
-The initialisation file with symbol tables etc. It
-includes files from the directory F<init/>.
+For help with programs from the GNU music project. To subscribe: send
+mail with subject "subscribe" to
+help-gnu-music-request@gnu.org
-=back
+=item bug-gnu-music@gnu.org
-=head1 ENVIRONMENT
+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
+bug-gnu-music-request@gnu.org
-B<LILYINCLUDE> an (one) additional directory for finding lilypond data.
+=item gnu-music-discuss@gnu.org,
-=head1 SEE ALSO
+For discussions concerning the GNU Music project, to subscribe: send
+mail with subject "subscribe" to
+gnu-music-discuss-request@gnu.org,
-mudela(5)
-There are some documentation files in the subdirectory F<Documentation/>,
-among others: lilygut, error, faq,
+=back
-http://www.stack.nl/~hanwen/lilypond/index.html
+Announces of new versions will be sent to info-gnu-music and
+gnu-music-discuss.
=head1 REMARKS
(for a detailed changelog, see F<NEWS>)
GNU LilyPond's roots lie in MPP, a preprocessor to the rather arcane
-MusiXTeX macro package for TeX. A friend of mine, Jan Nieuwenhuizen
+MusiXTeX macro package for TeX. A friend of mine, Jan Nieuwenhuizen
wrote the first 44 versions (0.01 to 0.44), then his program caught my
attention, and I was slowly sucked in to the interesting problem of
-easily producing beautifully printed music. I contributed some
-code. We soon realised that MPP's design was too fundamentally broken
-to be repaired. It was decided to rewrite MPP. We debated a lot about
-the requirements to an inputformat (fall 1995). I sat down and started
+easily producing beautifully printed music. I contributed some
+code. We soon realised that MPP's design was too fundamentally broken
+to be repaired, so it was decided to rewrite MPP. We debated a lot about
+the requirements to an inputformat (fall 1995). I sat down and started
with a parser-first, bottom-up rewrite called mpp95 (which totally
failed, obviously).
After long and hard thinking, I came up with an algorithm for the
horizontal spacing of multiple staffs (april 1996) I coded it (and did
-not test it). After starting with this fundamental piece, I slowly
+not test it). After starting with this fundamental piece, I slowly
added the stages which come before spacing, and after. A half year
-later later, I had a first working version, (october 1996). I
-announced Patchlevel 0.0.7 (or 8) to the mutex list after asking some
-technical details on spacing; it was downloaded approximately 4 times.
-Then I got the hang of it, and in the subsequent two months, I coded
-until it had doubled in size (pl 23).
+later, I had a first working version, (october 1996). I announced
+Patchlevel 0.0.7 (or 8) to the mutex list after asking some technical
+details on spacing; it was downloaded approximately 4 times. Then I
+got the hang of it, and in the subsequent two months, I coded until it
+had doubled in size (pl 23).
+
+Most the other history is described in the NEWS file. The first large
+scale release (0.1) was done after approximately 78 patchlevels on
+August 1, 1997.
+