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