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