]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/faq.pod
release: 0.0.61
[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. If the problem persists, then
15 please mail me.
16
17
18 =head2 Language: mudela
19
20 Q: Why can't you type C<#c> in stead of C<cis> ?
21
22 A: We think that C<#c> looks as if you are entering the symbols to
23 print (which you are not; remember, you're entering the musical
24 content in Mudela)
25
26 We're not sure on leaving out this feature. If you think this is a
27 good idea, please let us know.
28
29 Be warned we will I<not> allow you to leave out the C<#> if the note
30 already has an accidental. We won't allow
31
32         c# c    % no way! 
33
34 in stead of:
35
36         cis cis
37         #c #c
38
39
40 Q: I can type
41
42         <a c> <e g>
43
44 to make a few chords, but why do I have to type
45
46
47         < { a~ e } { c ~ g } >
48
49 instead of
50
51         <a~ c~> <e g>
52
53 to generate ties between the chords?
54
55 A: When you type 
56
57         <a c> <e g>
58
59 this is shorthand for
60
61         < { a } { c } > < { e } { g } >
62
63 Ties have to be confined to `voices', and the a and the e are in
64 different {} blocks, so they are in different voices. You should view
65 the desired construct as a "generalised chord" (two voices stacked
66 vertically). It might help you visualise this by using the following
67 formatting:
68
69         < { a ~ e }
70           { c ~ g }
71         >
72
73 Q: and where do the beams come into this picture?
74
75 A: Beams are voicegroup-wide, and may be entered in any part of the
76 voicegroup:
77
78         < { [a ~ e] } { c ~ g } >
79         < { [a ~ e } { c ~ g] } >
80         < { [a ~ e] } { [c ~ g] } >
81
82 These all give the same result.
83
84 Q: Why are [] around the notes, and () inbetween?
85
86 A: [] designate beams, a note can only be in one beam at the same
87 time. () is a slur, which connects notes.  You need to be able to 
88 specify
89
90         a()a()a
91
92 Q: Why shouldn't I put all commands (\clef, \meter) inside the music?
93
94 A: You should do what you like, but at some time we will enable
95 quoting of music ("Stichnoten"). Besides if you are going to type an
96 orchestral score, then you'd probably want to enter most of the meter,
97 repeat commands only once.
98
99 Q: I want to insert some TeX commands
100
101 A: You shouldn't: it's against LilyPond philosophy to have typesetting
102 commands in the mudela source. Moreover, this would be difficult. The
103 manner in which Request (the basic building blocks of mudela) are
104 translated into printable items is complex: it is not always possible
105 to associate one Request with one Item or Spanner.
106
107
108 =head2 Miscellaneous
109
110 Q: Why GPL?
111
112 A: Yes.
113
114 Q: Could you implement feature XXXX? It is really easy, just extend
115 the syntax to allow YYYY!
116
117 A: If it is reasonable, I'll add XXXX to the TODO list. In general
118 finding a cute syntax (such as YYYY) isn't very hard. The complicated
119 issue how to adapt the internals to do XXXX. The parser is really  a
120 simple front end to the complicated internals. 
121
122 Q: Why do I need g++ >= 2.7?
123
124 A: By using g++, GNU LilyPond is portable to all platforms which support
125 g++ (there are quite a few). Not having to support other compilers
126 saves us a I<lot> of trouble. GNU LilyPond and FlowerLib use:
127
128 =over 4
129
130 =item *
131
132 builtin bool
133
134 =item *
135
136 64 bit integral type long long
137
138 =item *
139
140 typeof
141
142 =item *
143
144 operator <?, operator >?
145
146 =item *
147
148 the new for-scope
149
150 =item    *
151
152 class Rational (libg++)
153
154 =back
155
156 =head2 Running
157
158 Q: I get 
159
160         can't load library 'libflower.so'
161
162 A: You are using the dynamically compiled Flower library. Please set
163 LD_LIBRARY_PATH to a directory containing F<libflower.so>
164
165 =head2 DOZE
166
167 Q: I want a DOS/NT/W95 port.
168
169 A.0: Reconsider.  Try Linux.  It's fun!
170
171 A.1: Currently (patchlevel 27), GNU LilyPond (and flowerLib) compiles, links
172 and runs on windhoos-nt, using the cygnus gnu port (release b17.1). 
173 I (JCN) only had to make a minor workaround for missing library calls.  
174 Have a look at http://www.cygnus.com/gnu-win32.  To make GNU LilyPond type
175 C<make $OSTYPE>. (I am not promising to maintain this platform, it is just 
176 that when having to use doze, i-m sometimes too lazy to reboot.)
177
178 A.2: I haven't had time to find a GCC crosscompiler (I<with> g++ and
179 libg++, mind you) to DOS/win (in rpm, please :).
180
181
182 Q: I-m dozed enough to run the (sometimes bit stale) .exe-s you distribute. 
183 Why do i need cygwin.dll?
184
185 A: It-s all in this cut-n-paste:
186
187 Minimalist GNU-Win32 Readme                   
188 version 0.1.3                           
189 March 20, 1997                       
190 Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
191
192 [...]
193
194 0.3 Fixes and Improvements          
195
196 [...]
197 In the "coming soon" category I have a version of the GNU Standard C++
198 library ported to Mingw32. This means you can use iostreams, complex
199 numbers and all those neat STL (Standard Template Library) things
200 without needing the Cygwin DLL. I hope to put this port up for
201 downloading soon (along with the source of course).
202        
203 [...] 
204
205 3.2 C++ Support                                                         
206
207 To add C++ Support to the above the following extra files are required: 
208
209 In C:\cygnus\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\cygnus-2.7.2-    
210 961023:                                                                         
211         cc1plus.exe                                                   
212
213 Note that this does not include support for the standard C++ libraries
214 (only the C run time libraries) or for iostreams. That support is still
215 only available with the Cygwin32 API.
216