]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/lilypond.pod
release: 0.0.76
[lilypond.git] / Documentation / lilypond.pod
index 3482fa961c231b1401f4d4edf4c6fb4da8c7d9ee..c0181bc645013e3c33646fd3a8c5c520b89c5d11 100644 (file)
@@ -8,18 +8,9 @@ lilypond - the GNU music typesetter
 
 =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.
-
+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
 
@@ -42,7 +33,8 @@ output.
 
 =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>,
 
@@ -57,12 +49,16 @@ Show a summary of usage
 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 *
@@ -84,18 +80,14 @@ 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, transposition
-dynamics (both absolute and hairpin style)
+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 *
 
@@ -108,180 +100,167 @@ clef changes, meter changes, cadenza-mode, key changes, repeat bars
 
 =back
 
-=head1 DESIGN CONSIDERATIONS
+=head1 DISCLAIMER & COPYING POLICY
 
-GNU 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 *
+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@stack.nl>, http://www.stack.nl/~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.
 
-=item  *
+=back
 
-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.
 
-=item *
+=head1 PROBLEMS
 
-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.
 
-=item *
+There is an extensive list of todoes and bugs. See F<TODO>. In
+general, try to find out 
 
-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
+=over 4
 
 =item *
 
-GNU 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 *
 
-GNU LilyPond is written in GNU C++. It will not be downgraded/ported to fit
-broken systems.
+if the bug has been found earlier, consult F<TODO> and F<BUGS>
 
-=back
+=back 
 
-=head1
-DISCLAIMER & COPYING POLICY
+If you have found a bug, then you should send a bugreport.
 
-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>
+       - 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
 
-=head1 AUTHORS
+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
 
-=over 5
+       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 *
+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).
 
-Han-Wen Nienhuys <hanwen@stack.nl>, http://www.stack.nl/~hanwen
 
-Main author
+=head1 FILES
 
-=item *
+=over 5
 
-Jan Nieuwenhuizen <jan@digicash.com>,  http://www.digicash.com/~jan.
+=item F<symbol.ini>
 
-Context errors, Lyrics, mi2mu, MIDI stuff, make structure, bits of
-FlowerLib, general comments, Mudela design.
+The initialisation file with symbol tables etc. It
+includes files from the directory F<init/>.
 
-=item *
+=back
 
-Mats Bengtsson <matsb@s3.kth.se>, bugfixes, testing, general comments.
+=head1 ENVIRONMENT
 
-=back
+B<LILYINCLUDE> an (one) additional directory for finding lilypond data.
 
-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++
+=head1 BUGS
 
-=head1 EXAMPLES
+=head1 SEE ALSO
 
-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:
+=over 4
 
-       lilypond someinput.ly
-       tex test
-       xdvi test&
+=item lilygut
 
-This is what the output looks like over here:
+On technical details of LilyPond
 
-       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 ...
+=item mudela(5)
 
-       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.
+On the input format
 
-       hw:~/musix/spacer$ xdvi test&
-       [1] 855
+=item MANIFESTO
 
-Check out the input files, some of them have comments
+Goals of the GNU LilyPond project.
 
+=item FAQ
 
-=head1 PROBLEMS
+The GNU LilyPond FAQ list
 
-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
+=item http://
 
-       (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 ..
-         :
-         :
+The GNU Music project. GNU LilyPond is part of the GNU Music
+project. For more information on the GNU Music project, 
 
-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).
+=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
 
-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:
+=back
+
+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:
 
-=head1 FILES
 
-=over 5
+=over 4
 
-=item F<symbol.ini>
-The initialisation file with symbol tables etc. It
-includes files from the directory F<init/>.
+=item info-gnu-music@vuse.vanderbilt.edu
 
-=back
+For information on the GNU Music project, to subscribe: send mail with
+subject "subscribe" to info-gnu-music-request@vuse.vanderbilt.edu
 
-=head1 ENVIRONMENT
+=item help-gnu-music@vuse.vanderbilt.edu
 
-B<LILYINCLUDE> an (one) additional directory for finding lilypond data.
+For help with programs from the GNU music project. To subscribe: send
+mail with subject "subscribe" to
+help-gnu-music-request@vuse.vanderbilt.edu
 
-=head1 SEE ALSO
+=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,
 
-mudela(5)
+For discussions concerning the GNU Music project, to subscribe: send
+mail with subject "subscribe" to
+gnu-music-discuss-request@vuse.vanderbilt.edu,
 
-There are some documentation files  in the subdirectory F<Documentation/>,
-among others: lilygut,  error, faq,
 
-http://www.stack.nl/~hanwen/lilypond/index.html
+=back
+
+Announces of new versions will be sent to info-gnu-music and
+gnu-music-discuss.
 
 =head1  REMARKS
 
@@ -298,7 +277,7 @@ 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).
@@ -307,8 +286,11 @@ 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
 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.