]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/faq.pod
release: 0.0.47
[lilypond.git] / Documentation / faq.pod
1 =head1 NAME
2
3 FAQ - LilyPond FAQs
4
5 =head1 DESCRIPTION
6
7 Some questions that have been answered before.
8
9 =head2 language
10
11 Q: I can type
12
13         <a c> <e g>
14
15 to make a few chords, but why do I have to type
16
17
18         < { a() e } { c () g } >
19
20 instead of
21
22         <a( c(> <)e )g>
23
24 to generate slurs between the chords?
25
26 A: When you type 
27
28         <a c> <e g>
29
30 this is shorthand for
31
32         < { a } { c } > < { e } { g } >
33
34 Slurs have to be confined to `voices', and the a and the e are in
35 different {} blocks, so they are in different voices. You should view
36 the desired construct as a "generalised chord" (two voices stacked
37 vertically). It might help you visualise this by using the following
38 formatting:
39
40         < { a () e }
41           { c () g }
42         >
43
44
45 Q: Why are [] around the notes, and () inbetween?
46
47 A: [] designate beams, a note can only be in one beam at the same
48 time. () is a slur, which connects notes.  You need to be able to 
49 specify
50
51         a()a()a
52
53 Q: Why shouldn't I put all commands (\clef, \meter) inside the music?
54
55 A: You should do what you like, but at some time we will enable
56 quoting of music ("Stichnoten"). Besides if you are going to type an
57 orchestral score, then you'd probably want to enter most of the meter,
58 repeat commands only once.
59
60 =head2 Miscellaneous
61
62 Q: Why GPL?
63
64 A: Yes.
65
66 Q: Could you implement feature XXXX? It is really easy, just extend
67 the syntax to allow YYYY!
68
69 A: If it is reasonable, I'll add XXXX to the TODO list. In general
70 finding a cute syntax (such as YYYY) isn't very hard. The complicated
71 issue how to adapt the internals to do XXXX. The parser is really  a
72 simple front end to the complicated internals. 
73
74 Q: Why do I need g++ >= 2.7?
75
76 A: By using g++ LilyPond is portable to all platforms which support
77 g++ (there are quite a few). Not having to support other compilers
78 saves us a I<lot> of trouble. LilyPond and FlowerLib use:
79
80 =over 4
81
82 =item *
83 builtin bool
84
85 =item *
86 64 bit integral type long long
87
88 =item *
89 typeof
90
91 =item *
92 operator <?, operator >?
93
94 =item *
95 the new for-scope
96
97 =item    *
98 class Rational (libg++)
99
100 =item *
101 named return values
102
103 =back
104
105 =head2 Running
106
107 Q: I get 
108
109         can't load library 'libflower.so'
110
111 A: You are using the dynamically compiled Flower library. Please set
112 LD_LIBRARY_PATH to a directory containing F<libflower.so>
113
114 =head2 DOZE
115
116 Q: I want a DOS/NT/W95 port.
117
118 A.0: Reconsider.  Try Linux.  It's fun!
119
120 A.1: Currently (patchlevel 27), LilyPond (and flowerLib) compiles, links
121 and runs on windhoos-nt, using the cygnus gnu port (release b17.1). 
122 I (JCN) only had to make a minor workaround for missing library calls.  
123 Have a look at http://www.cygnus.com/gnu-win32.  To make LilyPond type
124 C<make $OSTYPE>. (I am not promising to maintain this platform, it is just 
125 that when having to use doze, i-m sometimes too lazy to reboot.)
126
127 A.2: I haven't had time to find a GCC crosscompiler (I<with> g++ and
128 libg++, mind you) to DOS/win (in rpm, please :).
129
130
131 Q: I-m dozed enough to run the (sometimes bit stale) .exe-s you distribute. 
132 Why do i need cygwin.dll?
133
134 A: It-s all in this cut-n-paste:
135
136 Minimalist GNU-Win32 Readme                   
137 version 0.1.3                           
138 March 20, 1997                       
139 Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
140
141 [...]
142
143 0.3 Fixes and Improvements          
144
145 [...]
146 In the "coming soon" category I have a version of the GNU Standard C++
147 library ported to Mingw32. This means you can use iostreams, complex
148 numbers and all those neat STL (Standard Template Library) things
149 without needing the Cygwin DLL. I hope to put this port up for
150 downloading soon (along with the source of course).
151        
152 [...] 
153
154 3.2 C++ Support                                                         
155
156 To add C++ Support to the above the following extra files are required: 
157
158 In C:\cygnus\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\cygnus-2.7.2-    
159 961023:                                                                         
160         cc1plus.exe                                                   
161
162 Note that this does not include support for the standard C++ libraries
163 (only the C run time libraries) or for iostreams. That support is still
164 only available with the Cygwin32 API.
165