]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/gnu-music.pod
c209f2a31a78955d94b6b3495a5b749c8c9356f4
[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 History of the GNU Music Project
10
11 Please note that this all happened when I wasn't around yet.  If you
12 think that I am a biased, unfair, predisposed hypocrite, then don't
13 bother flaming me;  I already know that.
14
15 The GNU Music project is a project which aims to create free software
16 for music printing and composing.  It was started in november '92 by a
17 core team of four members (Bryan Ford <baford@cs.utah.edu>, David Linn
18 <drl@vuse.vanderbilt.edu>, Francois Pinard <pinard@iro.umontreal.ca>,
19 Neil Jerram <nj104@cus.cam.ac.uk> and in January '93 Robert Strandh
20 <Robert.Strandh@labri.u-bordeaux.fr> joined.
21
22 After serious disputes with Robert Strandh
23 <Robert.Strandh@labri.u-bordeaux.fr> and the FSF staff in '94, the
24 project core team got divided. The development efforts of GMP stopped.
25
26 Independently, I (HWN) started LilyPond. When I showed it to
27 RMS, he was very enthousiastic about having LilyPond in the GNU
28 project. I subsequently learned about the GNU Music project, and
29 contacted them.  
30
31 What was left of the GMP (Robert Strandh) and us, LilyPond people,
32 agreed that cooperation would be desirable. Although merging of both
33 efforts was and is technically infeasible, we did decide that LilyPond
34 should also be part of the GNU Music project.
35
36 Only later did I discover the previous quarrels about the GMP-"take
37 1". To show that I am aware of the history, and to make sure nobody
38 gets me wrong or is angry at me because I stole a project or a
39 project's name, I wrote this note.
40
41 In summary, LilyPond is now the only substantial embodiment of the GNU Music
42 Project, and it is part of the GNU project. 
43
44 For completeness' sake, I will mention the other efforts  here:
45
46 =over 4
47
48 =item G Sharp, http://dept-info.labri.u-bordeaux.fr/~strandh/Gsharp
49
50 An alpha version notation editor for X in Scheme. Source available on
51 request.
52
53 =item GNU music, 
54
55 An alpha version of a music editing system with Musictex
56 output. Pretest versions of GNU Music (v0.3) can still be obtained from
57 Francois Pinard.
58
59 =back
60
61 This history note is probably biased in some way, because I wrote it.
62 The rest of this document is also entirely mine, and is not meant to
63 reflect anyone else's opinion.
64
65 =head1 GOAL
66
67 Provide musicians with free software for
68
69 =over 4
70
71 =item *
72
73 composing
74
75 =item *
76
77 engraving
78
79 =item *
80
81 playing
82
83 =item *
84
85 sequencing
86
87 =item *
88
89 interchanging music
90
91 =back
92
93 and possibly for
94
95 =over 4
96
97 =item *
98
99 arranging
100
101 =item *
102
103 performing
104
105 =back
106
107 These systems should encourage laymen to take up composing, in the
108 same way that GNU tools have created a whole new generation of
109 programmers.
110
111 The public deserves free tools for composing and printing.
112
113
114 =head1 REQUIREMENTS
115
116 Emacs and TeX serve as useful examples of what programs by the GMP
117 should be.
118
119 =over 4
120
121 =item high-quality
122
123 (cf TeX), from engraving point of view
124
125 =item high-quality
126
127 (cf Emacs) from software point of view: like all GNU software, it
128 should have no limits, be fast, etc.
129
130 =item tweakable
131
132 Printed music has a lot of styles, and special symbols. It may be
133 unfeasible to provide and maintain  lots of code that is hardwired
134 into the system. The tools should be extensible/programmable like
135 Emacs and TeX
136
137 =item easy to use.
138
139 That is, for technical users (that can read a manual). The learning
140 curve should be as flat as possible but not at the expense of comfort
141 of use and power.
142
143 =back
144
145 =head1 TASKS (LONGTERM)
146
147 =over 4
148
149 =item A set of music fonts
150
151 Preferably in Metafont, suited to both screen display and use on
152 paper; This is needed because
153
154 1. the copyright heritage of
155 {Opus,Musix}tex is unclear. 
156
157 2. We don't have any legal papers which make these fonts free (to use
158 and alter)
159
160 =item A typesetting engine
161
162 A system with rules on how to set properties of items to be printed
163 (up/down directions, breaking, dimensoins, etc) LilyPond provides one,
164 but it is not (yet) suited to interactive typesetting
165
166 =item A display engine
167
168 which can display clear notewriting in (say) an X-window
169
170 Ideally the system should cooperate with the typesetting engine
171
172 =item An ASCII language
173
174 In development, LilyPond has a language. (See over there for goals)
175 Having an ASCII format which enables urtext, and easy sharing (via
176 mail and news forums) encourages cooperation and exchange of music.
177
178 =item A printing engine
179
180 Maybe to be merged with the display system.
181
182 =item An input system
183
184 The natural way to enter composed music is singing or playing it. The
185 GMP should have module which can take keyboard input or microphone
186 input and convert it to computer data. (microphone input would be
187 difficult)
188
189 =item sequencing
190
191 (have no clue about this)
192
193 =item A scanning system
194
195 Having a system which can produce mudela from printed scores,  greatly
196 simplifies creating a collection of music
197
198 =item A music-understanding system
199
200 (difficult) A system to generate accompaniments, figured bass,
201 automatic accompaniment, etc.
202
203
204 =back
205
206 =head1 PROGRAMS
207
208 =over 4
209
210 =item *
211
212 A noninteractive typesetter, suited for batch jobs, and typesetting
213 existing music. This would couple the ASCII language, the printing
214 engine and the typesetting engine
215
216 LilyPond is currently representing this section.
217
218 =item *
219
220 A GUI for composing. This would combine the display engine, the input
221 system and the typesetting engine.
222
223 =item *
224
225 Libraries for reading and writing various audio/music/notation
226 formats.
227
228 =back
229
230 The typesetting system has a complexity comparable to TeX's, the GUI
231 would be comparable to LyX (?)  with additional complexity in
232 recognizing input.
233
234 =head1 TASKS (SHORT TERM)
235
236 =over 4
237
238 =item *
239
240 Gather a  moderate number of test users and hackers
241
242 =item *
243
244 A website on GMP
245
246 =item *
247
248 Libs for r/w MIDI 
249
250 =item *
251
252 Think about interfaces for components.
253
254 =item *
255
256 Find sponsors. This project will take a long time, and in its infant
257 stages, having a hard and small core which does a lot of work, is more
258 efficient than lots of people doing small subprojects. Finanicial
259 support would be desirable.
260
261 =back
262