argument.
* Documentation/user/changing-defaults.itely (Page layout): new node.
(Paper size): rename node
(Page breaking): new node.
(Titling): move from invoking.
(File structure): new node.
* lily/parser.yy (score_body): allow \header and music anywhere in
\score body.
2004-06-13 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * lily/parser.yy (relative_music): start at middle C without pitch
+ argument.
+
* Documentation/user/changing-defaults.itely (Page layout): new node.
(Paper size): rename node
(Page breaking): new node.
@menu
-* Scheme tutorial::
-* File structure::
+* Scheme tutorial::
+* File structure::
* Interpretation contexts::
* Tuning output::
* Fonts::
@node File structure
@section File structure
-The following items may be present in a file at toplevel
+The following items may be present in a @file{.ly} file at toplevel
@itemize @bullet
@item An output definition, such as @code{\bookpaper}, @code{\midi}
The following example shows three things which may be entered at
toplevel
-@example
+@verbatim
\paper {
% movements are non-justified by default
raggedright = ##t
}
{ c'4 d' e2 }
-@end example
+@end verbatim
At any point in a file, any of the following lexical instructions can
@item @code{\include}
@item @code{\encoding}
@item @code{\renameinput}
-@item
+@end itemize
This is a demonstration of the fields available,
-@lilypond
+@lilypond[verbatim]
\book {
\header {
title = "Title"
instrument = "Instrument"
piece = "Piece"
}
+
\score {
\header {
- piece = "piece"
- opus = "opus"
+ piece = "piece1"
+ opus = "opus1"
+ }
+ { c'1 }
+ }
+ \score {
+ \header {
+ piece = "piece2"
+ opus = "opus2"
}
{ c'1 }
}
Distance between top-most music system and the page header
@item foot-sep
Distance between bottom-most music system and the page footer
-@end itemize
+@end table
The default page header puts the page number and the @code{instrument}
field from the @code{\header} block on a line.
The default footer is empty, except for the first page, where it the
@code{copyright} field from @code{\header} is inserted, and the last
-page, where @code{tagline} from @code{\header} is added (the default
+page, where @code{tagline} from @code{\header} is added. The default
tagline is ``Engraved by LilyPond (@var{version})''.
The header and footer are created by the functions @code{make-footer}
@seealso
-Examples: TODO
+Examples: @inputfileref{input/test/,page-breaks.ly}
-@quotation
-We would like to dedicate this program to all the friends that we
+@quotation
+We want to dedicate this program to all the friends that we
met through music.
Han-Wen and Jan
@c
Output format for sheet music. Choices are @code{tex} (for @TeX{}
output, to be processed with La@TeX{}, or through @code{lilypond}),
-@code{pdftex} for PDF@TeX{} input, @code{ps} (for PostScript),
-@code{scm} (for a Scheme dump), @code{sk} (for Sketch).
+and @code{ps} for PostScript.
-@strong{This option is only for developers}. Only the @TeX{} output of
-these is usable for real work.
+Other output options are intended for developers.
@cindex output format, setting
-@cindex Sketch output
-@cindex PDFTeX output
@cindex PostScript output
@cindex Scheme dump
are also interpreted.
@cindex titling and lilypond-book
-@cindex lilypond-book and titling
@cindex @code{\header} in La@TeX{} documents
-The titling from the @code{\header} section of the fragments can be
-imported by adding the following to the top of the La@TeX{} file:
-
-@example
-\input titledefs.tex
-\def\preLilyPondExample@{\def\mustmakelilypondtitle@{@}@}
-@end example
The music will be surrounded by @code{\preLilyPondExample} and
@code{\postLilyPondExample}, which are defined to be empty by default.
@node Vocal music
@section Vocal music
-This section discusses how to enter and print lyrics.
+
+The easiest way to add lyrics to a melody, is by appending
+
+
+@cindex \newlyrics
+@example
+ \newlyrics @{ @var{the lyrics} @}
+@end example
+
+to a melody. Here is an example,
+
+@lilypond[raggedright]
+ \relative { \time 3/4 c2 e4 g2. }
+ \newlyrics { play the game }
+@end lilypond
+
+More stanzas can be added by adding more
+@code{\newlyrics} sections
+
+@lilypond[raggedright]
+ \relative { \time 3/4 c2 e4 g2. }
+ \newlyrics { play the game }
+ \newlyrics { speel het spel }
+ \newlyrics { joue le jeu }
+@end lilypond
+
+The @code{\newlyrics} keyword has three functions: it interprets the
+following words as texts instead of notes, it sets up a context for
+printing texts (the @code{Lyrics} context), and it couples the melody
+with the lyrics, so that the durations of both are aligned.
+
+These three functions can be controlled separately, and that is what
+the following sections are about.
@menu
+* Easy lyrics entry
* Entering lyrics::
* The Lyrics context::
* More stanzas::
@cindex punctuation
Lyrics are entered in a special input mode. This mode is is introduced
-by the keyword @code{\lyrics}. In this mode you can enter lyrics, with
-punctuation and accents without any hassle. Syllables are entered like
-notes, but with pitches replaced by text. For example,
+by the keyword @code{\lyrics}. In this mode you can enter lyrics,
+with punctuation and accents without any hassle. Syllables are
+entered like notes, but with pitches replaced by text. For example,
@example
\lyrics @{ Twin-4 kle4 twin- kle litt- le star2 @}
@end example
Any @code{_} character which appears in an unquoted word is converted
to a space. This provides a mechanism for introducing spaces into words
without using quotes. Quoted words can also be used in Lyrics mode to
-specify words that cannot be written with the above rules
+specify words that cannot be written with the above rules. The
+following example incorporates double quotes
@example
\lyrics @{ He said: "\"Let" my peo ple "go\"" @}
@end example
-However, at least for english texts, you should use
+
+This example is slightly academic, since it gives better looking
+results to use matched single quotes, @code{``} and @code{''}
@example
\lyrics @{ He said: ``Let my peo ple go'' @}
@end example
-to get the correct shape of the starting and ending quote.
@cindex hyphens
* Printing lyrics::
* A lead sheet::
* Listening to output::
-* Titling::
+* Adding titles::
* Single staff polyphony::
* Piano staves::
* Organizing larger pieces::
@lilypond[quote,notime,fragment,verbatim]
\relative {
- c'' f c g c
+ c' f c g c
}
@end lilypond
@cindex paper block
-@node Titling
-@section Titling
+@node Adding titles
+@section Adding titles
Bibliographic information is entered in a separate block, the
@code{\header} block. The name of the piece, its composer, etc., are
\version "2.2.0"
\header {
- texidoc = "Stress optimal page breaking. This should look nice on 4 a6 pages."
+
+texidoc = "Stress optimal page breaking. This should look
+ nice on 4 a6 pages. "
+
+
copyright = "Copyright by /me"
title = "Title"
}
| RELATIVE Composite_music {
Music *m = $2;
- /* FIXME: why is octave==0 and default not middleC? */
- Pitch middle_c (-1, 0, 0);
+
+ Pitch middle_c (0, 0, 0);
$$ = make_music_relative (middle_c, m);
scm_gc_unprotect_object (m->self_scm ());
}
set -ex
+if [ -d $HOME/usr/pkg/libffi/ ] ; then
+ export LDFLAGS=-L$HOME/usr/pkg/libffi/lib/
+ export CPPFLAGS=-I$HOME/usr/pkg/libffi/include
+fi
+
+export AUTOMAKE=automake-1.8
+export AUTOCONF=autoconf2.50
+
rm -rf test
mkdir test
cd test
cd g-wrap
rm -rf $HOME/usr/pkg/g-wrap
-AUTOMAKE=automake-1.8 AUTOCONF=autoconf2.50 sh autogen.sh --noconfigure
+sh autogen.sh --noconfigure
mkdir =build
cd =build
../configure --prefix=$HOME/usr/pkg/g-wrap
## tla get janneke@gnu.org--2004-gnome/defs--janneke defs
rm -rf $HOME/usr/pkg/guile-gnome
-AUTOMAKE=automake-1.8 AUTOCONF=autoconf2.50 sh autogen.sh --noconfigure
+sh autogen.sh --noconfigure
mkdir ../=build
cd ../=build
../src/configure --prefix=$HOME/usr/pkg/guile-gnome
+
+# requires 800mb RAM with -O2
+(cd libgnomecanvas/gnome/gw; perl -i~ -pe 's/-O2//g' Makefile)
+
G_WRAP_MODULE_DIR=$HOME/usr/pkg/g-wrap/share/guile/site make install
export GUILE_LOAD_PATH=$HOME/usr/pkg/guile-gnome/share/guile:$GUILE_LOAD_PATH