3 LilyInput - LilyPond input format -- Mudela 0.1
5 B<NOTICE:> this doc describes the I<new> input format, S<Mudela 0.1>.
9 This document describes the the LilyPond input format, which is an
10 effective language for definining music. We call this language
11 (rather arrogantly) The Musical Definition Language (S<Mudela 0.1>).
13 The first aim of Mudela is to define a piece of music,
14 being complete from both from a musical typesetting,
15 as from a musical performing point of view.
17 The design of Mudela has been (perfect past tense, hopefully)
19 the most important criteria being:
25 define the (musical) message of the composer as unambiguously as possible,
29 be intuitive, and easily readable
30 (compared to, say, Musi*TeX input, or MIDI :-),
34 be writable in ASCII with a simple texteditor, yfte(TM).
38 Other considerations were (and will be):
44 be able to edit the layout
45 without danger of changing the original music (Urtekst),
49 allow for adding different interpretations, again,
50 without danger of changing the original,
54 easy to create a conductor's score,
55 as well as the scores for all individual instruments,
59 provide simple musical manipulations, such as
60 S<(i) extracting> a slice of music from a previously defined piece,
61 S<(ii) extracting> only the rhythm from a piece of music,
62 S<(iii) transposing>, etc.,
66 easy to comprehend to both programmers and others.
70 Musical pieces could be
76 Mahlerian orchestral scores,
80 piano pieces (Schubertian, Rachmaninovian),
84 pop songs (lyrics and chords),
92 Bach multivoice organ pieces,
96 short excerpts to be used in musicological publications.
103 The Musical Definition Language (Mudela) S<version 0.1>,
104 has a logical structure,
105 making use of typing and naming (using identifiers),
106 that allows for flexible input, and definition reuse.
110 Line comments are introduced by a C<%>
114 Keywords are preceded by a backslash "\".
116 The actual musical part of Mudela that defines a melody, is known as
119 Mudela uses the brace (C<{> and C<}>) for hierarchical structures. To
120 aid the eye in reading, for chords we have used the C<<> and the C<>>
124 The general structure consists of declarations:
132 \TYPE{ <type specific data> }
134 (Currently, C<\score> is the only type that can be instantiated
135 at top level. Currently declarations can only be done at top level)
137 Most instantiations that use an IDENTIFIER are specified as follows:
139 \TYPE { IDENTIFIER [...] }
141 Some exceptions on this rule have been made to prevent inputting
142 Mudela becoming tedious
148 Simple mudela is the most common type of music. It consists of a list
149 of notes, chords, and commands. The below included for explanatory
150 purposes only (i.e., for a complete and up-to-date definition, see
151 F<lily/parser.y> and F<lily/lexer.l>):
153 Simple mudela basically is a sequence of the notes you want to
158 is a A-1 pitched quaver. The ' signifies an octave change.
159 A-1 is 440 Hz concert-pitch. C<c'> is also known as the central
171 This is an A flat, (just below 110 Hz concert-pitch). The C<*2/3>
172 signifies that this note is part of a triplet (3 in stead of 2). The
173 duration is one and a half quaver times 2/3.
175 The default language for notenames is defined to be dutch,
178 cisis disis eisis fisis gisis aisis bisis
180 cis dis eis fis gis ais bis
184 ces des es fes ges as bes
186 ceses deses eses feses geses ases beses
188 The standard notenames also have uppercase versions, which octavate
196 These notenames along with duration is enough material to construct
202 Music is able to express more. generally speaking, the other
203 'features' are either connected between notes (slurs, beams: spanning
204 requests) or attached to notes (eg. accents). The former are
205 implemented as START and STOP stop features and then attached to the note.
215 Please note that these two parentheses do I<not> necesarrily nest, eg:
220 Symbols which can be put at either side of a staff are entered as follows:
222 a-^ % marcato, direction: default
223 a^- % portato, direction: above note
224 a_. % staccato, direction: below note
225 a^\script { "symbolindex" . . . } % see script.ini for details.
227 Dynamics can be put after the notename:
229 a4 \dynamic { 0 } % 0 = fff, 7 = ppp
231 Mudela defines the following dynamic identifiers:
233 ppp pp p mp mf df ff fff % df iso f, f is a notename.
235 The general form of a note is:
237 post-requests de-octavate notename octavate duration pre-requests
239 Notenames are just identifiers, and can be declared for any
240 language appropriate (see F<dutch.ini>).
245 Lyrics in Mudela resemble Simple mudela a lot,
246 with notes substituted by text.
247 All syllables are entered separately, separated by whitespace
248 ("Twin-4 kle4 twin-4 kle4 ... ").
249 Two syllables or words that compose a single duration entry
250 are bound together using an underscore ("He_could4 not4").
254 Rhythms in Mudela are entered identical to Simple mudela.
255 The melodic part of the information is ignored.
259 In concrete, a piece of Mudela has the following structure:
261 % declare pieces of music:
262 melody = \music{ <simple mudela> }
263 accompany = \music{ <simple mudela> }
265 % instantiate (=create tex, midi output) the score:
269 \commands{ <score global commands> }
270 \midi{ <midi definitions> }
271 \paper{ <paper and layout definitions }
276 Examples are included with the LilyPond distribution. For the sake of
277 maintenance no long examples are included in this document.
282 LilyPond first reads F<symbol.ini>, which contains declarations crucial
283 to proper operation of LilyPond (symbol tables, note names).
285 =head1 Decisions (Sat 1997-3-15, dommelpijpje no21)
291 \keyword, bo difference notes vs. notenames,
295 {} hierachical, nest.,
307 melody = \melodic{ } vs. \melodic melody = { }
311 lexer mode switch by types: \lyric{ }, \melodic{ }, etc.,
315 octaves: low 'C C c c' c'' high; 'c' == c === "c-klein", comment: a '
316 ' a . Which ' for which a? Now using a!'`.
326 \grouping{ 2*8 3*8 },
330 \skip{ 2: 2*8 3*32 },
334 abbrev: [c2 c2]\noplet{1/2} (wat bout [c2 c2]1/2\noplet?),
338 abbrev: c4=16 (heu, =?),
342 plet === midi-note: c4*2/3; c4*385/384,
352 \meter compulsory in Simple mudela,
364 \transpose{ \from c \to g \melodic{ c d e } }
365 \transpose{ \from c \to g melody } %!?
369 \extract{ \from 2:3*4 \to 5 oboe }