]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/gnu-music.pod
f0fe5fc7e5db2db6e93fb9209f31ef3955b4867e
[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 the users with free software for:
12
13         - composing
14         - setting
15         - playing
16         - sequencing
17         - interchanging music
18
19 and possibly for
20
21         - arranging
22         - performing
23
24 Music publishers make lots of money out of selling sheet music which
25 is in the public domain (the composers died a long time ago). It is
26 usually prohibited to xerox the sheet music.  Publishers have two
27 arguments for not allowing this: high prices are there to guarantee
28 diversity (keeping lots of stock is expensive), and to encourage new
29 work being composed.
30
31 LilyPond addresses the first issue: storing mudelas takes up almost no
32 space at all.  Other systems should address the other issue:
33 encouraging laymen to take up composing, in the same way that GNU
34 tools have created a whole new generation of programmers.
35
36 The public deserves to get public domain music for free (zero cents). 
37
38 The public deserves free tools for composing and printing.
39
40
41 =head1 REQUIREMENTS
42
43 Emacs and TeX serve as useful examples of what programs by the GMP
44 should be.
45
46 =over 4
47
48 =item * high-quality 
49
50 (cf TeX), from engraving point of view
51
52 =item * high-quality
53
54 (cf Emacs) from software point of view: like all GNU software, it
55 should have no limits, be fast, etc.
56
57 =item * tweakable
58
59 Printed music has a lot of styles, and special symbols. It may be
60 unfeasible to provide and maintain  lots of code that is hardwired
61 into the system. The tools should be extensible/programmable like
62 Emacs and TeX
63
64 =item * easy to use. 
65
66 That is, for technical users (that can read a manual). The learning
67 curve should be as easy as possible but not at the expense of comfort
68 of use and power.
69
70 =back
71
72 =head1 TASKS (LONGTERM)
73
74 =over 4
75
76 =item A set of music fonts
77
78 Preferably in Metafont, suited to both screen display and use on paper
79
80 The copyright heritage of Musixtex is unclear.
81
82
83 =item A typesetting engine. 
84
85 A system with rules on how to set properties of items to be printed
86 (up/down directions, breaking, etc) LilyPond provides one, but it is
87 not yet suited to interactive typesetting
88
89 =item A display engine
90
91 which can display clear notewriting in (say) an X-window
92
93 Gsharp is there, but far from finished. Ideally the system should
94 cooperate with the typesetting engine
95
96 =item An ASCII language
97
98 In development, LilyPond has a language. (See over there for goals)
99 Having an ASCII format which enables urtext, and easy sharing (via
100 mail and news forums) encourages cooperation and exchange of music.
101
102 =item A printing engine
103
104 Maybe to be merged with the display system.
105
106 =item An input system
107
108 The natural way to enter composed music is singing or playing it. The
109 GMP should have module which can take keyboard input or microphone
110 input and convert it to computer data. (microphone input would be
111 difficult)
112
113 =item sequencing
114
115 (have no clue about this)
116
117 =item A scanning system
118
119 Having a system which can produce mudela from printed scores,  greatly
120 simplifies creating a collection of music
121
122 =item A music-understanding system
123
124 (difficult) A system to generate accompaniments, figured bass,
125 automatic accompaniment, etc.
126
127 =item an internet archive of free music
128
129 The complete works by Bach, Beethoven, and any other ancient composer
130 should be electronically retrievable. This might be a separate
131 project: the Free Music Project.
132
133 =back
134
135 =head1 PROGRAMS
136
137 =over 4
138
139 =item *
140
141 A noninteractive typesetter, suited for batch jobs, and typesetting
142 existing music. This would couple the ASCII language, the printing
143 engine and the typesetting engine
144
145 LilyPond is currently representing this section.
146
147 =item *
148
149 A GUI for composing. This would combine the display engine, the input
150 system and the typesetting engine.
151
152 =item *
153
154 Libraries for reading, writing various audio/music/notation formats.
155
156 =back
157
158 The typesetting system has a complexity comparable to TeX's, the GUI
159 would be comparable to LyX (?)  with additional complexity in
160 recognizing input.
161
162 =head1 TASKS (SHORT TERM)
163
164 =over 4
165
166 =item * 
167
168 Gather a  moderate number of test users and hackers
169
170 =item *
171
172 A website on GMP
173
174 =item *
175
176 Libs for r/w MIDI 
177
178 =item *
179
180 Think about interfaces for components.
181
182 =item * 
183
184 Find sponsors. This project will take a long time, and in its infant
185 stages, having a hard and small core which does a lot of work, is more
186 efficient than lots of people doing small subprojects. Finanicial
187 support would be desirable.
188
189 =back
190