=item *
A GNU system: GNU LilyPond is known to run on these GNU systems: Linux
-(PPC, intel), FreeBSD, AIX, NeXTStep, Digital Unix and Solaris.
+(PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and Solaris.
If you have the Cygnus WINDOWS32 port of the GNU utils, it will even
work in Windows NT/95, but we don't promise to support it.
=item *
-GNU C++ v2.7 or better, with libg++ installed. Version 2.7.2
-or better recommended.
+GNU C++ v2.7 or better, with libg++ installed. If you use gcc 2.8 or
+egcs then you should install a matching libg++ (ie. 2.8) version.
=item *
=head2 Building for multiple hosts
LilyPond does not follow the GNU standards when it comes to
-configuring and making Makefiles. In LilyPond, F<make> generates I<all>
-output in output directories (called F<out/>, by default).
-You can have multiple compiles from the same source-tree, by
-overriding the setting for the output directory.
+configuring and making Makefiles. In LilyPond, F<make> generates
+I<all> output in output directories (called F<out/>, by default). You
+can have multiple compiles from the same source-tree, by overriding
+the setting for the output directory.
Example: on my system, I do debugging and lots compiling. For this I
use the configuration as follows:
These two commands build two entirely separate versions of
LilyPond. In Real Life, you would probably also want to have two
-different prefixes. On my machine this is no problem; I never do
-C<make install>. My prefix dirs are linked back to my source directory.
+different prefixes. On my machine this is no problem; I never do
+C<make install>. My prefix dirs are linked back to my source
+directory.
=head1 INSTALLING
--- /dev/null
+% -*-latex-*-
+
+% this document should be run through the mudela-book script after lilypond
+% has been installed. The rules have been precooked into the
+% Documentation/Rules.make file; do
+%
+% make out/introduction.dvi
+%
+% or
+%
+% mudela-book --outdir=out/ --outname=introduction.mudtex introduction.doc
+% latex '\nonstopmode \input out/introduction.mudtex'
+
+
+\documentclass{article}
+\usepackage{a4wide}
+\title{Introduction to GNU LilyPond}
+\author{Jan Nieuwenhuizen}
+\date{March 2, 1998}
+
+% ugh: trick to get examples not generate par
+% these are for 16pt
+\def\mudelapaperlinewidth{-28.452756}%
+\def\mudelapaperindent{28.452756}%
+\def\mudelapaperrulethickness{0.400000}%
+\def\mudelapaperbarsize{16.000000}%
+\def\mudelapaperinterline{4.000000}%
+\def\mudelapapernotewidth{5.930000}%
+\def\mudelapaperwholewidth{8.640000}%
+\def\mudelapaperunitspace{22.000000}%
+\def\mudelapaperbasicspace{4.000000}%
+\def\mudelapapergeometric{0.000000}%
+\def\mudelapaperarithmetic_basicspace{2.000000}%
+\def\mudelapaperarithmetic_multiplier{4.800000}%
+\def\mudelapaperinterbeam{3.140000}%
+\def\mudelapapergourlay_energybound{100000.000000}%
+\def\mudelapapergourlay_maxmeasures{14.000000}%
+
+% ful of pars, needs the above
+\input lilyponddefs
+% generates par
+\musixsixteendefs
+\def\musixsixteendefs{}
+% generates par
+\turnOnPostScript%
+\def\turnOnPostScript{}
+%
+
+\begin{document}
+\maketitle
+
+\def\interexample{\hskip15mm$\Longrightarrow$\hskip15mm}
+\def\preexample{}
+\def\postexample{\par\medskip}
+
+% ugh, howto?
+% \def\frag{\vbox to 2\mudelapaperbarsize pt{\vss}
+% \def\interexample{\vss}\hskip15mm$\Longrightarrow$\hskip15mm}
+% \def\preexample{\vbox to 2\mudelabarsize pt{\vss}
+% \def\postexample{\vss}\par\medskip}
+
+\def\file#1{{\texttt{#1}}}
+\setcounter{secnumdepth}{-1}
+
+\emph{\Large ***Under construction***}
+
+\section{Introduction}
+This document should provide a gentle introduction to
+LilyPond's input language, Mudela.
+For completeness and nifty features see
+\verb+input/*.ly+
+and
+\verb+lily/parser.y, lily/lexer.l+.
+
+
+\section{Notes: pitches and durations}
+
+\begin[fragment,verbatim]{mudela}
+c
+\end{mudela}
+
+\begin[fragment,verbatim]{mudela}
+c d e f g a b
+\end{mudela}
+
+Durations are entered as reciproce values
+\begin[fragment,verbatim]{mudela}
+a1 | a2 a | a4 a a a
+\end{mudela}
+and default to the last previously used duration.
+
+Now we can write a little tune
+\begin[fragment,verbatim]{mudela}
+c d e c | c d e c | e f g2 | e4 f g2
+\end{mudela}
+note the explicit duration change for
+the quarter e in the last measure.
+
+Same for notes with flags
+\begin[fragment,verbatim]{mudela}
+a8 a16 a32 a64 a128
+\end{mudela}
+
+\begin[fragment,verbatim]{mudela}
+c c' c''
+\end{mudela}
+
+\begin[fragment,verbatim]{mudela}
+a 'a ''a
+\end{mudela}
+
+\section{Slurs and Ties}
+
+A tie connects two adjacent noteheads
+
+\begin[fragment,verbatim]{mudela}
+c' ~ c
+\end{mudela}
+
+Whereas a slur rather connects `chords',
+and tries to avoid crossing stems.
+
+\begin[fragment,verbatim]{mudela}
+c'( )c
+\end{mudela}
+
+A (legato) slur can span several notes
+\begin[fragment,verbatim]{mudela}
+c'( d e )c
+\end{mudela}
+
+\section{Beams and plets}
+
+\begin[fragment,verbatim]{mudela}
+[a8 a] [a16 a a a]
+\end{mudela}
+
+% [2/3 a8 a a]1/1
+\begin[fragment,verbatim]{mudela}
+[/3 a8 a a]/1
+\end{mudela}
+
+\begin[fragment,verbatim]{mudela}
+\[/3 a4 a8\]
+\end{mudela}
+
+\section{Commands}
+
+\begin[fragment,verbatim]{mudela}
+\clef "bass"; 'c
+\end{mudela}
+
+\begin[fragment,verbatim]{mudela}
+\meter 3/4; c g g |
+\end{mudela}
+
+\begin[fragment,verbatim]{mudela}
+\key fis cis;
+'g 'a 'b cis d e fis g'
+\end{mudela}
+
+\section{Example}
+
+A Mudela file needs some red tape
+
+\begin[verbatim]{mudela}
+\score{
+ \melodic{
+ \octave c';
+ c d e c
+ }
+}
+\end{mudela}
+
+\section{Lyrics}
+
+% this nesting syntax sucks
+\begin[verbatim]{mudela}
+\score{
+ <
+ \melodic \type Staff = bla < \melodic{\octave c'; c d e c} >
+% huh?
+% \lyric \type Lyrics = bli < \lyric{Fre- re Ja- que} >
+ >
+}
+\end{mudela}
+
+\section{Variables}
+
+\end{document}
+
TOPLEVEL_MAJOR_VERSION = 0
TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 46
+TOPLEVEL_PATCH_LEVEL = 47
TOPLEVEL_MY_PATCH_LEVEL =
# use the above to send patches, always empty for released version:
s('bes d g)
- s(c fis a -"poco a poco cresc.")
+%# s(c fis a -"poco a poco cresc.")
+ t(c,fis,a,-"poco a poco cresc.")
s(d g bes)
s(d fis c')
s('fis 'a c)
s('fis 'a c)
r16\p ['g 'a c] ['b 'g 'b 'g] r 'g r 'g
- s('a c fis -"poco cresc.")
+%# s('a c fis -"poco cresc.")
+ t('a,c,fis,-"poco cresc.")
s(c fis a)
s('b d g)
s('b d f -"dim.")
'd4 r ['bes8 'g] |
'd4 r [es8 c] |
- 'd4 r [d8 c] |
+ 'd4 r [d8 a] |
'g4 r [es8 c] |
'g4 r [d8 'b] |
\stemup
)'fis4\p
\skip 4*7; |
+ \textstyle "finger";
d4.\mf cis8-"4\\_5" ~ cis 'b4-5 'a8-"4\\_5" ~ |
\textstyle "italic";
'a 'g4-5 'fis8-4 ~ ['fis16 'fis-4-"dim." 'e-3 'd-2]
'b4-5 'a ~ ['a8 'g-5 ~] ['g16 'fis8-4 'e'16-3] |
['fis8-4 'e-5~] ['e 'd-5~] 'd4 'cis-4 |
'd2\p-"rall." ~ ['d16 ''a-2( ''b-3 'cis-4] )'d4-5 |
+ \bar "|.";
}
two = \melodic{
\textstyle "finger";
% ugh: koor
% \translator Staff=bass \octave c; \stemup
+ \stemup;
fis4-1( e8-2 a4 a4 gis8-2 |
) a8
\translator Staff=treble \octave c''; \stemdown
'a4 'a8 'b4.-"2\\_1" cis8 ~ |
cis8
\translator Staff=bass \octave c; \stemup
- a8 ~ [a d'] ~ d' d'4-> c'8 |
+ a8 ~ [a d'] ~ d' d'4-> cis'8 |
d'8
\translator Staff=treble \octave c''; \stemdown
d4-> cis8-1 ~ cis 'b4-1 'b8 |
r8 'a4 'a8
\translator Staff=bass \octave c; \stemup
[g'8-1( fis'-2] )e'4-1 ~ |
- e'4 d' ~ [d'16 d-1 cis'-2 g-1] cis'4-2 ~ |
- [c'8 a-3] d'4.-1 d'4-> cis'8-2 |
+ e'4 d' ~ [d'16 d'-1 cis'-2 b-1] cis'4-2 ~ |
+ [cis'8 a-3] d'4.-1 d'4^> cis'8-2 |
\translator Staff=treble \octave c''; \stemdown
'd4
\stemboth
- r16 [''b-1\< d-2 ''b~] <'g4-5 'e-3 ''b>
+ r16 [''b-1\< 'd-2 ''b~] <'g4-5 'e-3 ''b>
r16 ['cis-1 'e-2 \!'cis~] |
<'a4-5 'f-3 'cis> r16 ['d-1 'fis-2 'd~] <'b4-5 'g-3 'd>
r16 ['fis-1 'a 'fis~] |
}
>
[g-1 fis-2 g-1 a-2] [g-1 b-3 a-2 g-1 ~] |
- [g g-1 fis-2 e-1] fis-2 ~ fis2
+ [g g-1 fis-2 e-1] fis4-2 ~ fis2
+ \bar "|.";
}
three = \melodic{
[fis-2 g a-2 fis-4] |
)fis16 ['g( 'b 'g] [d-2 e fis-2 d-4] [)g8-. 'g-.] r16 [cis-4( e cis] |
[)fis8-. 'fis-.] \stemdown r16 ['b-4( d 'b] [)e8-. 'e-.]
- r16 ['a-4 cis a] |
+ r16 ['a-4 cis 'a] |
\stemboth
[d-1 e-3 fis-2 d-4] [g-1 fis-2 e-3 d-1] [cis!-3 'a-5 'b cis]
[d-2 e fis-2 d-4] |
- [g8 e-3] \stemdown [a 'a] ['b8.-4 'g16-5] a4-4 |
+ [g8 e-3] \stemdown [a 'a] ['b8.-4 'g16-5] 'a4-4 |
[d8-5 a-2~] [a g-3~] [g g-3] fis4-4 |
\stemup
- r16 [g-2 b-1 g-3] [b'8.-1 c'16-1] [b8.-2 bes16-3] [a8-1 g] |
+ r16 [g-2 b-1 g-3] [d'8.-1 c'16-1] [b8.-2 bes16-3] [a8-1 g] |
\stemdown
r16 ['a-2 cis!-1 a-2] [d-1 e fis d] [e8-1 d-2] [e-1 'a-2] |
[d 'a-2~] ['a16 'a-2 'b cis-2] d2 |
\paper{
\paper_twenty
linewidth= 195.\mm;
+% arithmetic_basicspace = 2.;
+% arithmetic_multiplier = 6.\pt;
+ arithmetic_basicspace = 3.;
+ arithmetic_multiplier = 6.\pt;
}
\midi{
\tempo 4 = 110;
\multi 2 <
{
\stemup
-% c4\mr^"(\\textsharp)"\p r r |
-% c4\mr^"(\\textsharp)" r r
- c4^"(\\textsharp)"\p r r |
- c4^"(\\textsharp)" r r
+% c'4\mr^"(\\textsharp)"\p r r |
+% c'4\mr^"(\\textsharp)" r r
+ c'4^"(\\textsharp)"\p r r |
+ c'4^"(\\textsharp)" r r
}
{
\stemdown
a4 r r
}
> |
+ \stemboth;
[a'8\mf( es'-3\> d' c' bes!-3 a] |
[g fis-3 e!-2 d-1 c'-4 \!a] |
[)bes32(\p a bes16] [d'8-5 bes-3 g-1] )g'4 |
[)a-2 c'-4( a f] ) f'4 |
% r8 [c'-5 bes a g\tr f] |
r8 [c'-5 bes a g f] |
- [g-2 bes-4 a g fis-1 e-2] |
+ [g-2 bes-4 a g f-1 e-2] |
[f-3 d-1 f-2 a-3 d'-5 g-2] |
\multi 2 <
{
\stemup
- [cis'32-4 b cis'16 e'8-5-"poco cresc." cis-3 a e' cis]
+ [cis'32-4 b cis'16 e'8-5-"poco cresc." cis'-3 a e' cis']
}
{
\stemdown
[d-1 a-5 f-3 d-1 cis-2 d-1] |
[e-3\< g-5 e-3 'bes-1 g-5 e-3] |
['bes-1 g-5 e-3 \!cis-2 'a-1 g-5] |
- [f16-4\mf d-2 c-1 'bes-3] s4 s |
+ [f16-4\mf d-2 c-1 'bes-3] /stemup 'a-2 s16 s8 s4 |
% ugh
% s1 |
s4 s4 s4 |
- s4 s16 [d16-1-"m.d." f-2 a-4] [d-2-"m.g." f a] \stemup d'-1 |
+ s4 s16 [d16-1-"m.d." f-2 a-4] \stemdown [d-2-"m.g." f a] \stemup d'-1 |
+ \stemboth
[f' a'-4 f' d'] [f'-4 d' b d'-5] [gis-2 b a g] |
<g'!4.-5\f e' a> a'8-5
\multi 2 <
gis4-3 r r |
e-4( )gis-2 e |
[a8-4 e'-1 c'-2 a-4 e'-1 c'-2 ] |
+ [g!-5 es'-1 c'-1 g-5 es'-1 c'-1 ] |
fis4-5 r r
d-4( ) fis d-5 |
-% g\mr-"(\textsharp)" r r f!8 |
- g-"(\textsharp)" r r8 f! |
+% g\mr-"(\\textsharp)" r r f!8 |
+ g-"(\\textsharp)" r r8 f! |
[e32 f e8.] r4 r |
% f\pr r r8 e |
f r r8 e |
d4 r8 [f-1 e d] |
[e-2 d-3 cis-4 e-1 d-2 cis-3] |
- d4-2( )c! 'b-4 |
- 'a( )a a |
- 'a( )a a |
- 'a( )a a |
- 'a( )a a |
- 'b r r |
- 'b-5( )b 'b |
+ d4-2( )c! 'bes-4 |
+ 'a( )a 'a |
+ 'a( )a 'a |
+ 'a( )a 'a |
+ 'a( )a 'a |
+ 'bes r r |
+ 'bes-5( )bes 'bes |
'a r r |
'a-2( )d-1 'd |
'g r r |
- 'g( )g g |
+ 'g( )g 'g |
'g r r |
- 'g( )g g |
+ 'g( )g 'g |
'a r r |
- 'a( )a a |
+ 'a( )a 'a |
'a r r |
- 'a( )a a |
+ 'a( )a 'a |
'cis r r |
'cis( )cis 'cis |
'd-4 s16
\stemdown
% [d-4-"m.g." f-"cresc."] a s s8 s4\dep |
[d-4-"m.g." f-"cresc."] a s s8 s4-"*" |
+ \stemboth
% ugh, whole rest has duration of one bar
% r1 |
r4 r r |
\paper{
\paper_twenty
linewidth= 195.\mm;
+% arithmetic_basicspace = 2.;
+% arithmetic_multiplier = 6.\pt;
+ arithmetic_basicspace = 2.;
+ arithmetic_multiplier = 8.\pt;
}
\midi{
\tempo 4 = 90;
\octave c';
\skip 4*4; |
\stemup
- r4 d2-5( cis4-4 |
+ r4 d'2-5( cis'4-4 |
\stemboth
- [)d16-5\mf a'-4( g' f'] [e' f'-4 cis'-2 d'-1]
- [e32-3 d e8 f16] [d'8.-1 cis'16-3] |
+ [)d'16-5\mf a'-4( g' f'] [e' f'-4 cis'-2 d'-1]
+ [e'32-3 d' e'8 f'16] [d'8.-1 cis'16-3] |
\stemup
- )cis'4\> ~ [cis16 a \!d'8 ~] d4 c-5 |
+ )cis'4\> ~ [cis'16 a \!d'8 ~] d'4 c'-5 |
b2-4 ~ b4 a-5 ~ |
[a16 a-5 \stemup g! f] g4-4\< ~ g f-3 ~ |
[\!f16 a g f] [e16 g8.-5 ~] [g16 g-5 f-4 e-3] [d-1 f8.-4 ~] |
[f16 f-3 e d] b4 a-5 g-5 |
- fis4-4 g r8\<-"rall." [g16-1( bes-2] r16 [bes-2 a-2 \!g-1] |
- ) d'1-5
+ fis4-4 g r8\<-"rall." [g16-1( bes-2] \!e'4-5\> |
+ \!)d'1-5
+ \bar "|.";
}
two = \melodic{
\octave c';
r16\p [d'-5( c'-4 bes-3] [a-2 bes-3 f-1 g-2]
[a32-3 g a8 bes16-1] [g8. f16-1] |
+ \stemdown
)f2 e2 |
\translator Staff=bass \octave c; \stemup
r4 a-1 bes-2 b-1 |
s4 [e32 d e8.~] e4 d4 ~ |
d4. [cis16-2 d-1] cis4 d-1 ~ |
d8 r r16 [e-2 f d] r16 [e-2 f d] r [d-1 e-3 cis] |
- r16 [e-3 d-1 c!-2] ['bes! d8.] r8 e'4-5 |
+ r16 [e-3 d-1 c!-2] ['bes! d8.] s4 r16 [bes-2 a-2 \!g-1] |
fis1-2
}
\octave c;
\stemup
f2-1( e-2 |
- [)d16 b'( c' bes] [a-4 bes-2 f-5 g-4]
+ \stemboth;
+ [)d16 d'( c' bes] [a-4 bes-2 f-5 g-4]
[a32 g a8 bes16-2]
[g8.-4 f16-5] |
)f2-5 g4-4 gis |
a2-2 ~ [a16 a-1( g f] [e-4 f-2 c-5 d] |
[e32 d e8 f16] [d8.-4 c16-5] \stemboth )c4.-5 d8-4 |
+ \stemdown
e4 ~ [e16 f-2( e-3 d-4] [cis 'a 'b cis-3] [d-4 e-3 f-2 d-4] |
\textstyle "finger";
)'bes!2-"5\\_4" 'a ~ |
- a a |
+ 'a 'a |
'd cis-5 |
- b1-2
+ a1-2
+ \bar "|.";
}
four = \melodic{
\octave c;
+ \stemdown;
d2-3 cis-4 |
- \skip 4*16;
+ \skip 4*12;
+ \translator Staff=treble \octave c'; \stemup \property Voice.hshift = 1
+ a4 gis-2 ~ [gis16 gis-3 fis e]
+ \skip 4*1;
+ \translator Staff=bass \octave c; \stemdown \property Voice.hshift = 0
\stemup
b2-1 a-1 |
g a4. [gis16 a] |
\type Staff=treble <
\global
% huh? try these iso directly!
- \lh
-% \one
-% \two
+% \lh
+ \multi 2 <
+ \one
+ \two
+ >
>
\type Staff=bass <
\global
- \rh
+% \rh
% or try \two having here, iso above!
-% \three
-% \four
+ \clef "bass";
+ \multi 2 <
+ \three
+ \four
+ >
>
>
\paper{
linewidth= 195.\mm;
}
\midi{
- \tempo 4 = 110;
+ \tempo 4 = 40;
}
}