]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/faq.pod
release: 0.0.38
[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: Gee, I really like MPP, why would I want to switch to LilyPond?
10
11 A: The design of MPP is broken beyond repair: it is very difficult to
12 enhance MPP, and any working version is (probably) bug-ridden.
13
14 Every once in a while, I have a major attack of hybris, and I go in to
15 enhance MPP. I usually end up thoroughly frustated within an hour or
16 so. I concur, it does work but extending MPP is a major pain.
17
18 We will not sacrifice development time on something else than the most
19 trivial bugfixes. If you insist on using MusiXTeX, then LilyPond is
20 not for you, and you might try PMX which does also nice output.
21
22
23 Q: Why are [] around the notes, and () inbetween?
24
25 A: [] designate beams, a note can only be in one beam at the same
26 time. () is a slur, which connects notes.  You need to be able to 
27 specify
28
29         a()a()a
30
31
32 Q: I want a DOS/NT/W95 port.
33
34 A0: Reconsider.  Try Linux.  It's fun!
35
36 A1: Currently (patchlevel 27), LilyPond (and flowerLib) compiles, links
37 and runs on Windhoos-NT, using the CYGNUS GNU port (release b17.1). 
38 I (JCN) only had to make a minor workaround for missing library calls.  
39 Have a look at http://www.cygnus.com/gnu-win32.  To make LilyPond type
40 C<make $OS>. (I am not promising to maintain this platform, it is just that
41 when having to use doze, i-m sometimes too lazy to reboot.)
42
43 A2: I haven't had time to find a GCC crosscompiler (I<with> g++, mind you) to
44 DOS/win (in rpm, please :).
45
46
47 Q: Why GPL?
48
49 A: Yes.
50
51
52 Q: Why shouldn't I put all commands (\clef, \meter) inside the music?
53
54 A: You should do what you like, but at some time we will enable
55 quoting of music ("Stichnoten"). Besides if you are going to type an
56 orchestral score, then you'd probably want to enter most of the meter,
57 repeat commands only once.
58
59
60 Q: Could you implement feature XXXX? It is really easy, just extend
61 the syntax to allow YYYY!
62
63 A: If it is reasonable, I'll add XXXX to the TODO list. In general
64 finding a cute syntax (such as YYYY) isn't very hard. The complicated
65 issue how to adapt the internals to do XXXX. The parser is really  a
66 simple front end to the complicated internals. 
67
68 Q: Why do I need g++ >= 2.7?
69
70 A: By using g++ LilyPond is portable to all platforms which support
71 g++ (there are quite a few, more than platforms which have AT&T CC or
72 Micro$oft C++). Not having to support other compilers saves us a I<lot>
73 of trouble. You need a version better than 2.7 because LilyPond &
74 FlowerLib uses:
75
76 =over 6
77
78 =item *
79 builtin bool
80
81 =item *
82 64 bit integral type long long
83
84 =item *
85 typeof
86
87 =item *
88 operator <?, operator >?
89
90 =item *
91 the new for-scope
92
93 =item    *
94 class Rational (libg++)
95
96 =item *
97 named return values
98
99 =back
100
101 Q: Why do I have to tell LilyPond explictly that the lowest-line-note
102 is "es" if I am using the key of "bes"?
103
104 A: The goal of lilypond (and MPP) was to design a language which
105 conveys the I<musical> message of a piece. That is the reason that it
106 does not ask you to enter the line on which the note is is. (Or the
107 "natural" note-name without any "es" or "is" postfix)
108
109 We do realise it is a bit shortsighted of us to assume that any user could
110 readily read the music he/she is entering. We might extend LilyPond to
111 allow "programmable" intervals, keys and clefs (and thus give him a
112 means to build his own scales, custom etc.).
113
114 For now, you can program LilyPond to use custom notenames and do
115
116         notenames { ces_key_notenames }
117         music { $ % music in the key of ces
118                 ...
119         $}
120         notenames { dutch_notenames } % restore default
121
122 as an ad-hoc solution.
123