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