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