]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/faq.yo
patch::: 1.1.0.uu2.jcn1: fixjes
[lilypond.git] / Documentation / faq.yo
1 article(FAQ - GNU LilyPond FAQs)()()()
2
3 DEFINEMACRO(question)(1)(subsect(ARG1))
4
5 sect(Miscellaneous)
6
7 question(HELP! I'm stuck!)
8
9 Please read this document carefully.  If you are still at loss,
10 send your questions to the bf(mailing list), and not to authors
11 directly.
12
13 Note: relative paths are meant to be relative to the source directory
14
15 sect(Installing)
16
17 question(If I install the .exe file on my DOS/windows 3.11 machine, it
18 doesn't work.)
19
20 The DOS port is done with the cygnus gnu/windows32 port of the GNU utils.
21 It does em(not) work with windows 3.x; you need Windows-NT (95/98?).  This
22 is not a recommendation, however.  We recommend you use Unix, in
23 particular, use GNU/Linux.  For further information see file(README-W32).
24
25 question(I get all kinds of errors while  compiling file(parser.cc))
26
27 LilyPond uses features of bison version 1.25. Please confirm that
28 you are using a version 1.25 or better, that is bf(GNU) bison
29 bf(1.25). Don't forget to do "make clean" after installing it. Don't
30 forget to remove the stale file(bison.simple) as well.
31
32 If the problem persists, then please send a bug report to the mailing list.
33
34 question(I upgraded by applying a patch, and now my configure/build breaks.)
35
36 Patches don't include automatically generated files, i.e. 
37 file(configure) and files generated by file(configure).  Regenerate them 
38 yourself:
39 verb(
40     autoconf
41     configure
42 )
43 You might need to create some extra "out" directories.  Do this with
44 verb(
45     make outdirs
46 )
47 question(Some of your neat scripts fail, what directories do you use:)
48
49 [This only applies if you don't do code(make install), and develop out
50 of the source directory]
51
52 I have a directory which contains all our development projects
53 verb(
54     ~/usr/
55 )
56
57 which looks like file(/usr/)
58 verb(
59     bin/
60     share
61     lib/
62     share/
63     src/
64
65     etc....
66 )
67
68 The directory  file(~/usr/src/) contains something like
69 includefile(../stepmake/Documentation/layout.yo)
70 )       
71
72 ~/usr/src/bin is in the PATH, and contains symbolic links to the
73 compiled executables.
74
75 question(Is there an emacs mode?)
76
77 Yes.  It is included with the source archive as mudela-mode.el.  If
78 you have an rpm it is in /usr/doc/lilypond-X/.  You have to install it
79 yourself.
80
81 question(How do i create the file(.tfm) files?)
82
83 You don't.  The file(.tfm) files should be generated automatically by
84 Metafont when you run TeX().  Check your TeX() installation, or ask
85 your local TeX() guru.  The supplied file(.afm) files are intended to
86 be used by LilyPond, not by any other programs.
87
88
89 sect(Documentation)
90
91 question(Why is the documentation/website/etc. so lousy?)
92
93 LilyPond development is moving quite fast, documentation will often
94 lag a bit behind.  We must always make a choice between writing more
95 doco, writing more code and answering email.
96
97 If you think you can make a correction, or devised a solution that 
98 should be documented, please do so and send in a patch.
99
100 sect(Language: mudela)
101
102 question(Why can't you type code(#c) in stead of code(cis) ?)
103
104 We think that code(#c) looks as if you are entering the symbols to
105 print (which you are not; remember, you're entering the musical
106 content in Mudela)
107
108
109 question(Why do I have to type the accidentals to the note if I specified them?)
110
111 Take this example
112 verb(
113     cis cis
114 )
115 Independently of how it was written and what the current key was, you
116 would say that you are playing and reading "two C-sharp" notes.  We
117 have tried to make the language somewhat context-free.  Of course
118 sheet music is not context-free.  Unfortunately, sheet music is also 2
119 dimensional, and ASCII is not.
120
121 Technically it would be feasible to have the Interpreting phase do
122 tricky things to add (or leave out) the accidentals, but we think that
123 it is impractical: it hampers the readability and portability of your
124 source, since you need LilyPond to fill in the details and actually
125 make sense of it.
126
127
128 question(What is code(cis) anyway)
129
130 code(cis) is the dutch naming for C-sharp. The notes are named
131 a, b,.., g. The suffix -is means sharp, and -es flat. This system is
132 common in a number of languages (such as swedish, dutch, german.)
133 Certain other languages (such as English, French and Italian) just add
134 the word for "sharp" to the notename.
135
136 We chose the Dutch system, because we're dutch. You are free to chose
137 whatever names you like; they are user definable.
138
139
140 question(Why are [] around the notes, and () inbetween?)
141
142 [] designate beams, a note can only be in one beam at the same
143 time. () is a slur, which connects notes.  You need to be able to 
144 specify
145 verb(
146     a()a()a
147 )
148
149 question(I want to insert some TeX commands.)
150
151 You shouldn't: it's against LilyPond philosophy to have typesetting
152 commands in the mudela source. Moreover, this would be difficult.
153 LilyPond uses TeX like a glorified output engine: the output consists
154 of (x,y) positions and symbols.  You can only sensibly do TeX stuff in
155 the symbol string.  You can access the symbol string easily for some
156 symbols (notably lyrics and code(^"text") commands).
157
158
159 sect(Do you support ...)
160
161 question(Do you support pop songs (chords, single staff, lyrics)?)
162
163 Yes, see the file(twinkle-pop) example.
164
165
166 question(Do you support guitar chord diagrams?)
167
168 No, not yet. We ourselves don't play guitar, and don't know the
169 fine points of this notation.  We would welcome anyone who could give
170 this a try.
171
172 question(Do you support TAB notation?)
173
174 No. The same as for the previous question goes, but TAB is a lot
175 more work than diagrams (TAB needs modification of Parser, Lexer,
176 Staff, Notehead, Stem code and all the code that creates these graphic
177 elements.)
178
179 question(Do you support multiple staff-sizes?)
180
181 Yes and no.  At this time you can choose between 11, 13, 16, 19,
182 20, 23 and 20 pt staff-size.  The sizes can't be changed per staff
183 (yet).  Look at file(standchen.ly) for an example.
184
185
186 question(Do you support Gregorian chant notation?)
187
188 No.  There is no reason why LilyPond can't be extended to do so, but
189 we haven't done it yet (and there are currently no plans to do it).
190
191
192 sect(How do I ....)
193
194 question(How do I change the TeX layout?)
195
196 See file(lilyponddefs.tex), it has some comments.  Or use file(ly2dvi).
197
198 question(How do I place lyrics under em(each) of the staves in a
199 score, as choral music. I can work out how to put lyrics for each line
200 all under the top line, or at the bottom but not between!)
201
202 You change the order lyrics and staves.  You have to name all
203 staves (lyric and melodic), otherwise they will end up in the same
204 staff/lyricline
205 verb(   
206         \score {
207                 < \melodic \type Staff = "treble" \trebleMelody
208                   \lyric \type Lyrics = "tlyrics" \trebtext
209                   \type Staff = "bass" \melodic \bassMelody        
210                   \lyric \type Lyrics = "blyrics" \basstext      
211                 >
212                 \paper {  }
213         }
214 )
215
216 question(How do I put more than one marking on a note.)
217
218 You can stack them 
219 verb(
220         c4^"a"^"b"
221 )
222 or use spacing-notes to put markings at different horizontal positions 
223 verb(
224         < c1
225           { s4\ff s4^"text" s4-\marcato s4 }
226         >
227 )
228 This also works for crescendi, eg,
229 verb(
230         < c1
231           { s4\< s2 \! s4 }
232         >
233 )
234
235
236 question(How do I get bar numbers?)
237
238 See file(init/engraver.ly).  You have to uncomment some entries.  To
239 do this  `portably' you should redefine some engravers in your own
240 source files.  Check out file(init/rhythm.ly).
241
242
243 sect(Development)
244
245 question(Could you implement feature XXXX? It is really easy, just extend
246 the syntax to allow YYYY!)
247
248 If it is reasonable, I'll add XXXX to the TODO list. In general
249 finding a cute syntax (such as YYYY) isn't very hard. The complicated
250 issue how to adapt the internals to do XXXX. The parser is really a
251 simple front end to the complicated internals. 
252
253
254 question(Can I join in on LilyPond development?  How do I do this?)
255
256 LilyPond development is open for anyone who wants to join.  We try
257 to use a Bazaar style development model for LilyPond, see
258 lurl(http://locke.ccil.org/~esr/writings/cathedral.html.)  This means:
259 frequent releases, everyone can send in a patch or do suggestions and
260 all development discussions are public.
261
262 To be precise, discussions take place on the gnu-music-discuss mailing
263 list, which is open for subscription to everyone.
264
265
266 question(I want to implement XXXX!  Should I do this?)
267
268 There might be better ways of doing XXXX, so it's a good thing to
269 ask about this before you start hacking.  If you want to keep in touch
270 with current developments, you should subscribe to the mailing list
271 (see the "links" section of the documentation).
272
273
274 question(Is there a GUI frontend?  Should I start building one?)
275
276 LilyPond currently has no graphical interface.  The authors seriously
277 doubt if a simple-minded approach (dragging and dropping notes) is any
278 easier or quicker to use than mudela.  But for composing a graphical
279 environment probably is indispensable.
280
281 In any case email(Derek Wyatt)(wyatt@scar.utoronto.edu) is working on
282 GTK based editor, but that is still in an embryonal stage (see
283 lurl(http://harmonia.scar.utoronto.ca).  There is also a GUI package
284 RoseGarden that could be extended to output mudela.
285
286 If you want to work on this, please send e-mail to the mailing list
287 email(gnu-misc-discuss@gnu.org).
288
289
290 question(I want to implement XXXX!  How should I do this?)
291
292 Your best bet of getting us to include code, is to present it as a
293 "fait accompli", i.e., to send a patch to the mailing list.
294
295
296 question(I made some code, how do I get you to include it?)
297
298 Send in a patch:
299 verb(
300         diff -urN old-file new-file > patch
301 )
302 or 
303 verb(
304         diff -urN old-directory/ new-directory/ > patch 
305 )
306 Alternatively, you can use issue the command
307 verb(
308         make diff
309 )
310
311 Don't forget to put your name and e-mail address
312 in the file(AUTHORS.pod) file, or you won't get credits :-]
313
314
315 question(How do I learn the C++ code?)
316
317 The entry point is in code(main()). Good luck. :-)
318
319 Seriously, read, reread and reread internals and CodingStyle, and
320 just start anywhere. 
321
322 Anywhere? Well, most of the comment doco are in the header files, so
323 your best bet would be code(less lily/include/*.hh). Some of the most
324 important data-structures are to be found in:
325 verb(
326         - *request.hh
327         - engraver.hh
328         - performer.hh
329         - translator.hh
330         - score-elem.hh
331         - music.hh
332         - music-list.hh
333         - music-iterator.hh
334         - item.hh
335         - spanner.hh
336 )
337
338 question(Why GPL?)
339
340 Yes.
341
342
343 question(Your make system does not adhere to GNU coding standards, could you
344 please fix it?)
345
346 No.  We have evaluated the standard GNU combination for compiling
347 programs (autoconf, automake, libtool) and found to be inadequate in
348 several respects.  More detailed argumentation is included with
349 LilyPond's generic make package code(StepMake) 
350 (see file(stepmake-x.x.x/Documentation/automake.urgh))
351
352 LilyPond already compiles into a different directory ((the different
353 directory is called out/, there is one in every source directory).
354 make distclean essentially reduces to file(rm -f out/*) in every directory
355
356
357 question(gdb crashes when I debug!)
358
359 Upgrade to 4.17.
360
361 question(Why do I need g++ >= 2.7?)
362
363 By using g++, GNU LilyPond is portable to all platforms which support
364 g++ (there are quite a few).  Not having to support other compilers
365 saves us a em(lot) of trouble. 
366
367
368 sect(Running)
369
370
371 question(I use dvilj4, and there are lots of warning messages for the
372 printing)
373
374 You should use dvips and ghostscript to print the code(dvi) output:
375 the slurs and beams are PS code(\special) commands.
376
377
378 question(My symbols are all messed up after I upgraded, I get the
379 wrong symbols and dvi-checksum errors!)
380
381 We obviously mucked with the fonts in the upgrade.  Remove em(all)
382 previous fonts, including the file(.pk) and file(.tfm) fonts in
383 file(/var/lib/texmf).  A script automating this has been included, see
384 file(bin/clean-fonts.sh).
385
386
387 question(The beams and slurs are gone if use the XDvi magnifying glass!?)
388
389 The beams and slurs are done in PostScript.  XDvi doesn't show
390 PostScript in the magnifying glass.  Complain to the XDvi maintainers.
391
392
393 question(I don't get midi-output, even if I use bf(-M)!)
394
395 Your \score should include a \midi block, eg.
396 verb(
397         \score {
398                 \melodic { c4 c g g }
399                 \paper {}       
400                 \midi {
401                         \output "myfile.mid";
402                         \tempo 4=70;
403                 }
404         }
405 )
406 The bf(-M) option was added to LilyPond because processing the \paper
407 block is so slow.
408
409 question(A lot of musical stuff doesn't make it to the MIDI file, eg.
410 dynamics, articulation, etc.)
411
412 The MIDI output was originally put in as a proof that MIDI could be
413 done, and as a method of proof"reading" the input.  The MIDI support
414 is by no means finished.  Patches appreciated.
415
416 sect(Windows32)
417
418 question(I downloaded the windows32 port, and it doesn't match the website!)
419
420 The website is usually made from the latest snapshots.  Binary releases,
421 in particular the windows32 binaries, are only made every once in a while.
422 They may lag several versions behind the latest version. 
423
424 question(But i want a native DOS/Windows-NT/95 port)
425
426 Reconsider.  Try Linux.  It's fun!
427