]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/MANIFESTO.pod
release: 0.0.76
[lilypond.git] / Documentation / MANIFESTO.pod
1 =head1 NAME
2
3 MANIFESTO -- Rationale behind the GNU LilyPond project
4
5 =head1 DESCRIPTION
6
7
8 GNU LilyPond was written with some considerations in mind:
9
10
11 =over 4
12
13 =item *
14
15 Describing a well-defined language for defining music. We call
16 this language (rather arrogantly) The Musical Definition Language
17 (mudela for short). GNU LilyPond reads a mudela sourcefile and outputs a
18 TeX file.  
19
20 =item *
21
22 We want to provide an easy-to-use interface for typesetting music in
23 its broadest sense. This interface should be intuitive from a musical
24 point of view. By broadest sense we mean: it is designed for music
25 printed left to right in staffs, using notes to designate rythm and
26 pitch.
27
28 =item  *
29
30 Generate high-quality output. Ideally it should be of a professional
31 quality. We'd like to render Herbert Chlapiks words, "Fine music
32 setting is not possible without a knowledgeable printer,"  untrue.
33
34 =item *
35
36 Make a system which is fully tweakable. It should be possible to
37 typeset a book on how not to typeset music.
38
39 =back 
40
41 =head1 LILYPOND
42
43
44 Further considerations while doing the programming
45
46 =over 4
47
48 =item *
49
50 GNU LilyPond uses MusiXTeX fonts and TeX for its output. This is not a key
51 issue: in a future version, GNU LilyPond might bypass TeX, but at the moment
52 TeX is convenient for producing output.
53
54 =item *
55
56 GNU LilyPond does not display notes directly, nor will it be rehacked
57 to be used interactively. GNU LilyPond writes output to a file.  It
58 will not be extended to play music, or to recognize music.
59
60 [As an aside, I am contemplating to create a library for rendering
61 music, which is "X-capable", so that others can create interactive tools]
62
63 =item *
64
65 GNU LilyPond is intended to run on Unix platforms, but it should
66 be portable to any platform which can run TeX and the GNU tools
67
68 =item *
69
70 GNU LilyPond is free. Commercial windows packages for setting music are
71 abundant. Free musicprinting software is scarce. For more thoughts on
72 this, please consult the F<gnu-music> documentation.
73
74 =item *
75
76 GNU LilyPond is written in GNU C++. It will not be downgraded/ported to fit
77 broken systems.
78
79 =back
80
81 =head1 MUDELA
82
83 The design of Mudela has been (perfect past tense, hopefully) an
84 ongoing process, the most important criteria being:
85
86 =over 4
87
88 =item *
89
90 define the (musical) message of the composer as unambiguously as possible.
91
92 This means that, given a piece Mudela, it should be possible for a
93 program to play a reasonable interpretation of the piece.
94
95 It also means that, given a piece of Mudela, it should be possible for a
96 program to print a score of the piece.
97
98 =item *
99
100 be intuitive, and easily readable (compared to, say, Musi*TeX input,
101 or MIDI :-),
102
103 =item *
104
105 be easily writable in ASCII with a simple texteditor
106
107 =back
108
109 Other considerations were (and will be):
110
111 =over 4
112
113 =item *
114
115 be able to edit the layout without danger of changing the original
116 music (Urtext),
117
118 =item *
119
120 allow for adding different interpretations, again, 
121 without danger of changing the original,
122
123 =item *
124
125 easy to create a conductor's score, 
126 as well as the scores for all individual instruments,
127
128 =item *
129
130 provide simple musical manipulations, such as S<(i) extracting> a
131 slice of music from a previously defined piece, S<(ii) extracting>
132 only the rhythm from a piece of music, S<(iii) transposing>, etc.,
133
134 =item *
135
136 easy to comprehend to both programmers and others.
137
138 =back
139
140 One of the things that (might) be here would be: feasible to use in a
141 graphic editor. We don't have experience with these beasts, so we
142 don't know how to do this. Comments appreciated.
143
144 Musical pieces could be
145
146 =over 4
147
148 =item *
149
150 Orchestral scores, (eg Mahler)
151
152 =item *
153
154 piano pieces (eg. Schubert, Rachmaninov),
155
156 =item *
157
158 pop songs (lyrics and chords),
159
160 =item *
161
162 Gregorian chants,
163
164 =item *
165
166 Bach multivoice organ pieces,
167
168 =item *
169
170 Short excerpts to be used in musicological publications.
171
172 =back