]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/faq.yo
a87888661023605873613fbb1fad71c012d84fc8
[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(Where is guile-config)
26
27 RedHat RPMS don't include guile-config.  You need guile-config as it
28 was produced during the RPM build run.  Build the RPM from source
29 (file(.src.rpm)), and use the guile-config that is in
30 file(/usr/src/redhat/BUILD/guile-1.3/guile-config/).
31
32
33 question(I get all kinds of errors while  compiling file(parser.cc))
34
35 LilyPond uses features of bison version 1.25. Please confirm that
36 you are using a version 1.25 or better, that is bf(GNU) bison
37 bf(1.25). Don't forget to do "make clean" after installing it. Don't
38 forget to remove the stale file(bison.simple) as well.
39
40 If the problem persists, then please send a bug report to the mailing list.
41
42 question(I upgraded by applying a patch, and now my configure/build breaks.)
43
44 Patches don't include automatically generated files, i.e. 
45 file(configure) and files generated by file(configure).  Regenerate them 
46 yourself:
47 verb(
48     autoconf
49     configure
50 )
51 You might need to create some extra "out" directories.  Do this with
52 verb(
53     make outdirs
54 )
55 question(Some of your neat scripts fail, what directories do you use:)
56
57 [This only applies if you don't do code(make install), and develop out
58 of the source directory]
59
60 I have a directory which contains all our development projects
61 verb(
62     ~/usr/
63 )
64
65 which looks like file(/usr/)
66 verb(
67     bin/
68     share
69     lib/
70     share/
71     src/
72
73     etc....
74 )
75
76 The directory  file(~/usr/src/) contains something like
77 includefile(../stepmake/Documentation/layout.yo)
78 )       
79
80 ~/usr/src/bin is in the PATH, and contains symbolic links to the
81 compiled executables.
82
83 question(Is there an emacs mode?)
84
85 Yes.  It is included with the source archive as mudela-mode.el.  If
86 you have an rpm it is in /usr/doc/lilypond-X/.  You have to install it
87 yourself.
88
89 question(How do i create the file(.tfm) files?)
90
91 You don't.  The file(.tfm) files should be generated automatically by
92 Metafont when you run TeX().  Check your TeX() installation, or ask
93 your local TeX() guru.  The supplied file(.afm) files are intended to
94 be used by LilyPond, not by any other programs.
95
96
97 sect(Documentation)
98
99 question(Why is the documentation/website/etc. so lousy?)
100
101 LilyPond development is moving quite fast, documentation will often
102 lag a bit behind.  We must always make a choice between writing more
103 doco, writing more code and answering email.
104
105 If you think you can make a correction, or devised a solution that 
106 should be documented, please do so and send in a patch.
107
108 sect(Language: mudela)
109
110 question(Why can't you type code(#c) in stead of code(cis) ?)
111
112 We think that code(#c) looks as if you are entering the symbols to
113 print (which you are not; remember, you're entering the musical
114 content in Mudela)
115
116
117 question(Why do I have to type the accidentals to the note if I specified them?)
118
119 Take this example
120 verb(
121     cis cis
122 )
123 Independently of how it was written and what the current key was, you
124 would say that you are playing and reading "two C-sharp" notes.  We
125 have tried to make the language somewhat context-free.  Of course
126 sheet music is not context-free.  Unfortunately, sheet music is also 2
127 dimensional, and ASCII is not.
128
129 Technically it would be feasible to have the Interpreting phase do
130 tricky things to add (or leave out) the accidentals, but we think that
131 it is impractical: it hampers the readability and portability of your
132 source, since you need LilyPond to fill in the details and actually
133 make sense of it.
134
135
136 question(What is code(cis) anyway)
137
138 code(cis) is the dutch naming for C-sharp. The notes are named
139 a, b,.., g. The suffix -is means sharp, and -es flat. This system is
140 common in a number of languages (such as swedish, dutch, german.)
141 Certain other languages (such as English, French and Italian) just add
142 the word for "sharp" to the notename.
143
144 We chose the Dutch system, because we're dutch. You are free to chose
145 whatever names you like; they are user definable.
146
147
148 question(Why are [] around the notes, and () inbetween?)
149
150 [] designate beams, a note can only be in one beam at the same
151 time. () is a slur, which connects notes.  You need to be able to 
152 specify
153 verb(
154     a()a()a
155 )
156
157 question(I want to insert some TeX commands.)
158
159 You shouldn't: it's against LilyPond philosophy to have typesetting
160 commands in the mudela source. Moreover, this would be difficult.
161 LilyPond uses TeX like a glorified output engine: the output consists
162 of (x,y) positions and symbols.  You can only sensibly do TeX stuff in
163 the symbol string.  You can access the symbol string easily for some
164 symbols (notably lyrics and code(^"text") commands).
165
166
167 sect(Do you support ...)
168
169 question(Do you support pop songs (chords, single staff, lyrics)?)
170
171 Yes, see the file(twinkle-pop) example.
172
173
174 question(Do you support guitar chord diagrams?)
175
176 No, not yet. We ourselves don't play guitar, and don't know the
177 fine points of this notation.  We would welcome anyone who could give
178 this a try.
179
180 question(Do you support TAB notation?)
181
182 No. The same as for the previous question goes, but TAB is a lot
183 more work than diagrams (TAB needs modification of Parser, Lexer,
184 Staff, Notehead, Stem code and all the code that creates these graphic
185 elements.)
186
187 question(Do you support multiple staff-sizes?)
188
189 Yes.  At this time you can choose between 11, 13, 16, 19, 20, 23 and
190 20 pt staff-size.  Use the staffLineLeading property for setting the
191 size of the staff, and fontSize for setting the size of the glyphs.
192
193 question(Do you support Gregorian chant notation?)
194
195 No.  There is no reason why LilyPond can't be extended to do so, but
196 we haven't done it yet (and there are currently no plans to do it).
197
198 question(Do you support grace notes?)
199
200 No.  But they can kludged.  See file(input/test/grace.ly)
201
202
203 sect(How do I ....)
204
205 question(How do I change the TeX layout?)
206
207 See file(lilyponddefs.tex), it has some comments.  Or use file(ly2dvi).
208
209 question(How do I place lyrics under em(each) of the staves in a
210 score, as choral music. I can work out how to put lyrics for each line
211 all under the top line, or at the bottom but not between!)
212
213 You change the order lyrics and staves.  You have to name all
214 staves (lyric and melodic), otherwise they will end up in the same
215 staff/lyricline
216 verb(   
217         \score {
218                 < \melodic \type Staff = "treble" \trebleMelody
219                   \lyric \type Lyrics = "tlyrics" \trebtext
220                   \type Staff = "bass" \melodic \bassMelody        
221                   \lyric \type Lyrics = "blyrics" \basstext      
222                 >
223                 \paper {  }
224         }
225 )
226
227 question(How do I put more than one marking on a note.)
228
229 You can stack them 
230 verb(
231         c4^"a"^"b"
232 )
233 or use spacing-notes to put markings at different horizontal positions 
234 verb(
235         < c1
236           { s4\ff s4^"text" s4-\marcato s4 }
237         >
238 )
239 This also works for crescendi, eg,
240 verb(
241         < c1
242           { s4\< s2 \! s4 }
243         >
244 )
245
246
247 question(How do I get bar numbers?)
248
249 See file(input/test/bar-scripts.ly).
250
251
252 sect(Development)
253
254 question(Could you implement feature XXXX? It is really easy, just extend
255 the syntax to allow YYYY!)
256
257 If it is reasonable, I'll add XXXX to the TODO list. In general
258 finding a cute syntax (such as YYYY) isn't very hard. The complicated
259 issue how to adapt the internals to do XXXX. The parser is really a
260 simple front end to the complicated internals. 
261
262
263 question(Can I join in on LilyPond development?  How do I do this?)
264
265 LilyPond development is open for anyone who wants to join.  We try
266 to use a Bazaar style development model for LilyPond, see
267 lurl(http://locke.ccil.org/~esr/writings/cathedral.html.)  This means:
268 frequent releases, everyone can send in a patch or do suggestions and
269 all development discussions are public.
270
271 To be precise, discussions take place on the gnu-music-discuss mailing
272 list, which is open for subscription to everyone.
273
274
275 question(I want to implement XXXX!  Should I do this?)
276
277 There might be better ways of doing XXXX, so it's a good thing to
278 ask about this before you start hacking.  If you want to keep in touch
279 with current developments, you should subscribe to the mailing list
280 (see the "links" section of the documentation).
281
282
283 question(Is there a GUI frontend?  Should I start building one?)
284
285 LilyPond currently has no graphical interface.  The authors seriously
286 doubt if a simple-minded approach (dragging and dropping notes) is any
287 easier or quicker to use than mudela.  But for composing a graphical
288 environment probably is indispensable.
289
290 In any case email(Derek Wyatt)(wyatt@scar.utoronto.edu) is working on
291 GTK based editor, but that is still in an embryonal stage (see
292 lurl(http://harmonia.scar.utoronto.ca).  There is also a GUI package
293 RoseGarden that could be extended to output mudela.
294
295 If you want to work on this, please send e-mail to the mailing list
296 email(gnu-music-discuss@gnu.org).
297
298
299 question(I want to implement XXXX!  How should I do this?)
300
301 Your best bet of getting us to include code, is to present it as a
302 "fait accompli", i.e., to send a patch to the mailing list.
303
304
305 question(I made some code, how do I get you to include it?)
306
307 Send in a patch:
308 verb(
309         diff -urN old-file new-file > patch
310 )
311 or 
312 verb(
313         diff -urN old-directory/ new-directory/ > patch 
314 )
315 Alternatively, you can use issue the command
316 verb(
317         make diff
318 )
319
320 Don't forget to put your name and e-mail address
321 in the file(AUTHORS.pod) file, or you won't get credits :-]
322
323
324 em(Please) always send a bf(-u) diff, even if it is larger than the
325 whole file.
326
327 question(How do I learn the C++ code?)
328
329 The entry point is in code(main()). Good luck. :-)
330
331 Seriously, read, reread and reread internals and CodingStyle, and
332 just start anywhere. 
333
334 Anywhere? Well, most of the comment doco are in the header files, so
335 your best bet would be code(less lily/include/*.hh). Some of the most
336 important data-structures are to be found in:
337 verb(
338         - *request.hh
339         - engraver.hh
340         - performer.hh
341         - translator.hh
342         - score-elem.hh
343         - music.hh
344         - music-list.hh
345         - music-iterator.hh
346         - item.hh
347         - spanner.hh
348 )
349
350 question(Why GPL?)
351
352 Yes.
353
354
355 question(Your make system does not adhere to GNU coding standards, could you
356 please fix it?)
357
358 No.  We have evaluated the standard GNU combination for compiling
359 programs (autoconf, automake, libtool) and found to be inadequate in
360 several respects.  More detailed argumentation is included with
361 LilyPond's generic make package code(StepMake) 
362 (see file(stepmake-x.x.x/Documentation/automake.urgh))
363
364 LilyPond already compiles into a different directory ((the different
365 directory is called out/, there is one in every source directory).
366 make distclean essentially reduces to file(rm -f out/*) in every directory
367
368 question(gdb crashes when I debug!)
369
370 Upgrade to 4.17.
371
372 question(Why do I need g++ >= 2.8 / EGCS-1.1 ?)
373
374 Supporting more compilers than EGCS/G++ 2.8 is unlikely to make
375 LilyPond run on more platforms.  It would give us an enormous headache
376 in detecting and catering for every variant of every compiler: not
377 having to support other compilers saves us a em(lot) of trouble.
378
379
380 sect(Running)
381
382
383 question(I use dvilj4, and there are lots of warning messages for the
384 printing)
385
386 You should use dvips and ghostscript to print the code(dvi) output:
387 the slurs and beams are PS code(\special) commands.
388
389
390 question(My symbols are all messed up after I upgraded, I get the
391 wrong symbols and dvi-checksum errors!)
392
393 We obviously mucked with the fonts in the upgrade.  Remove em(all)
394 previous fonts, including the file(.pk) and file(.tfm) fonts in
395 file(/var/lib/texmf).  A script automating this has been included, see
396 file(buildscripts/clean-fonts.sh).
397
398 question(all the pk and tfm
399 fonts are created in the directory where the mudela file is, not in
400 "/var/spool/texmf" where I think they should be.)
401
402 Mats Bengtsson <mats.bengtsson@s3.kth.se> writes:
403
404 The simple solution used by Anthony Fok in the Debian distribution of
405 Lilypond is to link the mf/ directory to
406 /usr/lib/texmf/fonts/source/public/lilypond Depending on what
407 distribution of teTeX and Linux you have installed, there might also
408 be other places like /usr/local/lib/texmf/fonts/source/public/lilypond
409 or /var/spool/texmf//fonts/source/public/lilypond
410
411 Wherever you put it, don't forget to run mktexlsr (or texhash for
412 older installations) afterwards, so that TeX will find the files.
413 Also, don't forget to remove all old .tfm and .*pk files when the font
414 is updated (as it will be in version 1.1.40, for example).
415
416 question(Are there scalable versions of the font?)
417
418 Yes, they are type-3 fonts.  In the file(mf/) 
419 subdirectory, issue:
420 verb(
421         make pfa
422 ) in the mf/ subdirectory.  This will also  make file(mfplain) for metapost.
423 The file(pfa)s will be in the subdirectory file(out/).
424
425 question(How does PS output work?)
426
427 itemize(
428  it()
429 Generate the PostScript Type-3 fonts. 
430 it()
431 Run lilypond with option tt(-f ps):
432 verb(
433     lilypond -fps foo.ly
434 )
435 it() To view the file(.ps) output with GhostView, set GS_FONTPATH to the 
436 directory containing the file(pfa)s, and set GS_LIB to the directory containing the file(.ps) library files of LilyPond.  In the source tree, these are file(mf/out/) and file(ps/).
437
438
439 i.e. do something like:
440 verb(
441    export GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
442    export GS_LIB=$HOME/usr/src/lilypond/ps
443    gv foo.ps &
444 )
445 )
446
447 Direct PS output is still experimental.  For creating nice looking ps 
448 output, use TeX() and code(dvips).
449
450   
451 question(The beams and slurs are gone if use the XDvi magnifying glass!?)
452
453 The beams and slurs are done in PostScript.  XDvi doesn't show
454 PostScript in the magnifying glass.  Complain to the XDvi maintainers.
455
456
457 question(I don't get midi-output, even if I use bf(-M)!)
458
459 Your \score should include a \midi block, eg.
460 verb(
461         \score {
462                 \melodic { c4 c g g }
463                 \paper {}       
464                 \midi {
465                         output = "myfile.midi";
466                         \tempo 4=70;
467                 }
468         }
469 )
470 The bf(-M) option was added to LilyPond because processing the \paper
471 block is so slow.
472
473 question(A lot of musical stuff doesn't make it to the MIDI file, eg.
474 dynamics, articulation, etc.)
475
476 The MIDI output was originally put in as a proof that MIDI could be
477 done, and as a method of proof"reading" the input.  The MIDI support
478 is by no means finished.  Patches appreciated.
479
480
481 sect(Copyright)
482
483 question(How does copyright for sheet music work? Can I enter and
484 spread my newly bought Bach urtext?)
485
486 Silas S. Brown <ssb22@hermes.cam.ac.uk>:
487
488 There are several aspects to sheet music copyright:
489
490 1.  The music itself - copyright for the composer's life plus 70 years (so
491 not applicable to Bach).
492
493 2.  If the music is an arrangement, then the arranger holds copyright on
494 that arrangement.  However, you can produce your own arrangement using
495 that arrangement as a reference point.  Obviously your arrangement must be
496 sufficently different to be called your own arrangement - you need to do
497 more than change one note!
498
499 3.  In some countries, the same applies for editions.  This could be
500 relevant to the Bach example.  If a modern person has edited the music,
501 then they hold the copyright on the edition.  This does not stop you from
502 removing the editorial features - remove all editorial slurs, phrasemarks,
503 ornaments etc and only leave those that you know to be original.  You can
504 then add some of your own if you want to be your own editor.
505
506 4.  If there are lyrics, then the lyricist also holds copyright.  This
507 does not stop you from using the music without the lyrics if it is
508 otherwise out of copyright.
509
510 5.  The copyright of the printed page is held by the publisher for 30
511 years after printing (25 in some countries).  This stops you from
512 photocopying (unless it's "fair use" eg. you're partially sighted and need
513 to enlarge the music) or otherwise reproducing the typesetting that is
514 used on it.  But the copyright is only held over the typesetting work, not
515 the music itself.  Since Mudela specifies the notes, independently of any
516 typesetting work that went into your reference copy, you are not
517 duplicating any of the publisher's work.
518
519 6.  If you want to violate copyright, there are two main cases where you
520 may do so: fair use, and with permission.  The former is rather fuzzily
521 defined, but it includes such things as including small extracts of a
522 score in a critique, and making a large print or Braille copy for a blind
523 or partially-sighted performer (many people argue that in this case it
524 should always be kept with the original copy and/or destroyed after it is
525 no longer needed).  The latter is obvious: You can always write to the
526 composer, arranger, editor, lyricist or publisher in question and ask if
527 you can do whatever it is you're trying to do.  Some will respond more
528 readily than others, but anything that they say will override any copying 
529 restrictions imposed on you.
530
531
532 References - best one I know is the UK-based Performing Right Society,
533 lurl(http://www.prs.co.uk/) (especially "membership") and their links to other
534 international equivalents.  
535
536
537
538 Juergen Reuter <reuterj@ira.uka.de>:
539
540 [More information can be had at: ]
541
542 lurl(http://lcweb.loc.gov/copyright/)
543 (USA copyright law)
544
545 lurl(http://fairuse.stanford.edu/)
546 (meta site about copyright with many links to other resources)
547
548 lurl(http://host.mpa.org/crc.html)
549 (copyright from the viewpoint of the USA music publishers' association)
550
551 lurl(http://www.wipo.int)
552 (World Intellectual Property Organization (a UNO agency); with
553 information about international copyright)
554
555
556 John Sankey:
557
558 See lurl(http://www.geocities.com/Vienna/Studio/1714/harpsichord.html)
559 for a summary of copyright relative to old music, also for the
560 expert forum for such questions.
561
562 Werner Lemberg <sx0005@sx2.HRZ.Uni-Dortmund.DE>:
563
564 This is not correct.  Urtext editions per se are em(not) copyrighted
565 -- if you print exactly what the composer has written, how can there
566 some copyright be added?  Copyrighted are usually only the `Critical
567 notes', the foreword, and the cadenzas some editors have added.
568
569 This means that the `Photocopying forbidden' sign in many scores is
570 not always correct for e.g. J.S. Bach -- you are allowed to copy the
571 pages which don't contain editorial stuff which is probably
572 copyrighted.
573
574 A very unfortunate situation for the publishers.
575
576
577
578 sect(Windows32)
579
580 question(I downloaded the windows32 port, and it doesn't match the website!)
581
582 The website is usually made from the latest snapshots.  Binary releases,
583 in particular the windows32 binaries, are only made every once in a while.
584 They may lag several versions behind the latest version. 
585
586 question(But i want a native DOS/Windows-NT/95 port)
587
588 Reconsider.  Try Linux.  It's fun!
589