3 MANIFESTO -- Rationale behind the GNU LilyPond project
8 GNU LilyPond was written with some considerations in mind:
15 Describing a well-defined language for defining music. We call
16 this language (rather arrogantly) The Musical Definition Language
17 (mudela for short). GNU LilyPond reads a mudela sourcefile and outputs a
22 Providing an easy-to-use interface for typesetting music in
23 its broadest sense. This interface should be intuitive from a musical
24 point of view. By broadest sense we mean: it is designed for music
25 printed left to right in staffs, using notes to designate rythm and
30 Generating high-quality output. Ideally it should be of a professional
31 quality. We'd like to render Herbert Chlapiks words, "Fine music
32 setting is not possible without a knowledgeable printer," untrue.
36 Making a system which is fully tweakable. It should be possible to
37 typeset a book on how not to typeset music.
44 Further considerations while doing the programming
50 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.
56 GNU LilyPond does not display notes directly, nor will it be rehacked
57 to be used interactively. GNU LilyPond writes output to a file. It
58 will not be extended to play music, or to recognize music.
60 [As an aside, I am contemplating to create a library for rendering
61 music, which is "X-capable", so that others can create interactive tools]
65 GNU LilyPond is intended to run on Unix platforms, but it should
66 be portable to any platform which can run TeX and the GNU tools
70 GNU LilyPond is free. Commercial windows packages for setting music are
71 abundant. Free musicprinting software is scarce. For more thoughts on
72 this, please consult the F<gnu-music> documentation.
76 GNU LilyPond is written in GNU C++. It will not be downgraded/ported to fit
83 The design of Mudela has been (perfect past tense, hopefully) an
84 ongoing process, the most important criteria being:
90 define the (musical) message of the composer as unambiguously as possible.
92 This means that, given a piece Mudela, it should be possible for a
93 program to play a reasonable interpretation of the piece.
95 It also means that, given a piece of Mudela, it should be possible for a
96 program to print a score of the piece.
100 be intuitive, and easily readable (compared to, say, Musi*TeX input,
105 be easily writable in ASCII with a simple texteditor
109 Other considerations were (and will be):
115 be able to edit the layout without danger of changing the original
120 allow for adding different interpretations, again,
121 without danger of changing the original,
125 easy to create a conductor's score,
126 as well as the scores for all individual instruments,
130 provide simple musical manipulations, such as S<(i) extracting> a
131 slice of music from a previously defined piece, S<(ii) extracting>
132 only the rhythm from a piece of music, S<(iii) transposing>, etc.,
136 easy to comprehend to both programmers and others.
140 One of the things that (might) be here would be: feasible to use in a
141 graphic editor. We don't have experience with these beasts, so we
142 don't know how to do this. Comments appreciated.
144 Musical pieces could be
150 Orchestral scores, (eg Mahler)
154 piano pieces (eg. Schubert, Rachmaninov),
158 pop songs (lyrics and chords),
166 Bach multivoice organ pieces,
170 Short excerpts to be used in musicological publications.