From: Graham Percival Date: Tue, 30 Oct 2007 20:43:31 +0000 (-0700) Subject: Misc LM updates. X-Git-Tag: release/2.11.35-1~46^2~7 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=05c881946117bffe482594501e8fcb1b9fdcd498;p=lilypond.git Misc LM updates. --- diff --git a/Documentation/user/fundamental.itely b/Documentation/user/fundamental.itely index c086b6227f..2fecc2a24b 100644 --- a/Documentation/user/fundamental.itely +++ b/Documentation/user/fundamental.itely @@ -8,6 +8,8 @@ * How LilyPond files work:: * Voices contain music:: * TODO new sec fundamental:: +* Extending the templates:: +* Scores and parts:: @end menu @@ -538,5 +540,331 @@ TODO: improve this example TODO... add more info? Fluff up the first sentence? +@node Extending the templates +@section Extending the templates + +You've read the tutorial, you know how to write music. But how can you +get the staves that you want? The templates are ok, but what if you +want something that isn't covered? + +@menu +* Soprano and cello:: +* TODO another example of extending templates:: +@end menu + +@node Soprano and cello +@unnumberedsubsec Soprano and cello + +Start off with the template that seems closest to what you want to end +up with. Let's say that you want to write something for soprano and +cello. In this case, we would start with @q{Notes and lyrics} (for the +soprano part). + +@example +\version "2.11.23" +melody = \relative c' @{ + \clef treble + \key c \major + \time 4/4 + + a4 b c d +@} + +text = \lyricmode @{ + Aaa Bee Cee Dee +@} + +\score@{ + << + \new Voice = "one" @{ + \autoBeamOff + \melody + @} + \new Lyrics \lyricsto "one" \text + >> + \layout @{ @} + \midi @{ @} +@} +@end example + +Now we want to add a cello part. Let's look at the @q{Notes only} example: + +@example +\version "2.11.23" +melody = \relative c' @{ + \clef treble + \key c \major + \time 4/4 + + a4 b c d +@} + +\score @{ +\new Staff \melody +\layout @{ @} +\midi @{ @} +@} +@end example + +We don't need two @code{\version} commands. We'll need the @code{melody} +section. We don't want two @code{\score} sections -- if we had two +@code{\score}s, we'd get the two parts separately. We want them together, +as a duet. Within the @code{\score} section, we don't need two +@code{\layout} or @code{\midi}. + +If we simply cut and paste the @code{melody} section, we would end up with +two @code{melody} sections. So let's rename them. We'll call the section +for the soprano @code{sopranoMusic} and the section for the cello +@code{celloMusic}. While we're doing this, let's rename @code{text} +to be @code{sopranoLyrics}. Remember to rename both instances of all +these names -- both the initial definition (the +@code{melody = relative c' @{ } part) and the name's use (in the +@code{\score} section). + +While we're doing this, let's change the cello part's staff -- celli +normally use bass clef. We'll also give the cello some different +notes. + +@example +\version "2.11.23" +sopranoMusic = \relative c' @{ + \clef treble + \key c \major + \time 4/4 + + a4 b c d +@} + +sopranoLyrics = \lyricmode @{ + Aaa Bee Cee Dee +@} + +celloMusic = \relative c @{ + \clef bass + \key c \major + \time 4/4 + + d4 g fis8 e d4 +@} + +\score@{ + << + \new Voice = "one" @{ + \autoBeamOff + \sopranoMusic + @} + \new Lyrics \lyricsto "one" \sopranoLyrics + >> + \layout @{ @} + \midi @{ @} +@} +@end example + +This is looking promising, but the cello part won't appear in the +score -- we haven't used it in the @code{\score} section. If we +want the cello part to appear under the soprano part, we need to add + +@example +\new Staff \celloMusic +@end example + +@noindent +underneath the soprano stuff. We also need to add @code{<<} and +@code{>>} around the music -- that tells LilyPond that there's +more than one thing (in this case, @code{Staff}) happening at once. The +@code{\score} looks like this now + +@example +\score@{ + << + << + \new Voice = "one" @{ + \autoBeamOff + \sopranoMusic + @} + \new Lyrics \lyricsto "one" \sopranoLyrics + >> + \new Staff \celloMusic + >> + \layout @{ @} + \midi @{ @} +@} +@end example + +@noindent +This looks a bit messy; the indentation is messed up now. That is +easily fixed. Here's the complete soprano and cello template. + +@lilypond[quote,verbatim,ragged-right] +\version "2.11.23" +sopranoMusic = \relative c' { + \clef treble + \key c \major + \time 4/4 + + a4 b c d +} + +sopranoLyrics = \lyricmode { + Aaa Bee Cee Dee +} + +celloMusic = \relative c { + \clef bass + \key c \major + \time 4/4 + + d4 g fis8 e d4 +} + +\score{ + << + << + \new Voice = "one" { + \autoBeamOff + \sopranoMusic + } + \new Lyrics \lyricsto "one" \sopranoLyrics + >> + \new Staff \celloMusic + >> + \layout { } + \midi { } +} +@end lilypond + + +@node TODO another example of extending templates +@unnumberedsubsec TODO another example of extending templates + +TODO: somebody else fill this in. You guys like vocal stuff, +right? Get to it. :) -gp + + + +@node Scores and parts +@section Scores and parts + +TODO: this is really old stuff from the really old tutorial. +Rewrite, fix, etc. -gp + +In orchestral music, all notes are printed twice. Once in a part for +the musicians, and once in a full score for the conductor. Variables can +be used to avoid double work. The music is entered once, and stored in +a variable. The contents of that variable is then used to generate +both the part and the full score. + +It is convenient to define the notes in a special file. For example, +suppose that the file @file{horn-music.ly} contains the following part +of a horn/@/bassoon duo + +@example +hornNotes = \relative c @{ + \time 2/4 + r4 f8 a cis4 f e d +@} +@end example + +@noindent +Then, an individual part is made by putting the following in a file + +@example +\include "horn-music.ly" +\header @{ + instrument = "Horn in F" +@} + +@{ + \transpose f c' \hornNotes +@} +@end example + +The line + +@example +\include "horn-music.ly" +@end example + +@noindent +substitutes the contents of @file{horn-music.ly} at this position in +the file, so @code{hornNotes} is defined afterwards. The command +@code{\transpose f@tie{}c'} indicates that the argument, being +@code{\hornNotes}, should be transposed by a fifth upwards. Sounding +@samp{f} is denoted by notated @code{c'}, which corresponds with the +tuning of a normal French Horn in@tie{}F. The transposition can be seen +in the following output + +@lilypond[quote,ragged-right] +\transpose f c' \relative c { + \time 2/4 + r4 f8 a cis4 f e d +} +@end lilypond + +In ensemble pieces, one of the voices often does not play for many +measures. This is denoted by a special rest, the multi-measure +rest. It is entered with a capital @samp{R} followed by a duration +(@code{1}@tie{}for a whole note, @code{2}@tie{}for a half note, +etc.). By multiplying the +duration, longer rests can be constructed. For example, this rest +takes 3@tie{}measures in 2/4 time + +@example +R2*3 +@end example + +When printing the part, multi-rests +must be condensed. This is done by setting a run-time variable + +@example +\set Score.skipBars = ##t +@end example + +@noindent +This command sets the property @code{skipBars} in the +@code{Score} context to true (@code{##t}). Prepending the rest and +this option to the music above, leads to the following result + +@lilypond[quote,ragged-right] +\transpose f c' \relative c { + \time 2/4 + \set Score.skipBars = ##t + R2*3 + r4 f8 a cis4 f e d +} +@end lilypond + + +The score is made by combining all of the music together. Assuming +that the other voice is in @code{bassoonNotes} in the file +@file{bassoon-music.ly}, a score is made with + +@example +\include "bassoon-music.ly" +\include "horn-music.ly" + +<< + \new Staff \hornNotes + \new Staff \bassoonNotes +>> +@end example + +@noindent +leading to + +@lilypond[quote,ragged-right] +\relative c << + \new Staff { + \time 2/4 R2*3 + r4 f8 a cis4 f e d + } + \new Staff { + \clef bass + r4 d,8 f | gis4 c | b bes | + a8 e f4 | g d | gis f + } +>> +@end lilypond + diff --git a/Documentation/user/introduction.itely b/Documentation/user/introduction.itely index 2005ab9bbf..97bf001134 100644 --- a/Documentation/user/introduction.itely +++ b/Documentation/user/introduction.itely @@ -715,10 +715,10 @@ The gives a gentle introduction to typesetting music. First time users should start here. -@item -@emph{@ref{Putting it all together}}, -explains some general concepts about the lilypond file format. If -you are not certain where to place a command, read this chapter! +@c @item +@c @emph{@ref{Putting it all together}}, +@c explains some general concepts about the lilypond file format. If +@c you are not certain where to place a command, read this chapter! @item @emph{@ref{Working on LilyPond projects}}, diff --git a/Documentation/user/lilypond-learning.tely b/Documentation/user/lilypond-learning.tely index ffd2e42149..c1e811970a 100644 --- a/Documentation/user/lilypond-learning.tely +++ b/Documentation/user/lilypond-learning.tely @@ -130,7 +130,8 @@ of this and other documentation. * Preface:: Preface. * Introduction:: What, Why, How. * Tutorial:: A tutorial introduction. -* Putting it all together:: More explanation about LilyPond concepts. +* Fundamental concepts:: Basic concepts required for reading +the rest of this manual. * Tweaking output:: Introduction to modifying output. * Working on LilyPond projects:: Discusses real-life usage. @@ -152,7 +153,6 @@ Appendices @include introduction.itely @include tutorial.itely @include fundamental.itely -@include putting.itely @include tweaks.itely @include working.itely diff --git a/Documentation/user/putting.itely b/Documentation/user/putting.itely deleted file mode 100644 index 6ed4cebd04..0000000000 --- a/Documentation/user/putting.itely +++ /dev/null @@ -1,349 +0,0 @@ -@c -*- coding: utf-8; mode: texinfo; -*- -@c This file is part of lilypond-learning.tely -@ignore - Translation of GIT committish: FILL-IN-HEAD-COMMITTISH - - When revising a translation, copy the HEAD committish of the - version that you are working on. See TRANSLATION for details. -@end ignore - -@node Putting it all together -@chapter Putting it all together - -This chapter discusses general LilyPond concepts and how to -create @code{\score} blocks. - - -@menu -* Extending the templates:: -* Scores and parts:: -@end menu - - -@node Extending the templates -@section Extending the templates - -You've read the tutorial, you know how to write music. But how can you -get the staves that you want? The templates are ok, but what if you -want something that isn't covered? - -@menu -* Soprano and cello:: -* TODO another example of extending templates:: -@end menu - -@node Soprano and cello -@unnumberedsubsec Soprano and cello - -Start off with the template that seems closest to what you want to end -up with. Let's say that you want to write something for soprano and -cello. In this case, we would start with @q{Notes and lyrics} (for the -soprano part). - -@example -\version "2.11.23" -melody = \relative c' @{ - \clef treble - \key c \major - \time 4/4 - - a4 b c d -@} - -text = \lyricmode @{ - Aaa Bee Cee Dee -@} - -\score@{ - << - \new Voice = "one" @{ - \autoBeamOff - \melody - @} - \new Lyrics \lyricsto "one" \text - >> - \layout @{ @} - \midi @{ @} -@} -@end example - -Now we want to add a cello part. Let's look at the @q{Notes only} example: - -@example -\version "2.11.23" -melody = \relative c' @{ - \clef treble - \key c \major - \time 4/4 - - a4 b c d -@} - -\score @{ -\new Staff \melody -\layout @{ @} -\midi @{ @} -@} -@end example - -We don't need two @code{\version} commands. We'll need the @code{melody} -section. We don't want two @code{\score} sections -- if we had two -@code{\score}s, we'd get the two parts separately. We want them together, -as a duet. Within the @code{\score} section, we don't need two -@code{\layout} or @code{\midi}. - -If we simply cut and paste the @code{melody} section, we would end up with -two @code{melody} sections. So let's rename them. We'll call the section -for the soprano @code{sopranoMusic} and the section for the cello -@code{celloMusic}. While we're doing this, let's rename @code{text} -to be @code{sopranoLyrics}. Remember to rename both instances of all -these names -- both the initial definition (the -@code{melody = relative c' @{ } part) and the name's use (in the -@code{\score} section). - -While we're doing this, let's change the cello part's staff -- celli -normally use bass clef. We'll also give the cello some different -notes. - -@example -\version "2.11.23" -sopranoMusic = \relative c' @{ - \clef treble - \key c \major - \time 4/4 - - a4 b c d -@} - -sopranoLyrics = \lyricmode @{ - Aaa Bee Cee Dee -@} - -celloMusic = \relative c @{ - \clef bass - \key c \major - \time 4/4 - - d4 g fis8 e d4 -@} - -\score@{ - << - \new Voice = "one" @{ - \autoBeamOff - \sopranoMusic - @} - \new Lyrics \lyricsto "one" \sopranoLyrics - >> - \layout @{ @} - \midi @{ @} -@} -@end example - -This is looking promising, but the cello part won't appear in the -score -- we haven't used it in the @code{\score} section. If we -want the cello part to appear under the soprano part, we need to add - -@example -\new Staff \celloMusic -@end example - -@noindent -underneath the soprano stuff. We also need to add @code{<<} and -@code{>>} around the music -- that tells LilyPond that there's -more than one thing (in this case, @code{Staff}) happening at once. The -@code{\score} looks like this now - -@example -\score@{ - << - << - \new Voice = "one" @{ - \autoBeamOff - \sopranoMusic - @} - \new Lyrics \lyricsto "one" \sopranoLyrics - >> - \new Staff \celloMusic - >> - \layout @{ @} - \midi @{ @} -@} -@end example - -@noindent -This looks a bit messy; the indentation is messed up now. That is -easily fixed. Here's the complete soprano and cello template. - -@lilypond[quote,verbatim,ragged-right] -\version "2.11.23" -sopranoMusic = \relative c' { - \clef treble - \key c \major - \time 4/4 - - a4 b c d -} - -sopranoLyrics = \lyricmode { - Aaa Bee Cee Dee -} - -celloMusic = \relative c { - \clef bass - \key c \major - \time 4/4 - - d4 g fis8 e d4 -} - -\score{ - << - << - \new Voice = "one" { - \autoBeamOff - \sopranoMusic - } - \new Lyrics \lyricsto "one" \sopranoLyrics - >> - \new Staff \celloMusic - >> - \layout { } - \midi { } -} -@end lilypond - - -@node TODO another example of extending templates -@unnumberedsubsec TODO another example of extending templates - -TODO: somebody else fill this in. You guys like vocal stuff, -right? Get to it. :) -gp - - - -@node Scores and parts -@section Scores and parts - -TODO: this is really old stuff from the really old tutorial. -Rewrite, fix, etc. -gp - -In orchestral music, all notes are printed twice. Once in a part for -the musicians, and once in a full score for the conductor. Variables can -be used to avoid double work. The music is entered once, and stored in -a variable. The contents of that variable is then used to generate -both the part and the full score. - -It is convenient to define the notes in a special file. For example, -suppose that the file @file{horn-music.ly} contains the following part -of a horn/@/bassoon duo - -@example -hornNotes = \relative c @{ - \time 2/4 - r4 f8 a cis4 f e d -@} -@end example - -@noindent -Then, an individual part is made by putting the following in a file - -@example -\include "horn-music.ly" -\header @{ - instrument = "Horn in F" -@} - -@{ - \transpose f c' \hornNotes -@} -@end example - -The line - -@example -\include "horn-music.ly" -@end example - -@noindent -substitutes the contents of @file{horn-music.ly} at this position in -the file, so @code{hornNotes} is defined afterwards. The command -@code{\transpose f@tie{}c'} indicates that the argument, being -@code{\hornNotes}, should be transposed by a fifth upwards. Sounding -@samp{f} is denoted by notated @code{c'}, which corresponds with the -tuning of a normal French Horn in@tie{}F. The transposition can be seen -in the following output - -@lilypond[quote,ragged-right] -\transpose f c' \relative c { - \time 2/4 - r4 f8 a cis4 f e d -} -@end lilypond - -In ensemble pieces, one of the voices often does not play for many -measures. This is denoted by a special rest, the multi-measure -rest. It is entered with a capital @samp{R} followed by a duration -(@code{1}@tie{}for a whole note, @code{2}@tie{}for a half note, -etc.). By multiplying the -duration, longer rests can be constructed. For example, this rest -takes 3@tie{}measures in 2/4 time - -@example -R2*3 -@end example - -When printing the part, multi-rests -must be condensed. This is done by setting a run-time variable - -@example -\set Score.skipBars = ##t -@end example - -@noindent -This command sets the property @code{skipBars} in the -@code{Score} context to true (@code{##t}). Prepending the rest and -this option to the music above, leads to the following result - -@lilypond[quote,ragged-right] -\transpose f c' \relative c { - \time 2/4 - \set Score.skipBars = ##t - R2*3 - r4 f8 a cis4 f e d -} -@end lilypond - - -The score is made by combining all of the music together. Assuming -that the other voice is in @code{bassoonNotes} in the file -@file{bassoon-music.ly}, a score is made with - -@example -\include "bassoon-music.ly" -\include "horn-music.ly" - -<< - \new Staff \hornNotes - \new Staff \bassoonNotes ->> -@end example - -@noindent -leading to - -@lilypond[quote,ragged-right] -\relative c << - \new Staff { - \time 2/4 R2*3 - r4 f8 a cis4 f e d - } - \new Staff { - \clef bass - r4 d,8 f | gis4 c | b bes | - a8 e f4 | g d | gis f - } ->> -@end lilypond - - diff --git a/Documentation/user/tweaks.itely b/Documentation/user/tweaks.itely index fc51023e7d..bc7efc796a 100644 --- a/Documentation/user/tweaks.itely +++ b/Documentation/user/tweaks.itely @@ -432,6 +432,7 @@ Alter the horizontal spacing via @code{SpacingSpanner}. See * Default files:: * Advanced tweaks with Scheme:: * Avoiding tweaks with slower processing:: +* The three methods of tweaking:: @end menu @node Default files @@ -554,5 +555,27 @@ In some cases (see issue 246), this must be done before @end verbatim +@node The three methods of tweaking +@subsection The three methods of tweaking + +TODO write this. + +@verbatim +\override +@end verbatim + +@verbatim +\with { + +} +@end verbatim + +@verbatim +\layout{ \context + +}} +@end verbatim + +