]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/faq.yo
14dbafd8565cc23e98c9e4661e002d0223329415
[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@scar.utoronto.edu) is working on
257 GTK based editor, but that is still in an embryonal stage (see
258 lurl(http://harmonia.scar.utoronto.ca).  There is also a GUI package
259 RoseGarden that could be extended to output mudela.
260
261 If you want to work on this, please send e-mail to the mailing list
262 email(gnu-misc-discuss@gnu.org).
263
264
265 question(I want to implement XXXX!  How should I do this?)
266
267 Your best bet of getting us to include code, is to present it as a
268 "fait accompli", i.e., to send a patch to the mailing list.
269
270
271 question(I made some code, how do I get you to include it?)
272
273 Send in a patch:
274 verb(
275         diff -urN old-file new-file > patch
276 )
277 or 
278 verb(
279         diff -urN old-directory/ new-directory/ > patch 
280 )
281 Alternatively, you can use issue the command
282 verb(
283         make diff
284 )
285
286 Don't forget to put your name and e-mail address
287 in the file(AUTHORS.pod) file, or you won't get credits :-]
288
289
290 question(How do I learn the C++ code?)
291
292 The entry point is in code(main()). Good luck. :-)
293
294 Seriously, read, reread and reread internals and CodingStyle, and
295 just start anywhere. 
296
297 Anywhere? Well, most of the comment doco are in the header files, so
298 your best bet would be code(less lily/include/*.hh). Some of the most
299 important data-structures are to be found in:
300 verb(
301         - *request.hh
302         - engraver.hh
303         - performer.hh
304         - translator.hh
305         - score-elem.hh
306         - music.hh
307         - music-list.hh
308         - music-iterator.hh
309         - item.hh
310         - spanner.hh
311 )
312
313 question(Why GPL?)
314
315 Yes.
316
317
318 question(Your make system does not adhere to GNU coding standards, could you
319 please fix it?)
320
321 No.  We have evaluated the standard GNU combination for compiling
322 programs (autoconf, automake, libtool) and found to be inadequate in
323 several respects.  More detailed argumentation is included with
324 LilyPond's generic make package code(StepMake) 
325 (see file(stepmake-x.x.x/Documentation/automake.urgh))
326
327 LilyPond already compiles into a different directory ((the different
328 directory is called out/, there is one in every source directory).
329 make distclean essentially reduces to file(rm -f out/*) in every directory
330
331
332 question(gdb crashes when I debug!)
333
334 Upgrade to 4.17.
335
336 question(Why do I need g++ >= 2.7?)
337
338 By using g++, GNU LilyPond is portable to all platforms which support
339 g++ (there are quite a few).  Not having to support other compilers
340 saves us a em(lot) of trouble. 
341
342
343 sect(Running)
344
345
346 question(I use dvilj4, and there are lots of warning messages for the
347 printing)
348
349 You should use dvips and ghostscript to print the code(dvi) output:
350 the slurs and beams are PS code(\special) commands.
351
352
353 question(My symbols are all messed up after I upgraded, I get the
354 wrong symbols and dvi-checksum errors!)
355
356 We obviously mucked with the fonts in the upgrade.  Remove em(all)
357 previous fonts, including the file(.pk) and file(.tfm) fonts in
358 file(/var/lib/texmf).  A script automating this has been included, see
359 file(buildscripts/clean-fonts.sh).
360
361
362 question(The beams and slurs are gone if use the XDvi magnifying glass!?)
363
364 The beams and slurs are done in PostScript.  XDvi doesn't show
365 PostScript in the magnifying glass.  Complain to the XDvi maintainers.
366
367
368 question(I don't get midi-output, even if I use bf(-M)!)
369
370 Your \score should include a \midi block, eg.
371 verb(
372         \score {
373                 \melodic { c4 c g g }
374                 \paper {}       
375                 \midi {
376                         \output "myfile.mid";
377                         \tempo 4=70;
378                 }
379         }
380 )
381 The bf(-M) option was added to LilyPond because processing the \paper
382 block is so slow.
383
384 question(A lot of musical stuff doesn't make it to the MIDI file, eg.
385 dynamics, articulation, etc.)
386
387 The MIDI output was originally put in as a proof that MIDI could be
388 done, and as a method of proof"reading" the input.  The MIDI support
389 is by no means finished.  Patches appreciated.
390
391 sect(Windows32)
392
393 question(I downloaded the windows32 port, and it doesn't match the website!)
394
395 The website is usually made from the latest snapshots.  Binary releases,
396 in particular the windows32 binaries, are only made every once in a while.
397 They may lag several versions behind the latest version. 
398
399 question(But i want a native DOS/Windows-NT/95 port)
400
401 Reconsider.  Try Linux.  It's fun!
402