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