
       MANIFESTO -- Rationale behind the GNU LilyPond
                          project

                            HWN
                          and JCN

Contents

     1: Goals for LilyPond
2: Development constraints
3: Goals for mudela

1: Goals for LilyPond

GNU LilyPond was written with some considerations in mind:

o    Describing a well-defined language for defining music.
     We call this language (rather arrogantly) The Musical
     Definition Language (mudela for short). GNU LilyPond
     reads a mudela sourcefile and outputs a TeX file.

o    Providing an easy-to-use interface for typesetting
     music in its broadest sense. This interface should be
     intuitive from a musical point of view. By broadest
     sense we mean: it is designed for music printed left to
     right in staffs, using notes to designate rythm and
     pitch.

o    Generating high-quality output. Ideally it should be of
     a professional quality. We'd like to render Herbert
     Chlapiks words, "Fine music setting is not possible
     without a knowledgeable printer,"  untrue.

o    Making a system which is fully tweakable. It should be
     possible to typeset a book on how not to typeset music.

2: Development constraints

Further considerations while doing the programming

o    GNU LilyPond uses TeX for its output. This is not a key
     issue: in a future version, GNU LilyPond might bypass
     TeX, but at the moment TeX is convenient for producing
     output.

o    GNU LilyPond does not display notes directly, nor will
     it be rehacked to be used interactively. GNU LilyPond
     writes output to a file.  It will not be extended to
     play music, or to recognize music.

o    GNU LilyPond is intended to run on Unix platforms, but
     it should be portable to any platform which can run TeX
     and the GNU tools

o    GNU LilyPond is free. Commercial windows packages for
     setting music are abundant. Free musicprinting software
     is scarce. For more thoughts on this, please consult
     the gnu-music documentation.

o    GNU LilyPond is written in GNU C++. It will not be
     downgraded/ported to fit broken systems.

3: Goals for mudela

The design of Mudela has been (perfect past tense, hope-
fully) an ongoing process, the most important criteria
being:

o    define the (musical) message of the composer as unam-
     biguously as possible.  This means that, given a piece
     Mudela, it should be possible for a program to play a
     reasonable interpretation of the piece.

     It also means that, given a piece of Mudela, it should
     be possible for a program to print a score of the
     piece.

o    be intuitive, and easily readable (compared to, say,
     Musi*TeX input, or MIDI :-),

o    be easily writable in ASCII with a simple texteditor

Other considerations were (and will be):

o    be able to edit the layout without danger of changing
     the original music (Urtext),

o    allow for adding different interpretations, again,
     without danger of changing the original,

o    easy to create a conductor's score, as well as the
     scores for all individual instruments,

o    provide simple musical manipulations, such as i
     extracting a slice of music from a previously defined
     piece, ii extracting only the rhythm from a piece of
     music, iii transposing, etc.,

o    easy to comprehend to both programmers and others.

One of the things that (might) be here would be: feasible to
use in a graphic editor. We don't have experience with these
beasts, so we don't know how to do this. Comments appreci-
ated.

Musical pieces could be

o    Orchestral scores, (eg Mahler)

o    piano pieces (eg. Schubert, Rachmaninov),

o    pop songs (lyrics and chords),

o    Gregorian chants,

o    Bach multivoice organ pieces,

o    Short excerpts to be used in musicological publica-
     tions.
