]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/faq.pod
release: 0.1.13
[lilypond.git] / Documentation / faq.pod
1 =head1 NAME
2
3 FAQ - GNU LilyPond FAQs
4
5 =head1 DESCRIPTION
6
7 Some questions that have been answered before.
8
9 =head2 Installing
10
11 Q: I get all kinds of errors while  compiling parser.cc
12
13 A: LilyPond uses features of bison version 1.25. Please confirm that
14 you are using a version 1.25 or better, that is B<GNU> bison
15 B<1.25>. Don't forget to do "make clean" after installing it. Don't
16 forget to remove the stale F<bison.simple> as well.
17
18 If the problem persists, then please mail me.
19
20 Q: Some of your neat scripts fail, what directories do you use:
21
22 A:
23         
24         ~/something/
25
26 which contains:
27
28           lilypond/     # the directory as unpacked from the tarball
29           releases/     # directory for .tar.gz releases
30           patches/      # directory for patches between different releases
31           test/
32         
33 ~/something/lilypond/bin is in the PATH, and contains symlinks to the
34 compiled executables.
35
36 If you don't use patches, you'd probably want to symlink
37
38         lilypond -> lilypond-x.y.z
39
40 =head2 Language: mudela
41
42 Q: Why can't you type C<#c> in stead of C<cis> ?
43
44 A: We think that C<#c> looks as if you are entering the symbols to
45 print (which you are not; remember, you're entering the musical
46 content in Mudela)
47
48 We're not sure on leaving out this feature. If you think this is a
49 good idea, please let us know.
50
51 Be warned we will I<not> allow you to leave out the C<#> if the note
52 already has an accidental. We won't allow
53
54         c# c    % no way! 
55
56 in stead of:
57
58         cis cis
59         #c #c
60
61 Why, you might ask? Because independently of how it was written, you
62 would say that you are playing and reading "two C-sharp" notes.
63
64
65 Q: What is C<cis> anyway
66
67 A: C<cis> is the dutch naming for C-sharp. The notes are named
68 a, b,.., g. The suffix -is means sharp, and -es flat. This system is
69 common in a number of languages (such as swedish, dutch, german.)
70 Certain other languages (such as English, French and Italian) just add
71 the word for "sharp" to the notename.
72
73 We chose the Dutch system, because we're dutch. You are free to chose
74 whatever names you like; they are user definable.
75
76 Q: I can type
77
78         <a c> <e g>
79
80 to make a few chords, but why do I have to type
81
82
83         < { a~ e } { c ~ g } >
84
85 instead of
86
87         <a~ c~> <e g>
88
89 to generate ties between the chords?
90
91 A: When you type 
92
93         <a c> <e g>
94
95 this is shorthand for
96
97         < { a } { c } > < { e } { g } >
98
99 Ties have to be confined to `voices', and the a and the e are in
100 different {} blocks, so they are in different voices. You should view
101 the desired construct as a "generalised chord" (two voices stacked
102 vertically). It might help you visualise this by using the following
103 formatting:
104
105         < { a ~ e }
106           { c ~ g }
107         >
108
109 Q: and where do the beams come into this picture?
110
111 A: Beams are voicegroup-wide, and may be entered in any part of the
112 voicegroup:
113
114         < { [a ~ e] } { c ~ g } >
115         < { [a ~ e } { c ~ g] } >
116         < { [a ~ e] } { [c ~ g] } >
117
118 These all give the same result.
119
120 Q: Why are [] around the notes, and () inbetween?
121
122 A: [] designate beams, a note can only be in one beam at the same
123 time. () is a slur, which connects notes.  You need to be able to 
124 specify
125
126         a()a()a
127
128 Q: I want to insert some TeX commands
129
130 A: You shouldn't: it's against LilyPond philosophy to have typesetting
131 commands in the mudela source. Moreover, this would be difficult. The
132 manner in which Request (the basic building blocks of mudela) are
133 translated into printable items is complex: it is not always possible
134 to associate one Request with one Item or Spanner.
135
136 As a further notice, we want to move away from TeX (and perhaps
137 output PostScript or render to an X window too)
138
139 =head2 Miscellaneous
140
141 Q: Do you support pop songs (chords, single staff, lyrics)?
142
143 A: Yes, see the twinkle-pop example
144
145 Q: Do you support guitar chord diagrams?
146
147 A: No, not yet. We ourselves don't play guitar, and don't know the
148 fine points of this notation.  We would welcome anyone who could give
149 this a try.
150
151 Q: Do you support TAB notation
152
153 A: No. The same as for the previous question goes, but TAB is a lot
154 more work than diagrams (TAB needs modification of Parser, Lexer,
155 Notehead, Stem, and stem-code. )
156
157 Q: How do I change the TeX layout?
158
159 A: See lilyponddefs.tex, it has some comments.
160
161 Q: How do I learn the C++ code?
162
163 A: The entry point is in main(). Good luck. :-)
164
165 Seriously, read, reread and reread lilygut and CodingStyle, and
166 just start anywhere. 
167
168 Anywhere? Well, most of the comment doco are in the header files, so
169 your best bet would be C<less lily/include/*.hh>. Some of the most
170 important data-structures are to be found in:
171
172         - p-col.hh
173         - *request.hh
174         - engraver.hh
175         - performer.hh
176         - translator.hh
177         - score-elem.hh
178         - music.hh
179         - music-list.hh
180         - music-iterator.hh
181         - item.hh
182         - spanner.hh
183
184
185 Q: Why GPL?
186
187 A: Yes.
188
189 Q: Could you implement feature XXXX? It is really easy, just extend
190 the syntax to allow YYYY!
191
192 A: If it is reasonable, I'll add XXXX to the TODO list. In general
193 finding a cute syntax (such as YYYY) isn't very hard. The complicated
194 issue how to adapt the internals to do XXXX. The parser is really a
195 simple front end to the complicated internals. 
196
197 Q: Why do I need g++ >= 2.7?
198
199 A: By using g++, GNU LilyPond is portable to all platforms which support
200 g++ (there are quite a few). Not having to support other compilers
201 saves us a I<lot> of trouble. 
202
203 =head2 Running
204
205 Q: I don't get midi-output, even if I use B<-M>
206
207 A: Your \score should include a \midi block, eg.
208
209         \score {
210                 \melodic { c c g g }
211                 \paper {}       
212                 \midi {
213                         \output "myfile.mid";
214                         \tempo 4=70;
215                 }
216
217 The B<-M> option was added to LilyPond because processing the \paper
218 block is so slow.
219
220 Q: I get 
221
222         can't load library 'libflower.so'
223
224 A: You are using the dynamically compiled Flower library. Please set
225 LD_LIBRARY_PATH to a directory containing F<libflower.so>
226
227 =head2 DOZE
228
229 Q: I want a DOS/NT/W95 port.
230
231 A.0: Reconsider.  Try Linux.  It's fun!
232
233 A.1: Currently (patchlevel 27), GNU LilyPond (and flowerLib) compiles, 
234 links and runs on Windows-nt, using Cygnus' gnu port (release b17.1). 
235 I (JCN) only had to make a minor workaround for missing library calls.  
236 Have a look at http://www.cygnus.com/gnu-win32.  To make GNU LilyPond 
237 type C<make>. (I am not promising to maintain this platform, it is just
238 that when forced into doze, i'm sometimes too lazy to reboot.)
239
240 A.2: I haven't had time to find a GCC crosscompiler (I<with> g++ and
241 libg++, mind you) to DOS/Windows (in rpm, please :-)
242
243
244 Q: I just love to blindly run the (sometimes bit stale) .exe's you distribute. 
245 Why do i need cygwin.dll?
246
247 A: It's all in this cut-n-paste:
248
249 Minimalist GNU-Win32 Readme                   
250 version 0.1.3                           
251 March 20, 1997                       
252 Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
253
254 [...]
255
256 0.3 Fixes and Improvements          
257
258 [...]
259 In the "coming soon" category I have a version of the GNU Standard C++
260 library ported to Mingw32. This means you can use iostreams, complex
261 numbers and all those neat STL (Standard Template Library) things
262 without needing the Cygwin DLL. I hope to put this port up for
263 downloading soon (along with the source of course).
264        
265 [...] 
266
267 3.2 C++ Support                                                         
268
269 To add C++ Support to the above the following extra files are required: 
270
271 In C:\cygnus\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\cygnus-2.7.2-    
272 961023:                                                                         
273         cc1plus.exe                                                   
274
275 Note that this does not include support for the standard C++ libraries
276 (only the C run time libraries) or for iostreams. That support is still
277 only available with the Cygwin32 API.
278