2 % this document should be run through the mudela-book script after lilypond
6 \documentclass{article}
8 \title{Mudela and LilyPond crash course}
9 \author{Han-Wen Nienhuys}
13 \def\interexample{\par Produces the following:\par}
14 \def\preexample{\par\medskip}
15 \def\postexample{\par\medskip}
19 Mudela is a language for specifying music. LilyPond is a
20 program which converts such a specification into formatted sheet
21 music, or MIDI output.
23 Please note that some examples not only demonstrate features but also
24 some lurking bugs. If can't understand what is happening, it might
25 just be my (lack of) programming skills.
28 \begin[fragment,verbatim]{mudela}
33 Basics: the \verb+%+ introduces a comment. All music is inside a
34 \verb+\score+ block which represents one movement, ie one contiguous
35 block of music. Voices are grouped by \verb+{+ and \verb+}+ and
36 chords by \verb+<+ and \verb+>+.
38 \begin[verbatim]{mudela}
40 \melodic { % {...} is a voice
41 c'4 g'4 % c and g are pitches, 4 is the duration (quaver)
42 c''4 ''c4 % c' is 1 octave up, 'c 1 down.
43 <c'4 g'4> % <...> is a chord
48 The \verb+\octave+ command controls the default pitch (octave). If you
49 do not specify duration, the last one entered is used. The
50 \verb+\paper+ block contains parameters for spacing and dimensions.
52 \begin[verbatim]{mudela}
54 % twinkle twinkle little star
58 f4 f e e d [d8. e16] c2
61 \paper { linewidth = 5.\cm; }
65 A more complex example; The multi command controls at what level the
66 different components of a chord are interpreted. The LilyPond chord
67 is much more general than a traditional chord. Multiple voices on a
68 staff are entered as a chord of voices. A score is a chord of staffs,
71 \begin[verbatim]{mudela}
76 < \multi 1; { c2 c2 } { c'2 c'2 } >
77 < \multi 2; { \stem -1; c2 c2 } { \stem 1; c'2 c'2 } >
79 { \clef "bass"; c2 c2 }
80 { \meter 2/4;\bar "||";
81 \key fis cis gis; c'2 c'2 } >
84 < \multi 1; < \multi 3;
85 { \meter 2/4; \clef "violin"; c2 c2 }
86 { \meter 2/4; \clef "bass"; c2 c2 }
89 { \meter 2/4; \clef "violin"; c2 c2 }
90 { \meter 2/4; \clef "bass"; c2 c2 }
99 LilyPond is designed to handle complicated stuff
100 automatically. Expertise should be in the program, not in the user.
102 The following example shows how multiple voice on the same staff are
103 handled graciously (well, somewhat). If the noteheads of different
104 voices collide, they are moved horizontally. The same goes for the rests.
106 \begin[verbatim]{mudela}
109 { \octave c'; \stem -1;
110 c4 d e f g2~ g4 a [c8 d e f] c2| }
112 g4 f e g ~ g2 g2 c4 g4 g2 }
116 two_voice_steminvert = \melodic
118 { \octave c'; \stem 1;
119 % the f and g on 4th beat are exceptionally ugh.
126 three_voice = \melodic
130 { \hshift 1; \stem 1;
140 { \stem 1; g'8 f' e' d' c' b a g f e d c }
141 { \stem -1; r r r r r r r r r r r r }
145 < \multi2; r8 r8 r8 >
146 < \multi2; r8 r8 r8 r8 >
155 \melodic { \$two_voice \$two_voice_steminvert
156 \$three_voice \restsII }