lilypond-1.3.10
[lilypond.git] / Documentation / gnu-music.pod
blob97656daf6e7a28201a1afee3494eabb943d363e4
1 =head1 NAME 
3 GNU Music project - manifesto
5 =head1 DESCRIPTION
7 Random ranting about the GNU Music project.  
9 =head1 GOAL
11 Provide musicians with free software for
13 =over 4
15 =item *
17 composing
19 =item *
21 engraving
23 =item *
25 playing
27 =item *
29 sequencing
31 =item *
33 interchanging music
35 =item *
37 arranging
39 =item *
41 performing
43 =item * 
45 Metacomposing
47 =back
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.
53 The public deserves free tools for composing and printing.
56 =head1 REQUIREMENTS
58 Emacs and TeX serve as useful examples of what programs by the GMP
59 should be.
61 =over 4
63 =item high-quality
65 (cf TeX), from engraving point of view
67 =item high-quality
69 (cf Emacs) from software point of view: like all GNU software, it
70 should have no limits, be fast, etc.
72 =item tweakable
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
79 =item easy to use.
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.
85 =back
87 =head1 COMPONENTS
89 =over 4
91 =item A set of music fonts
93 In development, the Feta font.  
95 =item A typesetting engine
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)
103 =item A display engine
105 which can display clear notewriting in (say) an X-window
107 Ideally the system should cooperate with the typesetting engine
109 =item An ASCII language
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.
115 =item A printing engine
117 In development, included in LilyPond.
119 =item An input system
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)
126 =item sequencing
128 (have no clue about this)
130 =item A scanning system
132 Having a system which can produce mudela from printed scores,  greatly
133 simplifies creating a collection of music
135 =item A music-understanding system
137 (difficult) A system to generate accompaniments, figured bass,
138 automatic accompaniment, etc.
140 =item A performing system
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". 
146 =back
148 =head1 PROGRAMS
150 =over 4
152 =item *
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
158 LilyPond is currently representing this section.
160 =item *
162 A GUI for composing. This would combine the display engine, the input
163 system and the typesetting engine.
165 =item *
167 Libraries for reading and writing various audio/music/notation
168 formats.
170 =back
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.