]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/lilyinput.pod
release: 0.0.24
[lilypond.git] / Documentation / lilyinput.pod
1 =head1 NAME
2
3 LilyInput -  LilyPond input format
4
5 =head1 DESCRIPTION
6
7 This page documents the the LilyPond input format, mudela.
8
9 =head2 Overview
10
11 General format of a construct:
12
13         BLOCKNAME {  <info to go with this block>   }
14
15 Some types allow declarations:
16
17         IDENTIFIER = BLOCKNAME {
18                 <info to go with this block>
19         }
20
21         ..
22
23         BLOCKNAME {
24                 IDENTIFIER
25                 ...
26         }
27
28
29 In musicmode, eg,
30
31         ''!c8.-"text"_v
32
33 and in lyricmode, eg,
34
35         Twink- le, twink- le litt- le star,2
36
37 a lot of characters parse differently
38 than in "command" mode, eg,
39
40         identifier = score { .. }
41
42 So you have to signal that to the tokenizer. This is done with
43 '$'. '$' is a delimiter, which used by the tokenizer only. The same
44 goes for lyrics, it has a '@' delimiter.
45
46 =item *
47 musicmode: The brace still is used to group grammatical groups.
48
49 =item *
50 musicmode: "word" are preceded by a '\' (backslash)
51
52 This means you can write some stuff in a zillion ways:
53
54 =item 1.
55         $\var = \blockname { ... } $
56
57 =item 2.
58         var = blockname { $ ... $ } 
59
60 =item 3.
61         var = $ $ $\blockname {  ... $ } 
62
63 =head2 Comments
64
65 Not really crystallized; you can use '#' or '%' as line comment
66
67 =head2 other
68
69 LilyPond first reads 'symbol.ini', which contains declarations crucial
70 to proper operation of LilyPond (symbol tables, note names).
71
72 This language looks a lot like Rayce's which in turn owes a lot to the
73 POVRay raytracer. Now, I know, musictypesetting and Raytracing do not
74 necessarily require the same input format, but I was just to lazy to
75 make up a new and/or better input format. Suggestions appreciated.