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, 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.
18 If the problem persists, then please mail me.
20 Q: Some of your neat scripts fail, what directories do you use:
22 A: [This only applies if you don't do C<make install>, and develop out
23 of the source directory]
29 lilypond/ # the directory as unpacked from the tarball
30 releases/ # directory for .tar.gz releases
31 patches/ # directory for patches between different releases
34 ~/something/lilypond/bin is in the PATH, and contains symlinks to the
37 If you don't use patches, you'd probably want to symlink
39 lilypond -> lilypond-x.y.z
41 =head2 Language: mudela
43 Q: Why can't you type C<#c> in stead of C<cis> ?
45 A: We think that C<#c> looks as if you are entering the symbols to
46 print (which you are not; remember, you're entering the musical
49 We're not sure on leaving out this feature. If you think this is a
50 good idea, please let us know.
52 Be warned we will I<not> allow you to leave out the C<#> if the note
53 already has an accidental. We won't allow
62 Why, you might ask? Because independently of how it was written, you
63 would say that you are playing and reading "two C-sharp" notes.
66 Q: What is C<cis> anyway
68 A: C<cis> is the dutch naming for C-sharp. The notes are named
69 a, b,.., g. The suffix -is means sharp, and -es flat. This system is
70 common in a number of languages (such as swedish, dutch, german.)
71 Certain other languages (such as English, French and Italian) just add
72 the word for "sharp" to the notename.
74 We chose the Dutch system, because we're dutch. You are free to chose
75 whatever names you like; they are user definable.
81 to make a few chords, but why do I have to type
84 < { a~ e } { c ~ g } >
90 to generate ties between the chords?
98 < { a } { c } > < { e } { g } >
100 Ties have to be confined to `voices', and the a and the e are in
101 different {} blocks, so they are in different voices. You should view
102 the desired construct as a "generalised chord" (two voices stacked
103 vertically). It might help you visualise this by using the following
110 Q: and where do the beams come into this picture?
112 A: Beams are voicegroup-wide, and may be entered in any part of the
115 < { [a ~ e] } { c ~ g } >
116 < { [a ~ e } { c ~ g] } >
117 < { [a ~ e] } { [c ~ g] } >
119 These all give the same result.
121 Q: Why are [] around the notes, and () inbetween?
123 A: [] designate beams, a note can only be in one beam at the same
124 time. () is a slur, which connects notes. You need to be able to
129 Q: I want to insert some TeX commands
131 A: You shouldn't: it's against LilyPond philosophy to have typesetting
132 commands in the mudela source. Moreover, this would be difficult. The
133 manner in which Request (the basic building blocks of mudela) are
134 translated into printable items is complex: it is not always possible
135 to associate one Request with one Item or Spanner.
137 As a further notice, we want to move away from TeX (and perhaps
138 output PostScript or render to an X window too)
142 Q: Do you support pop songs (chords, single staff, lyrics)?
144 A: Yes, see the twinkle-pop example
146 Q: Do you support guitar chord diagrams?
148 A: No, not yet. We ourselves don't play guitar, and don't know the
149 fine points of this notation. We would welcome anyone who could give
152 Q: Do you support TAB notation
154 A: No. The same as for the previous question goes, but TAB is a lot
155 more work than diagrams (TAB needs modification of Parser, Lexer,
156 Notehead, Stem, and stem-code. )
158 Q: How do I change the TeX layout?
160 A: See lilyponddefs.tex, it has some comments.
162 Q: How do I learn the C++ code?
164 A: The entry point is in main(). Good luck. :-)
166 Seriously, read, reread and reread lilygut and CodingStyle, and
169 Anywhere? Well, most of the comment doco are in the header files, so
170 your best bet would be C<less lily/include/*.hh>. Some of the most
171 important data-structures are to be found in:
190 Q: Could you implement feature XXXX? It is really easy, just extend
191 the syntax to allow YYYY!
193 A: If it is reasonable, I'll add XXXX to the TODO list. In general
194 finding a cute syntax (such as YYYY) isn't very hard. The complicated
195 issue how to adapt the internals to do XXXX. The parser is really a
196 simple front end to the complicated internals.
198 Q: Why do I need g++ >= 2.7?
200 A: By using g++, GNU LilyPond is portable to all platforms which support
201 g++ (there are quite a few). Not having to support other compilers
202 saves us a I<lot> of trouble.
206 Q: I don't get midi-output, even if I use B<-M>
208 A: Your \score should include a \midi block, eg.
214 \output "myfile.mid";
218 The B<-M> option was added to LilyPond because processing the \paper
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 (0.0.27), GNU LilyPond (and flowerLib) compiles,
235 links and runs on Windows-nt, using 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
238 type C<make>. (I am not promising to maintain this platform, it is just
239 that when forced into 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/Windows (in rpm, please :-)
245 Q: I just love to blindly 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.