=head1 NAME
-LilyPond - a music typesetter
+lilypond - the GNU music typesetter
=head1 SYNOPSIS
=head1 DESCRIPTION
-Technically 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. LilyPond is a try at providing
-a simple interface for setting music.
-
+GNU LilyPond which converts music definition files into visual or
+audio output: it can produce formatted sheet music in TeX and
+and mechanical perfomances to MIDI files.
=head1 OPTIONS
=item B<-d,--debug>,
-Turn debugging info. LilyPond will read the file F<.dstreamrc>, which
+Turn debugging info. GNU LilyPond will read the file F<.dstreamrc>, which
tells for what functions and classes may produce copious debugging
output.
=item B<-w,--warranty>,
-Show the warranty with which 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>,
set init file to F<FILE> (default: F<symbol.ini>)
=item B<--include, -I>=F<DIRECTORY>
+
add F<DIRECTORY> to the search path for input files.
=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
=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 a different meters.
=item *
-multiple stafftypes (melodic, rhythmic) [broken from pl28 on]
-=item *
-beams, slurs, chords, super/subscripts (accents and text),
-triplets, general n-plet (triplet, quadruplets, etc.), lyrics
+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. (well, more than 2 voices won't look pretty --yet.)
+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
=back
-=head1 DESIGN CONSIDERATIONS
+=head1 DISCLAIMER & COPYING POLICY
-LilyPond was written with some considerations in mind:
+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>
-=over 5
+=head1 AUTHORS
-=item *
-Describing a well-defined language for defining music. We call
-this language (rather arrogantly) The Musical Definition Language
-(mudela for short). LilyPond reads a mudela sourcefile and outputs a
-TeX file. This musical definition language should:
+Please consult the documentation file AUTHORS for more detailed
+information, and small contributions.
-=over 5
+=over 4
+
+=item *
-=item 1.
-define the musical message of the writer as unambigiously as
-possible.
+Han-Wen Nienhuys <hanwen@stack.nl>, http://www.stack.nl/~hanwen
-=item 2.
-be easily readable. (as compared to, say, MusixTeX input)
+=item *
-=item 3.
-be writable in ASCII (with a simple texteditor).
+Jan Nieuwenhuizen <jan@digicash.com>, http://www.digicash.com/~jan.
=back
-At this time, the language isn't yet defined precisely. It is evolving as
-LilyPond is getting more complex.
-=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.
+=head1 PROBLEMS
-=item *
-LilyPond uses MusiXTeX fonts and TeX for its output. This is not a key
-issue: in a future version, LilyPond might bypass TeX, but at the moment
-TeX is very convenient for producing output.
-=item *
-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.
+There is an extensive list of todoes and bugs. See F<TODO>. In
+general, try to find out
-=item *
-LilyPond does not display notes directly, nor will it be rehacked to be
-used interactively. LilyPond writes output to a file. It will not be
-extended to play music, or to recognize music.
+=over 4
=item *
-LilyPond is intended to run on Unix platforms, but it should
-be portable to any platform which can run TeX and the GNU tools
-=item *
-LilyPond is free. Commercial windows packages for setting music are
-abundant. Free musicprinting software is scarce.
+if the bug has been fixed in a newer release.
=item *
-LilyPond is written in GNU C++. It will not be downgraded/ported to fit
-broken systems.
-=back
+if the bug has been found earlier, consult F<TODO> and F<BUGS>
-=head1
-DISCLAIMER & COPYING POLICY
+=back
-LilyPond is copyright 1996,97 by its authors. LilyPond is
-distributed under the terms of the GNU General Public
-License. LilyPond is provided without any warranty what so ever.
-LilyPond may be freely distributed. For further information consult
-the GNU General Public License, which is in the file F<COPYING>
+If you have found a bug, then you should send a bugreport.
-=head1 AUTHORS
+ - send a copy of the input which causes the error
+ - send a description of the platform you use
+ - send a description of the LilyPond version you use (with
+ compile/config options please)
+ - send a description of the bug itself.
+ - send it to bug-gnu-music@vuse.vanderbilt.edu
-=over 5
+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
-=item *
-Han-Wen Nienhuys <hanwen@stack.nl>, Main author
+ 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 ..
+ :
+ :
-=item *
-Jan Nieuwenhuizen <jan@digicash.com>, Context errors, Lyrics,
-mi2mu, MIDI stuff, make structure, bits of FlowerLib, general
-comments.
+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).
-=item *
-Mats Bengtsson <matsb@s3.kth.se>, bugfixes, testing, general comments.
-=back
+=head1 FILES
-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++
+=over 5
-=head1 EXAMPLES
+=item F<symbol.ini>
-At this time, LilyPond output looks nice, but is not of production
-quality. If you're not discouraged; this is what I type in my xterm:
+The initialisation file with symbol tables etc. It
+includes files from the directory F<init/>.
- lilypond someinput.ly
- tex test
- xdvi test&
+=back
-This is what the output looks like over here:
+=head1 ENVIRONMENT
- 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 ...
+B<LILYINCLUDE> an (one) additional directory for finding lilypond data.
- 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.
+=head1 BUGS
- hw:~/musix/spacer$ xdvi test&
- [1] 855
+=head1 SEE ALSO
-Check out the input files, some of them have comments
+=over 4
+=item lilygut
-=head1 PROBLEMS
+On technical details of LilyPond
-If 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
+=item mudela(5)
- (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 ..
- :
- :
+On the input format
-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).
+=item MANIFESTO
-This is a beta version of LilyPond. Please send your helpful comments
-and patches to me (see AUTHORS section)
+Goals of the GNU LilyPond project.
-LilyPond is updated very frequently, the latest version is always available at:
-ftp://pcnov095.win.tue.nl/pub/lilypond.
+=item FAQ
+The GNU LilyPond FAQ list
-=head1 FILES
+=item http://
-=over 5
+The GNU Music project. GNU LilyPond is part of the GNU Music
+project. For more information on the GNU Music project,
+
+=item http://www.stack.nl/~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
-=item F<symbol.ini>
-The initialisation file with symbol tables etc. It
-includes files from the directory F<init/>.
=back
-=head1 SEE ALSO
+GNU LilyPond is
+updated very frequently, the latest version is always available at:
+ftp://pcnov095.win.tue.nl/pub/lilypond.
+
+For programs which are part of the GNU music project, the following
+mailing list have been setup:
+
+
+=over 4
+
+=item info-gnu-music@vuse.vanderbilt.edu
+
+For information on the GNU Music project, to subscribe: send mail with
+subject "subscribe" to info-gnu-music-request@vuse.vanderbilt.edu
+
+=item help-gnu-music@vuse.vanderbilt.edu
+
+For help with programs from the GNU music project. To subscribe: send
+mail with subject "subscribe" to
+help-gnu-music-request@vuse.vanderbilt.edu
+
+=item bug-gnu-music@vuse.vanderbilt.edu
+
+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@vuse.vanderbilt.edu
+
+=item gnu-music-discuss@vuse.vanderbilt.edu,
+
+For discussions concerning the GNU Music project, to subscribe: send
+mail with subject "subscribe" to
+gnu-music-discuss-request@vuse.vanderbilt.edu,
+
+
+=back
-There are some documentation files in the subdirectory F<Documentation/>,
-among others: lilygut, lilyinput, error, faq,
+Announces of new versions will be sent to info-gnu-music and
+gnu-music-discuss.
=head1 REMARKS
-LilyPond has no connection with the music package RoseGarden, other
+GNU LilyPond has no connection with the music package Rosegarden, other
than the names being similar :-)
=head1 HISTORY
(for a detailed changelog, see F<NEWS>)
-LilyPond's roots lie in MPP, a preprocessor to the rather arcane
+GNU LilyPond's roots lie in MPP, a preprocessor to the rather arcane
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
+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).
horizontal spacing of multiple staffs (april 1996) I coded it (and did
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).
+
+The first large scale release (0.1) was planned after approximately 80
+patchlevels on August 1, 1997.