]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/gnu-music.pod
fbb2d7402f864afa1bf939ec33bf3704cfaee9e0
[lilypond.git] / Documentation / gnu-music.pod
1 =head1 NAME 
2
3 GNU Music project - manifesto
4
5 =head1 DESCRIPTION
6
7 Random ranting about the GNU Music project. 
8
9 =head2 Note
10
11 The GNU Music project was started by a few people (among others Robert Strandh,
12 Robert.Strandh@labri.u-bordeaux.fr), who wanted to create free software
13 for music printing and composing. After its initiation, its
14 development efforts slowed down.
15
16 Independently, I started LilyPond. When I showed it to
17 RMS, he was very enthousiastic about having LilyPond in the GNU
18 project. I subsequently learned about the GNU Music project, and
19 contacted them.  We (the GNU Music project people and us, LilyPond
20 people) agreed that cooperation would be desirable. Although merging
21 of both efforts is technically infeasible at this point, we did decide
22 that LilyPond should also be part of the GNU Music project (when it is
23 really released).
24
25 In summary, LilyPond is part of the GNU project, and part of the (yet
26 to be created) GNU Music project. LilyPond 's existence does not mean
27 that other efforts for free music tools have come to a halt. In
28 particular, the following document is entirely mine, and is not meant
29 to reflect anyone else's opinion.
30
31 =head1 GOAL
32
33 Provide musicians with free software for
34
35 =over 4
36
37 =item *
38
39 composing
40
41 =item *
42
43 engraving
44
45 =item *
46
47 playing
48
49 =item *
50
51 sequencing
52
53 =item *
54
55 interchanging music
56
57 =back
58
59 and possibly for
60
61 =over 4
62
63 =item *
64
65 arranging
66
67 =item *
68
69 performing
70
71 =back
72
73 Music publishers make lots of money out of selling sheet music which
74 is in the public domain (the composers died a long time ago). It is
75 usually prohibited to xerox the sheet music.  Publishers have two
76 arguments to justify this policy: the high prices are there to guarantee
77 diversity (keeping lots of stock is expensive), and to encourage new
78 work being composed.
79
80 LilyPond addresses the first issue: storing mudelas takes up almost no
81 space at all.  Other systems should address the other issue:
82 encouraging laymen to take up composing, in the same way that GNU
83 tools have created a whole new generation of programmers.
84
85 The public deserves to get public domain music for free (zero cents). 
86
87 The public deserves free tools for composing and printing.
88
89 In general, the same arguments as for software hold for music. See
90 Stallmans articles on free software.
91
92
93 =head1 REQUIREMENTS
94
95 Emacs and TeX serve as useful examples of what programs by the GMP
96 should be.
97
98 =over 4
99
100 =item high-quality
101
102 (cf TeX), from engraving point of view
103
104 =item high-quality
105
106 (cf Emacs) from software point of view: like all GNU software, it
107 should have no limits, be fast, etc.
108
109 =item tweakable
110
111 Printed music has a lot of styles, and special symbols. It may be
112 unfeasible to provide and maintain  lots of code that is hardwired
113 into the system. The tools should be extensible/programmable like
114 Emacs and TeX
115
116 =item easy to use.
117
118 That is, for technical users (that can read a manual). The learning
119 curve should be as flat as possible but not at the expense of comfort
120 of use and power.
121
122 =back
123
124 =head1 TASKS (LONGTERM)
125
126 =over 4
127
128 =item A set of music fonts
129
130 Preferably in Metafont, suited to both screen display and use on
131 paper; This is needed because
132
133 1. the copyright heritage of
134 {Opus,Musix}tex is unclear. 
135
136 2. We don't have any legal papers which make these fonts free (to use
137 and alter)
138
139 =item A typesetting engine
140
141 A system with rules on how to set properties of items to be printed
142 (up/down directions, breaking, dimensoins, etc) LilyPond provides one,
143 but it is not (yet) suited to interactive typesetting
144
145 =item A display engine
146
147 which can display clear notewriting in (say) an X-window
148
149 G-Sharp is there, but far from finished. Ideally the system should
150 cooperate with the typesetting engine
151
152 =item An ASCII language
153
154 In development, LilyPond has a language. (See over there for goals)
155 Having an ASCII format which enables urtext, and easy sharing (via
156 mail and news forums) encourages cooperation and exchange of music.
157
158 =item A printing engine
159
160 Maybe to be merged with the display system.
161
162 =item An input system
163
164 The natural way to enter composed music is singing or playing it. The
165 GMP should have module which can take keyboard input or microphone
166 input and convert it to computer data. (microphone input would be
167 difficult)
168
169 =item sequencing
170
171 (have no clue about this)
172
173 =item A scanning system
174
175 Having a system which can produce mudela from printed scores,  greatly
176 simplifies creating a collection of music
177
178 =item A music-understanding system
179
180 (difficult) A system to generate accompaniments, figured bass,
181 automatic accompaniment, etc.
182
183 =item An internet archive of free music
184
185 The complete works by Bach, Beethoven, and any other ancient composer
186 should be electronically retrievable. This might be a separate
187 project: the Free Music Project.
188
189 =back
190
191 =head1 PROGRAMS
192
193 =over 4
194
195 =item *
196
197 A noninteractive typesetter, suited for batch jobs, and typesetting
198 existing music. This would couple the ASCII language, the printing
199 engine and the typesetting engine
200
201 LilyPond is currently representing this section.
202
203 =item *
204
205 A GUI for composing. This would combine the display engine, the input
206 system and the typesetting engine.
207
208 =item *
209
210 Libraries for reading and writing various audio/music/notation
211 formats.
212
213 =back
214
215 The typesetting system has a complexity comparable to TeX's, the GUI
216 would be comparable to LyX (?)  with additional complexity in
217 recognizing input.
218
219 =head1 TASKS (SHORT TERM)
220
221 =over 4
222
223 =item *
224
225 Gather a  moderate number of test users and hackers
226
227 =item *
228
229 A website on GMP
230
231 =item *
232
233 Libs for r/w MIDI 
234
235 =item *
236
237 Think about interfaces for components.
238
239 =item *
240
241 Find sponsors. This project will take a long time, and in its infant
242 stages, having a hard and small core which does a lot of work, is more
243 efficient than lots of people doing small subprojects. Finanicial
244 support would be desirable.
245
246 =back
247