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