3 FAQ - GNU LilyPond FAQs
7 Some questions that have been answered before.
11 Q: I get all kinds of errors while compiling parser.cc
13 A: LilyPond uses features of bison version 1.25. Please confirm that
14 you are using a version 1.25 or better. Don't forget to do "make
15 clean" after installing it
17 If the problem persists, then please mail me.
19 Q: Some of your neat scripts fail, what directories do you use:
27 lilypond/ # the directory as unpacked from the tarball
28 releases/ # directory for .tar.gz releases
29 patches/ # directory for patches between different releases
32 ~/something/lilypond/bin is in the PATH, and contains symlinks to the
35 If you don't use patches, you'd probably want to symlink
37 lilypond -> lilypond-x.y.z
39 =head2 Language: mudela
41 Q: Why can't you type C<#c> in stead of C<cis> ?
43 A: We think that C<#c> looks as if you are entering the symbols to
44 print (which you are not; remember, you're entering the musical
47 We're not sure on leaving out this feature. If you think this is a
48 good idea, please let us know.
50 Be warned we will I<not> allow you to leave out the C<#> if the note
51 already has an accidental. We won't allow
60 Why, you might ask? Because independently of how it was written, you
61 would say that you are playing and reading "two C-sharp" notes.
64 Q: What is C<cis> anyway
66 A: C<cis> is the dutch naming for C-sharp. The notes are named
67 a, b,.., g. The suffix -is means sharp, and -es flat. This system is
68 common in a number of languages (such as swedish, dutch, german.)
69 Certain other languages (such as English, French and Italian) just add
70 the word for "sharp" to the notename.
72 We chose the Dutch system, because we're dutch. You are free to chose
73 whatever names you like; they are user definable.
79 to make a few chords, but why do I have to type
82 < { a~ e } { c ~ g } >
88 to generate ties between the chords?
96 < { a } { c } > < { e } { g } >
98 Ties have to be confined to `voices', and the a and the e are in
99 different {} blocks, so they are in different voices. You should view
100 the desired construct as a "generalised chord" (two voices stacked
101 vertically). It might help you visualise this by using the following
108 Q: and where do the beams come into this picture?
110 A: Beams are voicegroup-wide, and may be entered in any part of the
113 < { [a ~ e] } { c ~ g } >
114 < { [a ~ e } { c ~ g] } >
115 < { [a ~ e] } { [c ~ g] } >
117 These all give the same result.
119 Q: Why are [] around the notes, and () inbetween?
121 A: [] designate beams, a note can only be in one beam at the same
122 time. () is a slur, which connects notes. You need to be able to
127 Q: Why shouldn't I put all commands (\clef, \meter) inside the music?
129 A: You should do what you like, but at some time we will enable
130 quoting of music ("Stichnoten"). Besides if you are going to type an
131 orchestral score, then you'd probably want to enter most of the meter,
132 repeat commands only once.
134 Q: I want to insert some TeX commands
136 A: You shouldn't: it's against LilyPond philosophy to have typesetting
137 commands in the mudela source. Moreover, this would be difficult. The
138 manner in which Request (the basic building blocks of mudela) are
139 translated into printable items is complex: it is not always possible
140 to associate one Request with one Item or Spanner.
142 As a further notice, we want to move away from TeX (and perhaps
143 output PostScript or render to an X window too)
147 Q: How do I change the TeX layout?
149 A: See lilyponddefs.tex, it has some comments.
151 Q: How do I learn the C++ code?
153 A: The entry point is in main(). Good luck. :-)
155 Seriously, read, reread and reread lilygut and CodingStyle, and
158 Anywhere? Well, most of the comment doco are in the header files, so
159 your best bet would be C<less lily/include/*.hh>. Some of the most
160 important data-structures are to be found in:
177 Q: Could you implement feature XXXX? It is really easy, just extend
178 the syntax to allow YYYY!
180 A: If it is reasonable, I'll add XXXX to the TODO list. In general
181 finding a cute syntax (such as YYYY) isn't very hard. The complicated
182 issue how to adapt the internals to do XXXX. The parser is really a
183 simple front end to the complicated internals.
185 Q: Why do I need g++ >= 2.7?
187 A: By using g++, GNU LilyPond is portable to all platforms which support
188 g++ (there are quite a few). Not having to support other compilers
189 saves us a I<lot> of trouble. GNU LilyPond and FlowerLib use:
199 64 bit integral type long long
207 operator <?, operator >?
215 class Rational (libg++)
223 can't load library 'libflower.so'
225 A: You are using the dynamically compiled Flower library. Please set
226 LD_LIBRARY_PATH to a directory containing F<libflower.so>
230 Q: I want a DOS/NT/W95 port.
232 A.0: Reconsider. Try Linux. It's fun!
234 A.1: Currently (patchlevel 27), GNU LilyPond (and flowerLib) compiles, links
235 and runs on windhoos-nt, using the cygnus gnu port (release b17.1).
236 I (JCN) only had to make a minor workaround for missing library calls.
237 Have a look at http://www.cygnus.com/gnu-win32. To make GNU LilyPond type
238 C<make $OSTYPE>. (I am not promising to maintain this platform, it is just
239 that when having to use doze, i-m sometimes too lazy to reboot.)
241 A.2: I haven't had time to find a GCC crosscompiler (I<with> g++ and
242 libg++, mind you) to DOS/win (in rpm, please :).
245 Q: I-m dozed enough to run the (sometimes bit stale) .exe-s you distribute.
246 Why do i need cygwin.dll?
248 A: It-s all in this cut-n-paste:
250 Minimalist GNU-Win32 Readme
253 Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
257 0.3 Fixes and Improvements
260 In the "coming soon" category I have a version of the GNU Standard C++
261 library ported to Mingw32. This means you can use iostreams, complex
262 numbers and all those neat STL (Standard Template Library) things
263 without needing the Cygwin DLL. I hope to put this port up for
264 downloading soon (along with the source of course).
270 To add C++ Support to the above the following extra files are required:
272 In C:\cygnus\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\cygnus-2.7.2-
276 Note that this does not include support for the standard C++ libraries
277 (only the C run time libraries) or for iostreams. That support is still
278 only available with the Cygwin32 API.