]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/lilypond.pod
26a6664150d5a40b5ac11abe29d02cd75d1bfd72
[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<--postscript, -p>,
65
66 Try to use PostScript where possible.
67
68 =back
69
70 =head1 FEATURES
71
72 This is an overview of the features that GNU LilyPond supports.  For
73 details on how to use them, you should consult mudela(5).
74
75 =over 5
76
77 =item *
78
79 ASCII script input, with identifiers (for music reuse),
80 customizable notenames, customisable fontset.
81
82 =item *
83
84 MIDI output lets you check if you have entered the correct notes.
85
86 =item *
87
88 MIDI to Mudela conversion through the mi2mu program.
89
90 =item *
91
92 Multiple staffs in one score.  Each staff can have different meters.
93
94 =item *
95
96 Beams, slurs, ties, chords, super/subscripts (accents and text)
97 triplets, general n-plet (triplet, quadruplets, etc.), lyrics,
98 transposition dynamics (both absolute and hairpin style).
99
100 =item *
101
102 Multiple voices within one staff; beams optionally shared
103 between voices.  Up to four voices is handled cleanly.
104
105 =item *
106
107 Multiple scores within one input file.  Each score is output to
108 a different file.
109
110 =item *
111
112 Clef changes, meter changes, cadenza-mode, key changes, repeat bars.
113
114 =back
115
116 =head1 DISCLAIMER AND COPYING POLICY
117
118 GNU LilyPond is copyright 1996, 1997 by its authors.  GNU LilyPond is
119 distributed under the terms of the GNU General Public License.  GNU LilyPond 
120 is provided without any warranty what so ever.
121 GNU LilyPond may be freely distributed.  For further information consult 
122 the GNU General Public License, from the file F<COPYING>.
123
124 =head1 AUTHORS
125
126 Please consult the documentation file AUTHORS for more detailed
127 information, and small contributions. 
128
129 =over 4
130
131 =item *
132
133 Han-Wen Nienhuys <hanwen@stack.nl>, http://www.stack.nl/~hanwen
134
135 =item *
136
137 Jan Nieuwenhuizen <jan@digicash.com>,  http://www.digicash.com/~jan.
138
139 =back
140
141
142 =head1 PROBLEMS
143
144
145 There is an extensive list of todoes and bugs.  See F<TODO>.  In
146 general, try to find out 
147
148 =over 4
149
150 =item *
151
152 If the bug has been fixed in a newer release.  
153
154 =item *
155
156 If the bug has been found earlier, consult F<TODO> and F<BUGS>.
157
158 =back 
159
160 If you have found a bug, then you should send a bugreport.
161
162 =over 4
163
164 =item *
165 Send a copy of the input which causes the error.
166
167 =item *
168 Send a description of the platform you use.
169
170 =item *
171 Send a description of the LilyPond version you use (with
172 compile/configure options please).
173
174 =item *
175 Send a description of the bug itself.
176
177 =item *
178 Send it to bug-gnu-music@gnu.org.
179
180 =back
181
182 It does help if you can find out where the bug comes from: if GNU
183 LilyPond bombs out, then please recompile using with debugging info
184 turned on, and send gdb stacktrace of the crash.  It also helps if you
185 can print the values of the objects.  So if your trace is
186
187         received SIGSEGV 
188         (gdb) backtrace 12
189         #0  Interval::operator+= (this=0x11fffec60..)
190             at ../flower/interval.hh:50
191         #1  0x12005195c in Item::width (this=0x14008a680) at src/item.cc:39
192         #2  0x12008fdbc in itemlist_width (its=0x11fffed58 ..
193           :
194           :
195
196 Than it would help if you send a dump of the Interval and the Item
197 (use: C<print *this> or use LilyPond C<print()> methods).
198
199
200 =head1 FILES
201
202 =over 5
203
204 =item F<lily-init.ly>
205
206 The initialisation file with symbol tables etc.  It
207 includes files from the directory F<init/>.
208
209 =back
210
211 =head1 ENVIRONMENT
212
213 B<LILYINCLUDE> an (one) additional directory for finding lilypond data.
214
215 =head1 BUGS
216
217 Lots of them.  See F<TODO> and F<BUGS>
218
219 =head1 SEE ALSO
220
221 =over 4
222
223 =item lilygut
224
225 On technical details of LilyPond
226
227 =item mudela-man
228
229 On the input format.  This is a LilyPond-enhanced LaTeX document.
230
231 =item MANIFESTO
232
233 Goals of the GNU LilyPond project.
234
235 =item FAQ
236
237 The GNU LilyPond FAQ list
238
239 =item http://www.stack.nl/~hanwen/lilypond/index.html
240
241 GNU LilyPond has her own webpage.  This webpage contains the MIDI, GIF
242 and PS files for some standard music files.  It also has the complete
243 LilyPond documentation
244
245 =back
246
247 GNU LilyPond is
248 updated very frequently, the latest version is always available at:
249 ftp://pcnov095.win.tue.nl/pub/lilypond and
250 ftp://alpha.gnu.org/gnu/lilypond/
251
252
253 For programs which are part of the GNU music project, the following
254 mailing list have been setup:
255
256
257 =over 4
258
259 =item info-gnu-music@gnu.org
260
261 For information on the GNU Music project, to subscribe: send mail with
262 subject "subscribe" to info-gnu-music-request@gnu.org
263
264 =item help-gnu-music@gnu.org
265
266 For help with programs from the GNU music project.  To subscribe: send
267 mail with subject "subscribe" to
268 help-gnu-music-request@gnu.org
269
270 =item bug-gnu-music@gnu.org
271
272 If you have bugreports, you should send them to this list.  If you want
273 to read all bugreports, you should subscribe to this list.  To
274 subscribe: send mail with subject "subscribe" to
275 bug-gnu-music-request@gnu.org
276
277 =item gnu-music-discuss@gnu.org,
278
279 For discussions concerning the GNU Music project, to subscribe: send
280 mail with subject "subscribe" to
281 gnu-music-discuss-request@gnu.org,
282
283
284 =back
285
286 Announces of new versions will be sent to info-gnu-music and
287 gnu-music-discuss.
288
289 =head1  REMARKS
290
291 GNU LilyPond has no connection with the music package Rosegarden, other
292 than the names being similar :-)
293
294 =head1 HISTORY
295
296 (for a  detailed changelog, see F<NEWS>)
297
298 GNU LilyPond's roots lie in MPP, a preprocessor to the rather arcane
299 MusiXTeX macro package for TeX.  A friend of mine, Jan Nieuwenhuizen
300 wrote the first 44 versions (0.01 to 0.44), then his program caught my
301 attention, and I was slowly sucked in to the interesting problem of
302 easily producing beautifully printed music.  I contributed some
303 code.  We soon realised that MPP's design was too fundamentally broken
304 to be repaired, so it was decided to rewrite MPP.  We debated a lot about
305 the requirements to an inputformat (fall 1995).  I sat down and started
306 with a parser-first, bottom-up rewrite called mpp95 (which totally
307 failed, obviously).
308
309 After long and hard thinking, I came up with an algorithm for the
310 horizontal spacing of multiple staffs (april 1996) I coded it (and did
311 not test it).  After starting with this fundamental piece, I slowly
312 added the stages which come before spacing, and after.  A half year
313 later, I had a first working version, (october 1996).  I announced
314 Patchlevel 0.0.7 (or 8) to the mutex list after asking some technical
315 details on spacing; it was downloaded approximately 4 times.  Then I
316 got the hang of it, and in the subsequent two months, I coded until it
317 had doubled in size (pl 23).
318
319 Most the other history is described in the NEWS file.  The first large
320 scale release (0.1) was done after approximately 78 patchlevels on
321 August 1, 1997.
322