]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/lilypond.pod
8742d2ec6bcaa8cfc0aa6fc84d25127cd57306cf
[lilypond.git] / Documentation / lilypond.pod
1 =head1 NAME
2
3 lilypond - the GNU music typesetter
4
5 =head1 SYNOPSIS
6
7         lilypond [options] [inputfiles]
8
9 =head1 DESCRIPTION
10
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.
15
16 =head1 OPTIONS
17
18 =over 5
19
20 =item B<-I,--include>=F<FILE>,
21
22 add F<FILE> to the search path for input files.
23
24 =item B<-M,--midi>
25
26 This disables TeX output. If you have a \midi definition, it will do
27 the midi output only.
28
29 =item B<-d,--debug>,
30
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.
34
35 =item B<-t,--test>,
36
37 Switch on any experimental features.  Not for general public use.
38
39 =item B<-w,--warranty>,
40
41 Show the warranty with which GNU LilyPond comes. (It comes with B<NO
42 WARRANTY>!)
43
44 =item B<-o,--output=>F<FILE>,
45
46 Set the default output file to F<FILE>.
47
48 =item B<-h,--help>,
49
50 Show a summary of usage.
51
52 =item B<-i,--init=>F<FILE>,
53
54 Set init file to F<FILE> (default: F<lily-init.ly>).
55
56 =item B<--include, -I>=F<DIRECTORY>,
57
58 Add F<DIRECTORY> to the search path for input files.
59
60 =item B<--ignore-version, -V>,
61
62 Make incompatible mudela version non-fatal.
63
64 =item B<--no-postscript, -P>,
65
66 Don't generate embedded PostScript (or MetaFont) symbols, but resort to
67 less beautiful fixed-size versions.
68
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>.)
73
74 =back
75
76 =head1 FEATURES
77
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).
80
81 =over 5
82
83 =item *
84
85 ASCII script input, with identifiers (for music reuse),
86 customizable notenames, customisable fontset.
87
88 =item *
89
90 MIDI output lets you check if you have entered the correct notes.
91
92 =item *
93
94 MIDI to Mudela conversion through the mi2mu program.
95
96 =item *
97
98 Multiple staffs in one score.  Each staff can have different meters.
99
100 =item *
101
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).
105
106 =item *
107
108 Multiple voices within one staff; beams optionally shared
109 between voices.  Up to four voices is handled cleanly.
110
111 =item *
112
113 Multiple scores within one input file.  Each score is output to
114 a different file.
115
116 =item *
117
118 Clef changes, meter changes, cadenza-mode, key changes, repeat bars.
119
120 =back
121
122 =head1 DISCLAIMER AND COPYING POLICY
123
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>.
129
130 =head1 AUTHORS
131
132 Please consult the documentation file AUTHORS for more detailed
133 information, and small contributions. 
134
135 =over 4
136
137 =item *
138
139 Han-Wen Nienhuys <hanwen@cs.ruu.nl>, http://www.cs.ruu.nl/people/hanwen
140
141 =item *
142
143 Jan Nieuwenhuizen <jan@digicash.com>,  http://www.digicash.com/~jan.
144
145 =back
146
147
148 =head1 PROBLEMS
149
150
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
153
154 =over 4
155
156 =item *
157
158 If the bug has been fixed in a newer release.  
159
160 =item *
161
162 If the bug has been found earlier, consult F<TODO> and F<BUGS>.
163
164 =back 
165
166 If you have found a bug, then you should send a bugreport.
167
168 =over 4
169
170 =item *
171 Send a copy of the input which causes the error.
172
173 =item *
174 Send a description of the platform you use.
175
176 =item *
177 Send a description of the LilyPond version you use (with
178 compile/configure options please).
179
180 =item *
181 Send a description of the bug itself.
182
183 =item *
184 Send it to bug-gnu-music@gnu.org (you don't have to subscribe
185 to this mailinglist).
186
187 =back
188
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
193
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           :
202
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).
205
206
207 =head1 FILES
208
209 =over 5
210
211 =item F<lily-init.ly>
212
213 The initialisation file with symbol tables etc.  It
214 includes files from the directory F<init/>.
215
216 =back
217
218 =head1 ENVIRONMENT
219
220 B<LILYINCLUDE> an (one) additional directory for finding lilypond data.
221
222 =head1 BUGS
223
224 Lots of them.  See F<TODO> and F<BUGS>
225
226 =head1 SEE ALSO
227
228 =over 4
229
230 =item internals
231
232 On technical details of LilyPond
233
234 =item mudela-man
235
236 On the input format.  This is a LilyPond-enhanced LaTeX document.
237
238 =item MANIFESTO
239
240 Goals of the GNU LilyPond project.
241
242 =item FAQ
243
244 The GNU LilyPond FAQ list
245
246 =item http://www.cs.ruu.nl/people/hanwen/lilypond/index.html
247
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
251
252 =back
253
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/
258
259
260 For programs which are part of the GNU music project, the following
261 mailing list have been setup:
262
263
264 =over 4
265
266 =item info-gnu-music@gnu.org
267
268 For information on the GNU Music project, to subscribe: send mail with
269 subject "subscribe" to info-gnu-music-request@gnu.org
270
271 =item help-gnu-music@gnu.org
272
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
276
277 =item bug-gnu-music@gnu.org
278
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
283
284 =item gnu-music-discuss@gnu.org,
285
286 For discussions concerning the GNU Music project, to subscribe: send
287 mail with subject "subscribe" to
288 gnu-music-discuss-request@gnu.org,
289
290
291 =back
292
293 Announces of new versions will be sent to info-gnu-music and
294 gnu-music-discuss.
295
296 =head1  REMARKS
297
298 GNU LilyPond has no connection with the music package Rosegarden, other
299 than the names being similar :-)
300
301 =head1 HISTORY
302
303 (for a  detailed changelog, see F<NEWS>)
304
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).
315
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).
325
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.
329