]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/MANIFESTO.texi
release: 1.2.6
[lilypond.git] / Documentation / MANIFESTO.texi
1 \input texinfo @c -*-texinfo-*-
2 @setfilename MANIFESTO.info
3 @settitle MANIFESTO - Rationale behind the GNU LilyPond project
4
5 @node Top, , Goals for mudela, (dir)
6 @top
7 @menu
8 * MANIFESTO - Rationale behind the GNU LilyPond project::MANIFESTO - Rationale behind the GNU LilyPond project
9 @end menu
10
11
12
13 @node MANIFESTO - Rationale behind the GNU LilyPond project, Goals for LilyPond, , Top
14 @menu
15 * Goals for LilyPond::            Goals for LilyPond
16 * Development constraints::       Development constraints
17 * Goals for mudela::              Goals for mudela
18 @end menu
19 @chapter MANIFESTO -- Rationale behind the GNU LilyPond project
20
21
22 @node Goals for LilyPond, Development constraints, MANIFESTO - Rationale behind the GNU LilyPond project, MANIFESTO - Rationale behind the GNU LilyPond project
23 @section Goals for LilyPond
24
25 GNU LilyPond was written with some considerations in mind:
26
27 @itemize @bullet
28 @item  Describing a well-defined language for defining music. We call
29     this language (rather arrogantly) The Musical Definition Language
30     (mudela for short). GNU LilyPond reads a mudela sourcefile and outputs a
31     TeX file.  
32 @item  Providing an easy-to-use interface for typesetting music in
33     its broadest sense. This interface should be intuitive from a musical
34     point of view. By broadest sense we mean: it is designed for music
35     printed left to right in staffs, using notes to designate rythm and
36     pitch.
37 @item Generating high-quality output. Ideally it should be of a professional
38     quality. We'd like to render Herbert Chlapiks words, "Fine music
39     setting is not possible without a knowledgeable printer,"  untrue.
40 @item Making a system which is fully tweakable. It should be possible to
41     typeset a book on how not to typeset music.
42 @end itemize
43
44 @node Development constraints, Goals for mudela, Goals for LilyPond, MANIFESTO - Rationale behind the GNU LilyPond project
45 @section Development constraints
46
47 Further considerations while doing the programming
48
49 @itemize @bullet
50 @item GNU LilyPond uses TeX for its output. This is not a key issue: in a
51     future version, GNU LilyPond might bypass TeX, but at the moment TeX
52     is convenient for producing output.
53 @item GNU LilyPond does not display notes directly, nor will it be rehacked
54     to be used interactively. GNU LilyPond writes output to a file.  It
55     will not be extended to play music, or to recognize music.
56 @item GNU LilyPond is intended to run on Unix platforms, but it should
57     be portable to any platform which can run TeX and the GNU tools
58 @item GNU LilyPond is free. Commercial windows packages for setting music are
59     abundant. Free musicprinting software is scarce. For more thoughts on
60     this, please consult the @file{gnu-music} documentation.
61 @item GNU LilyPond is written in GNU C++. It will not be downgraded/ported to fit
62     broken systems.
63 @end itemize
64
65 @node Goals for mudela, Top, Development constraints, MANIFESTO - Rationale behind the GNU LilyPond project
66 @section Goals for mudela
67
68 The design of Mudela has been (perfect past tense, hopefully) an
69 ongoing process, the most important criteria being:
70
71 @itemize @bullet
72 @item define the (musical) message of the composer as unambiguously as possible.
73     This means that, given a piece Mudela, it should be possible for a
74     program to play a reasonable interpretation of the piece.
75
76     It also means that, given a piece of Mudela, it should be possible for a
77     program to print a score of the piece.
78 @item be intuitive, and easily readable (compared to, say, Musi*TeX input,
79     or MIDI :-),
80 @item be easily writable in ASCII with a simple texteditor
81 @end itemize
82
83 Other considerations were (and will be):
84
85 @itemize @bullet
86 @item be able to edit the layout without danger of changing the original
87     music (Urtext),
88 @item allow for adding different interpretations, again, 
89     without danger of changing the original,
90 @item easy to create a conductor's score, 
91     as well as the scores for all individual instruments,
92 @item provide simple musical manipulations, such as @emph{i} extracting a
93     slice of music from a previously defined piece, @emph{ii} extracting
94     only the rhythm from a piece of music, @emph{iii} transposing, etc.,
95 @item easy to comprehend to both programmers and others.
96 @end itemize
97
98 One of the things that (might) be here would be: feasible to use in a
99 graphic editor. We don't have experience with these beasts, so we
100 don't know how to do this. Comments appreciated.
101
102 Musical pieces could be
103
104 @itemize @bullet
105 @item Orchestral scores, (eg Mahler)
106 @item piano pieces (eg. Schubert, Rachmaninov),
107 @item pop songs (lyrics and chords),
108 @item Gregorian chants,
109 @item Bach multivoice organ pieces,
110 @item Short excerpts to be used in musicological publications.
111 @end itemize
112
113
114 @bye