]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/gnu-music.pod
release: 0.0.68pre
[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
79 paper;  This is because the copyright heritage of {Opus,Musix}tex is unclear.
80
81 =item A typesetting engine. 
82
83 A system with rules on how to set properties of items to be printed
84 (up/down directions, breaking, etc) LilyPond provides one, but it is
85 not yet suited to interactive typesetting
86
87 =item A display engine
88
89 which can display clear notewriting in (say) an X-window
90
91 Gsharp is there, but far from finished. Ideally the system should
92 cooperate with the typesetting engine
93
94 =item An ASCII language
95
96 In development, LilyPond has a language. (See over there for goals)
97 Having an ASCII format which enables urtext, and easy sharing (via
98 mail and news forums) encourages cooperation and exchange of music.
99
100 =item A printing engine
101
102 Maybe to be merged with the display system.
103
104 =item An input system
105
106 The natural way to enter composed music is singing or playing it. The
107 GMP should have module which can take keyboard input or microphone
108 input and convert it to computer data. (microphone input would be
109 difficult)
110
111 =item sequencing
112
113 (have no clue about this)
114
115 =item A scanning system
116
117 Having a system which can produce mudela from printed scores,  greatly
118 simplifies creating a collection of music
119
120 =item A music-understanding system
121
122 (difficult) A system to generate accompaniments, figured bass,
123 automatic accompaniment, etc.
124
125 =item an internet archive of free music
126
127 The complete works by Bach, Beethoven, and any other ancient composer
128 should be electronically retrievable. This might be a separate
129 project: the Free Music Project.
130
131 =back
132
133 =head1 PROGRAMS
134
135 =over 4
136
137 =item *
138
139 A noninteractive typesetter, suited for batch jobs, and typesetting
140 existing music. This would couple the ASCII language, the printing
141 engine and the typesetting engine
142
143 LilyPond is currently representing this section.
144
145 =item *
146
147 A GUI for composing. This would combine the display engine, the input
148 system and the typesetting engine.
149
150 =item *
151
152 Libraries for reading, writing various audio/music/notation formats.
153
154 =back
155
156 The typesetting system has a complexity comparable to TeX's, the GUI
157 would be comparable to LyX (?)  with additional complexity in
158 recognizing input.
159
160 =head1 TASKS (SHORT TERM)
161
162 =over 4
163
164 =item * 
165
166 Gather a  moderate number of test users and hackers
167
168 =item *
169
170 A website on GMP
171
172 =item *
173
174 Libs for r/w MIDI 
175
176 =item *
177
178 Think about interfaces for components.
179
180 =item * 
181
182 Find sponsors. This project will take a long time, and in its infant
183 stages, having a hard and small core which does a lot of work, is more
184 efficient than lots of people doing small subprojects. Finanicial
185 support would be desirable.
186
187 =back
188