]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/gnu-music.yo
release: 1.0.1
[lilypond.git] / Documentation / gnu-music.yo
1 article(GNU Music project - manifesto)(Han-Wen Nienhuys and Jan Nieuwenhuizen)()
2
3 sect(Goal)
4
5 Provide musicians with free software for
6
7 itemize(
8 it()composing
9 it()engraving
10 it()playing
11 it()sequencing
12 it()interchanging music
13 it()arranging
14 it()performing
15 it()Metacomposing
16 )
17
18 These systems should encourage laymen to take up composing, in the
19 same way that GNU tools have created a whole new generation of
20 programmers.
21
22 The public deserves free tools for composing and printing.
23
24
25 sect(Requirements)
26
27 Emacs and TeX() serve as useful examples of what programs by the GMP
28 should be.
29
30 description(
31 dit(high-quality)
32     The software should be of high-quality from the application view.
33 For example, the notation should be high-quality from an engraving
34 point of view, like TeX()
35
36 dit(high-quality) The software should be of high-quality point of
37     view, like all GNU software, it should have no limits, be fast,
38     etc.
39
40 dit(tweakable)
41     Printed music has a lot of styles, and special symbols. It may be
42     unfeasible to provide and maintain  lots of code that is hardwired
43     into the system. The tools should be extensible/programmable like
44     Emacs and TeX.
45
46 dit(easy to use.)
47     That is, for technical users (that can read a manual). The learning
48     curve should be as flat as possible but not at the expense of comfort
49     of use and power.
50 )
51
52 sect(Components)
53
54 description(
55 dit(A set of music fonts)
56     In development, the Feta font.  
57 dit(A typesetting engine)
58     In development, included in LilyPond.
59     A system with rules on how to set properties of items to be printed
60     (up/down directions, breaking, dimensions, etc)
61     It should be suited to interactive typesetting (so, incremental
62     algorithms are needed)
63 dit(A display engine)
64     which can display clear notewriting in (say) an X-window
65     Ideally the system should cooperate with the typesetting engine
66 dit(An ASCII language)
67     In development, LilyPond has a language. 
68     Having an ASCII format which enables urtext, and easy sharing (via
69     mail and news forums) encourages cooperation and exchange of music.
70 dit(A printing engine)
71     In development, included in LilyPond.
72 dit(An input system)
73     The natural way to enter composed music is singing or playing it. The
74     GMP should have module which can take keyboard input or microphone
75     input and convert it to computer data. (microphone input would be
76     difficult)
77 dit(sequencing)
78     (have no clue about this)
79 dit(A scanning system)
80     Having a system which can produce mudela from printed scores,  greatly
81     simplifies creating a collection of music
82 dit(A music-understanding system)
83     (difficult) A system to generate accompaniments, figured bass,
84     automatic accompaniment, etc.
85 dit(A performing system)
86     A system which can play credible performances of abstract music
87     representations.  LilyPond has a bare bones system, but it cannot
88     (yet) be described as "credible". 
89 )
90
91 sect(Programs)
92
93 itemize(
94 it()A noninteractive typesetter, suited for batch jobs, and typesetting
95     existing music. This would couple the ASCII language, the printing
96     engine and the typesetting engine
97     LilyPond is currently representing this section.
98 it()A GUI for composing. This would combine the display engine, the input
99     system and the typesetting engine.
100 it()Libraries for reading and writing various audio/music/notation
101     formats.
102 )
103
104 Find sponsors. This project will take a long time, and in its infant
105 stages, having a hard and small core which does a lot of work, is more
106 efficient than lots of people doing small subprojects. Finanicial
107 support would be desirable.
108