lilypond-1.5.9
[lilypond.git] / Documentation / lilypond.pod
blob8742d2ec6bcaa8cfc0aa6fc84d25127cd57306cf
1 =head1 NAME
3 lilypond - the GNU music typesetter
5 =head1 SYNOPSIS
7         lilypond [options] [inputfiles]
9 =head1 DESCRIPTION
11 LilyPond is the GNU Project music typesetter.  The program generates
12 visual or auditive output from a music definition file: it can typeset 
13 formatted sheet music to a TeX file and play (mechanical) performances 
14 to a MIDI file.
16 =head1 OPTIONS
18 =over 5
20 =item B<-I,--include>=F<FILE>,
22 add F<FILE> to the search path for input files.
24 =item B<-M,--midi>
26 This disables TeX output. If you have a \midi definition, it will do
27 the midi output only.
29 =item B<-d,--debug>,
31 Turn debugging info on.  GNU LilyPond reads the file F<.dstreamrc>, 
32 which lists what functions and classes may produce copious debugging
33 output.
35 =item B<-t,--test>,
37 Switch on any experimental features.  Not for general public use.
39 =item B<-w,--warranty>,
41 Show the warranty with which GNU LilyPond comes. (It comes with B<NO
42 WARRANTY>!)
44 =item B<-o,--output=>F<FILE>,
46 Set the default output file to F<FILE>.
48 =item B<-h,--help>,
50 Show a summary of usage.
52 =item B<-i,--init=>F<FILE>,
54 Set init file to F<FILE> (default: F<lily-init.ly>).
56 =item B<--include, -I>=F<DIRECTORY>,
58 Add F<DIRECTORY> to the search path for input files.
60 =item B<--ignore-version, -V>,
62 Make incompatible mudela version non-fatal.
64 =item B<--no-postscript, -P>,
66 Don't generate embedded PostScript (or MetaFont) symbols, but resort to
67 less beautiful fixed-size versions.
69 LilyPond uses PostScript for variable symbols where possible.  (For some 
70 of these symbols runtime MetaFont source will be genarated too.  These are 
71 not used unless you also include the appropriate  TeX file too.  See 
72 F<tex/fetdefs.tex>.)
74 =back
76 =head1 FEATURES
78 This is an overview of the features that GNU LilyPond supports.  For
79 details on how to use them, you should consult mudela(5).
81 =over 5
83 =item *
85 ASCII script input, with identifiers (for music reuse),
86 customizable notenames, customisable fontset.
88 =item *
90 MIDI output lets you check if you have entered the correct notes.
92 =item *
94 MIDI to Mudela conversion through the mi2mu program.
96 =item *
98 Multiple staffs in one score.  Each staff can have different meters.
100 =item *
102 Beams, slurs, ties, chords, super/subscripts (accents and text)
103 triplets, general n-plet (triplet, quadruplets, etc.), lyrics,
104 transposition dynamics (both absolute and hairpin style).
106 =item *
108 Multiple voices within one staff; beams optionally shared
109 between voices.  Up to four voices is handled cleanly.
111 =item *
113 Multiple scores within one input file.  Each score is output to
114 a different file.
116 =item *
118 Clef changes, meter changes, cadenza-mode, key changes, repeat bars.
120 =back
122 =head1 DISCLAIMER AND COPYING POLICY
124 GNU LilyPond is copyright 1996-1998 by its authors.  GNU LilyPond is
125 distributed under the terms of the GNU General Public License.  GNU LilyPond 
126 is provided without any warranty what so ever.
127 GNU LilyPond may be freely distributed.  For further information consult 
128 the GNU General Public License, from the file F<COPYING>.
130 =head1 AUTHORS
132 Please consult the documentation file AUTHORS for more detailed
133 information, and small contributions. 
135 =over 4
137 =item *
139 Han-Wen Nienhuys <hanwen@cs.ruu.nl>, http://www.cs.ruu.nl/people/hanwen
141 =item *
143 Jan Nieuwenhuizen <jan@digicash.com>,  http://www.digicash.com/~jan.
145 =back
148 =head1 PROBLEMS
151 There is an extensive list of todoes and bugs.  See F<TODO>.  If you
152 have a problem you should try to find out
154 =over 4
156 =item *
158 If the bug has been fixed in a newer release.  
160 =item *
162 If the bug has been found earlier, consult F<TODO> and F<BUGS>.
164 =back 
166 If you have found a bug, then you should send a bugreport.
168 =over 4
170 =item *
171 Send a copy of the input which causes the error.
173 =item *
174 Send a description of the platform you use.
176 =item *
177 Send a description of the LilyPond version you use (with
178 compile/configure options please).
180 =item *
181 Send a description of the bug itself.
183 =item *
184 Send it to bug-gnu-music@gnu.org (you don't have to subscribe
185 to this mailinglist).
187 =back
189 It does help if you can find out where the bug comes from: if GNU
190 LilyPond bombs out, then please recompile using with debugging info
191 turned on, and send gdb stacktrace of the crash.  It also helps if you
192 can print the values of the objects.  So if your trace is
194         received SIGSEGV 
195         (gdb) backtrace 12
196         #0  Interval::operator+= (this=0x11fffec60..)
197             at ../flower/interval.hh:50
198         #1  0x12005195c in Item::width (this=0x14008a680) at src/item.cc:39
199         #2  0x12008fdbc in itemlist_width (its=0x11fffed58 ..
200           :
201           :
203 Than it would help if you send a dump of the Interval and the Item
204 (use: C<print *this> or use LilyPond C<print()> methods).
207 =head1 FILES
209 =over 5
211 =item F<lily-init.ly>
213 The initialisation file with symbol tables etc.  It
214 includes files from the directory F<init/>.
216 =back
218 =head1 ENVIRONMENT
220 B<LILYINCLUDE> an (one) additional directory for finding lilypond data.
222 =head1 BUGS
224 Lots of them.  See F<TODO> and F<BUGS>
226 =head1 SEE ALSO
228 =over 4
230 =item internals
232 On technical details of LilyPond
234 =item mudela-man
236 On the input format.  This is a LilyPond-enhanced LaTeX document.
238 =item MANIFESTO
240 Goals of the GNU LilyPond project.
242 =item FAQ
244 The GNU LilyPond FAQ list
246 =item http://www.cs.ruu.nl/people/hanwen/lilypond/index.html
248 GNU LilyPond has her own webpage.  This webpage contains the MIDI, GIF
249 and PS files for some standard music files.  It also has the complete
250 LilyPond documentation
252 =back
254 GNU LilyPond is
255 updated very frequently, the latest version is always available at:
256 ftp://pcnov095.win.tue.nl/pub/lilypond and
257 ftp://alpha.gnu.org/gnu/lilypond/
260 For programs which are part of the GNU music project, the following
261 mailing list have been setup:
264 =over 4
266 =item info-gnu-music@gnu.org
268 For information on the GNU Music project, to subscribe: send mail with
269 subject "subscribe" to info-gnu-music-request@gnu.org
271 =item help-gnu-music@gnu.org
273 For help with programs from the GNU music project.  To subscribe: send
274 mail with subject "subscribe" to
275 help-gnu-music-request@gnu.org
277 =item bug-gnu-music@gnu.org
279 If you have bugreports, you should send them to this list.  If you want
280 to read all bugreports, you should subscribe to this list.  To
281 subscribe: send mail with subject "subscribe" to
282 bug-gnu-music-request@gnu.org
284 =item gnu-music-discuss@gnu.org,
286 For discussions concerning the GNU Music project, to subscribe: send
287 mail with subject "subscribe" to
288 gnu-music-discuss-request@gnu.org,
291 =back
293 Announces of new versions will be sent to info-gnu-music and
294 gnu-music-discuss.
296 =head1  REMARKS
298 GNU LilyPond has no connection with the music package Rosegarden, other
299 than the names being similar :-)
301 =head1 HISTORY
303 (for a  detailed changelog, see F<NEWS>)
305 GNU LilyPond's roots lie in MPP, a preprocessor to the rather arcane
306 MusiXTeX macro package for TeX.  A friend of mine, Jan Nieuwenhuizen
307 wrote the first 44 versions (0.01 to 0.44), then his program caught my
308 attention, and I was slowly sucked in to the interesting problem of
309 easily producing beautifully printed music.  I contributed some
310 code.  We soon realised that MPP's design was too fundamentally broken
311 to be repaired, so it was decided to rewrite MPP.  We debated a lot about
312 the requirements to an inputformat (fall 1995).  I sat down and started
313 with a parser-first, bottom-up rewrite called mpp95 (which totally
314 failed, obviously).
316 After long and hard thinking, I came up with an algorithm for the
317 horizontal spacing of multiple staffs (april 1996) I coded it (and did
318 not test it).  After starting with this fundamental piece, I slowly
319 added the stages which come before spacing, and after.  A half year
320 later, I had a first working version, (october 1996).  I announced
321 Patchlevel 0.0.7 (or 8) to the mutex list after asking some technical
322 details on spacing; it was downloaded approximately 4 times.  Then I
323 got the hang of it, and in the subsequent two months, I coded until it
324 had doubled in size (pl 23).
326 Most the other history is described in the NEWS file.  The first large
327 scale release (0.1) was done after approximately 78 patchlevels on
328 August 1, 1997.