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