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