From 87c2353455b4420ce400bc9e4e0249b85a9480e7 Mon Sep 17 00:00:00 2001 From: hanwen Date: Sat, 31 Aug 2002 11:07:16 +0000 Subject: [PATCH] 2002-08-31 Graham Percival * Documentation/user/tutorial.itely: editorial changes (spelling, grammar, etc) of the orchestral score, integrating text + music, and the end of tutorial. --- ChangeLog | 8 ++ Documentation/user/tutorial.itely | 214 ++++++++++++++++++++------------------ THANKS | 4 + 3 files changed, 123 insertions(+), 103 deletions(-) diff --git a/ChangeLog b/ChangeLog index 62fd7b49a3..8308cdb37f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2002-08-31 Graham Percival + + * Documentation/user/tutorial.itely: editorial changes + (spelling, grammar, etc) of the orchestral score, integrating text + + music, and the end of tutorial. + 2002-08-31 Rune Zedeler * input/test/sondag-morgen/*.ly: 1.6 compatibility knee fixes @@ -7,6 +13,8 @@ 2002-08-31 Han-Wen Nienhuys + * VERSION: 1.6.1 released + * lily/kpath.cc: * lily/lily-guile.cc: macosx fixes. diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index 3d56067d32..52cc3c33f3 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -2146,7 +2146,7 @@ definition of @code{\stemUp}: @c this is a long section, and adding an extra space here helps to @c break it into smaller subsections and thus is easier to understand. -@* +@separate Next we want to move the fingering `3'. In the printed edition it is not above the stem, but a little lower and slightly left of the @@ -2210,7 +2210,7 @@ undo the setting. The technical term is to revert the grob property. @cindex translator properties @cindex grob properties @cindex music properties -@* +@separate There are three different types of variables in LilyPond, something which can be confusing at first (and for some people it stays confusing @@ -2233,8 +2233,7 @@ Lilypond tries to put fingering instructions as close to the notes as possible. To make sure that Lilypond doesn't do that, we disguise the fingering as text: @code{(finger "5")}. -@* -@* +@separate Normally one would specify all dynamics in the same voice, so that dynamics (such as @b{f} and @b{p}) will be aligned with hairpins. But @@ -2283,8 +2282,7 @@ commands act like parentheses: you should carefully balance the use of @code{\override} and @code{\revert}. The @code{\set} command is more friendly: it first does a @code{\revert} followed by @code{\override}. -@* -@* +@separate Brahms uses music notation is a slightly unorthodox way. Ties usually happen only within one voice. In this piece, the composer @@ -2301,8 +2299,7 @@ snippet of code. Finally, the last tie is forced up using @code{\tieUp}. -@* -@* +@separate Here's the complete ``fine tuned'' version, which includes all the modifications we discussed in this section: @@ -2319,23 +2316,25 @@ modifications we discussed in this section: @end menu -Our last two examples show a way to setup the music for an orchestral -score. When typesetting a piece for several instruments, you'll want to -create a conductor's full score, alongside several individual parts. +Our next two examples demonstrate one way to create an orchestral score +in LilyPond. When typesetting a piece for several instruments, you'll +want to create a full score (for the conductor) along with several +individual parts (for the players). LilyPond is well suited for this task. We will declare the music for each instrument individually, giving the music of each instrument its own name. These pieces of music are then combined in different -@code{\score} blocks to produce different combinations of the score. +@code{\score} blocks to produce different combinations of instruments +(for example, one @code{\score} block may only include the cello part; +another @code{\score} block may be for all the strings, and yet another +@code{\score} block may be for all parts together). This orchestral score example consists of three input files. In the first file, @file{os-music.ly}, we define the music for all -instruments. This file will be used both for producing the score and -the separate parts. Other files reference this file by doing -@code{\include "os-music.ly"}. - -If you were to run LilyPond on this file, no printable output would be -produced. +instruments. This file will be used for producing the score and +the separate parts, but the file doesn't produce any sheet music +itself. Other files reference this file by doing @code{\include +"os-music.ly"}. @example % os-music.ly @@ -2374,36 +2373,38 @@ corno = \notes\relative c' @{ @} @end example -We will not go through the input line by line, but only indicate and -explain the new elements. +We will not examine this example line by line, since you already know +most of it. We'll examine a few lines which contain new elements. @separate @example global = @{ \time 2/4 - \skip 2*4 \bar "|."; + \skip 2*4 \bar "|." @} @end example Declare setting to be used globally. The @code{\skip} command produces no output, but moves forward in time: in this case, the duration of a half note (@code{2}), and that four times (@code{*4}). This brings us -to the end of the piece, and we can set the end bar. +to the end of the piece, and we can set the end bar. You can use @code{s} +as a shortcut for @code{\skip} (the last line of this section would +be @code{s2*4 \bar"|."}). @separate @example Key = \notes \key as \major @end example Declare the key signature of the piece and assign it to the identifier -@var{Key}. Later on, we'll use @code{\Key} for all staves except those +@var{Key}. Later on we'll use @code{\Key} for all staves except those for transposing instruments. @node The full score @subsection The full score -The second file, @file{input/tutorial/os-score.ly} reads the definitions of the first +The second file, @file{input/tutorial/os-score.ly}, reads the definitions of the first (@file{input/tutorial/os-music.ly}), and defines the @code{\score} block for the full conductor's score. @@ -2493,7 +2494,7 @@ Opus 1. @example \include "os-music.ly" @end example -First, we need to include the music definitions we made in +First we need to include the music definitions we made in @file{os-music.ly}. @separate @@ -2502,16 +2503,14 @@ First, we need to include the music definitions we made in @end example This piece of Scheme code executes the function -@code{set-point-and-click!}, with the argument @code{line-column}, a -symbol). - -Editing input files can be complicated if you're working with large -files: if you're digitizing existing music, you have to synchronize -the .ly file, the sheet music on your lap and the sheet music on the -screen. The point-and-click mechanism makes it easy to find the -origin of an error in the LY file: when you view the file with Xdvi -and click on a note, your editor will jump to the spot where that note -was entered. For more information, see @ref{Point and click}. +@code{set-point-and-click!} with the argument +@code{line-column}. Editing input files can be complicated if you're +working with large files: if you're digitizing existing music, you have +to synchronize the .ly file, the sheet music on your lap and the sheet +music on the screen. The point-and-click mechanism makes it easy to +find the origin of an error in the LY file: when you view the file with +Xdvi and click on a note, your editor will jump to the spot where that +note was entered. For more information, see @ref{Point and click}. @separate @@ -2520,8 +2519,8 @@ was entered. For more information, see @ref{Point and click}. (music "accidentals--1"))) @end example -When naming the tuning of the french horn, we'll need a piece of text -with a flat sign. LilyPond has a mechanism for font selection and +To name the transposition of the french horn, we will need a piece of +text with a flat sign. LilyPond has a mechanism for font selection and kerning called Scheme markup text (See @ref{Text markup}). The flat sign is taken from the music font, and its name is @code{accidentals--1} (The natural sign is called @code{accidentals-0}). The default font is @@ -2532,30 +2531,33 @@ too big for text, so we select a relative size of @code{-2}. < \global @end example -Of course, all staves are simultaneous and use the same global settings. +All staves are simultaneous and use the same global settings. @separate @example \property Score.BarNumber \override #'padding = #3 @end example LilyPond prints bar numbers at the start of each line, but -unfortunately, they end up a bit too close to the staff in this -example. A bar number internally is a Grob called @var{BarNumber}. +unfortunately they end up a bit too close to the staff in this +example. In LilyPond, a bar number is a Grob called @var{BarNumber}. BarNumber Grobs can be manipulated through their @var{side-position-interface}. One of the properties of a -@var{side-position-interface} that can be tweaked is the -@var{padding}: the amount of extra space that is put between this Grob +@var{side-position-interface} that can be tweaked is @var{padding}: +the amount of extra space that is put between this Grob and other Grobs. We set the padding to three staff spaces. You can find information on all these kind of properties in LilyPond's automatically generated documentation in @ifnottex -@ref{ (lilypond-internals)lilypond-internals, LilyPond Internals}. +@ref{ (lilypond-internals)lilypond-internals, LilyPond Internals} +or in @ref{Fine tuning a piece}. @end ifnottex @iftex -the online documentation. +the online documentation or in the previous section of the tutorial. @end iftex +@c REFERENCE MAO + @separate @example \context StaffGroup = woodwind < @@ -2563,9 +2565,9 @@ the online documentation. @end example A new notation context: the @code{StaffGroup}. @code{StaffGroup} can hold one or more @code{Staff}'s, and will print a big bracket at the -left of the score. Start a new staff group for the woodwind section -(just the flutes in this case). Immediately after that, we start the -staff for the two flutes, that also play simultaneously. +left of the score. This starts a new staff group for the woodwind +section (just the flutes in this case). Immediately after that, we +start the staff for the two flutes, who also play simultaneously. @separate @example @@ -2579,9 +2581,9 @@ names}). \property Staff.instrument = "2 Flauti" \property Staff.instr = "Fl." @end example -And define the instrument names to be printed in the margin, -@code{instrument} for the first line of the score, @code{instr} for the -rest of the score. +This defines the instrument names to be printed in the +margin. @code{instrument} specifies the name for the first line +of the score, @code{instr} is used for the rest of the score. @separate @example @@ -2596,7 +2598,7 @@ The flutes play in the default key. @end example Last come the actual flute parts. Remember that we're still in simultaneous mode. We name both voices differently, so that LilyPond -will actually create two Voice contexts. The flute parts are simple, so +will create two Voice contexts. The flute parts are simple, so we specify manually which voice is which: @code{\voiceOne} forces the direction of stems, beams, slurs and ties up, @code{\voiceTwo} sets directions down. @@ -2612,7 +2614,7 @@ Close the flutes staff and woodwind staff group. @example \property Staff.instrument = #'(lines "Timpani" "(C-G)") @end example -The timpani staff only shows a new piece of scheme markup, it sets two +The timpani staff demonstrates a new piece of scheme markup, it sets two lines of text. @separate @@ -2622,8 +2624,8 @@ lines of text. \context Thread=two \tromboII @end example You have seen the notation contexts Staff and Voice, but here's a new -one: Thread. One or more Threads can be part of a Voice. The Thread -takes care of note heads and rests, the Voice combine note heads onto a +one: Thread. One or more Threads can be part of a Voice. Thread +takes care of note heads and rests; Voice combine note heads onto a stem. For the trumpets we use the automatic part combiner (see @ref{Automatic @@ -2638,12 +2640,12 @@ when they're different. \property Staff.instrument = #`(lines "Corno" (columns "(E" ,text-flat ")")) @end example -The french horn has the most complex scheme markup name, made up of two -lines of text. The second line has three elements (columns), the @code{(E}, -the flat sign @code{text-flat} that we defined before and a final @code{")"}. -Note that we use a backquote instead of an ordinary quote at the -beginning of the Scheme expression to be able to access the -@code{text-flat} identifier, `unquoting' it with a @code{,}. +The french horn (``Corno'') has the most complex scheme markup name, made +up of two lines of text. The second line has three elements (columns) -- +the @code{(E}, the flat sign @code{text-flat} that we defined previously, +and a final @code{")"}. Note that we use a backquote instead of an +ordinary quote at the beginning of the Scheme expression to be able to +access the @code{text-flat} identifier, `unquoting' it with a ``@code{,}''. @separate @example @@ -2652,15 +2654,15 @@ beginning of the Scheme expression to be able to access the The french horn is to be tuned in E-flat, so we tell the MIDI back-end to transpose this staff by three steps. -Note how we can choose different tuning for entering, printing and -playing, using @code{\transpose} and the MIDI Staff property -@var{transposing}. +Note how we can choose different tunings for the text input, sheet music +output and, and MIDI output, using @code{\transpose} and the MIDI Staff +property @var{transposing}. @separate @example \notes \key bes \major @end example -Therefore, it has a different key. +Since the horn is transposing, it's in a different key. @separate @example @@ -2672,8 +2674,8 @@ tutorial. @separate -Usually, LilyPond's predefined setup of notation contexts (Thread, -Voice, Staff, Staffgroup, Score) is just fine. But in this case, we +Usually LilyPond's default setup of notation contexts (Thread, +Voice, Staff, Staffgroup, Score) is just fine. But in this case we want a different type of Staff context. @example @@ -2682,10 +2684,13 @@ want a different type of Staff context. @} @end example -In orchestral scores, it often happens that one instrument has only -rests during one line of the score. The @code{HaraKiriStaffContext} can +In orchestral scores it often happens that one instrument only has +rests during one line of the score. @code{HaraKiriStaffContext} can be used as a regular @code{StaffContext} drop-in and will take care of -the automatic removing of empty staves. +the automatic removing of empty staves -- so if the strings are the +only instruments playing for a line, LilyPond will only print the string +parts for that line of the score. This reduces the number of page turns +(and the number of dead trees!) required in a score. @node Extracting an individual part @subsection Extracting an individual part @@ -2734,8 +2739,9 @@ Opus 1. Because we separated the music definitions from the @code{\score} instantiations, we can easily define a second score with the music of -the second flute. This then is the part for the second flute player. -Of course, we make separate parts for all individual instruments. +the second flute. This is the part for the second flute player. Of +course, we would make separate parts for all individual instruments if +we were preparing the score for an orchestra. @separate @example @@ -2758,9 +2764,9 @@ but we need to set the instrument for this particular score. \property Score.skipBars = ##t @end example In the conductor's full score, all bars with rests are printed, but for -the individual parts, we want to contract pieces of consecutive empty -bars. LilyPond will do this if Score's @var{skipBars} property to -true. +the individual parts, we want to print one multimeasure rest instead of +many consecutive empty bars. LilyPond will do this if +@code{Score.skipBars} is set to true (@code{##t}). @node Integrating text and music @@ -2771,18 +2777,18 @@ true. @cindex HTML, music in @cindex Texinfo, music in -Sometimes, you might want to use music examples in a text that you are -writing. For example, if you are writing a musicological treatise, a -songbook, or (like us) the LilyPond manual. You can make such texts by -hand, simply by importing a PostScript figure into your word processor. -However, there is a also an automated procedure: - -If you use HTML, La@TeX{} or texinfo, you can mix text and LilyPond -code. A script called @code{lilypond-book} will extract the music -fragments, run LilyPond on them, and put back the resulting notation. -This utility program is described fully in the chapter -@ref{Integrating text and music with lilypond-book}. Here we show a -small example. Since the example also contains explanatory text, we +Sometimes you might want to use music examples in a text that you are +writing (for example a musicological treatise, a songbook, or (like us) +the LilyPond manual). You can make such texts by hand, simply by +importing a PostScript figure into your word processor. However, +there is an automated procedure to reduce the amount of work. + +If you use HTML, La@TeX{}, or texinfo, you can mix text and LilyPond +code. A script called @code{lilypond-book} will extract the music +fragments, run LilyPond on them, and put back the resulting +notation. This program is fully described in the chapter +@ref{Integrating text and music with lilypond-book}. Here we show a +small example. Since the example also contains explanatory text, we won't comment on the contents. @example @@ -2806,7 +2812,7 @@ If you have no \verb+\score+ block in the fragment, c'4 \end@{lilypond@} -In the example you see here, a number of things happened: a +In the example you see here, two things happened: a \verb+\score+ block was added, and the line width was set to natural length. You can specify many more options using \LaTeX style options in brackets: @@ -2816,14 +2822,16 @@ in brackets: c'4 f bes es \end@{lilypond@} -\texttt@{verbatim@} also shows the LilyPond code, \texttt@{11pt@} selects -the default music size, \texttt@{fragment@} adds a score block, +\texttt@{verbatim@} prints the LilyPond code in addition to the +graphical score, +\texttt@{11pt@} selects the default music size, +\texttt@{fragment@} adds a score block, \texttt@{relative@} uses relative mode for the fragment, and \texttt@{intertext@} specifies what to print between the \texttt@{verbatim@} code and the music. -If you include large examples into the text, it may be more convenient -to put the example in a separate file: +If you want to include large examples into the text, it may be more +convenient to put the example in a separate file: \lilypondfile[printfilename]@{sammartini.ly@} @@ -2835,10 +2843,9 @@ The \texttt@{printfilename@} option adds the file name to the output. Under Unix, you can view the results as follows. @example $ cd input/tutorial -$ mkdir out/ -@var{..may complain that @file{out/} already exists..} +$ mkdir -p out/ $ lilypond-book --outdir=out/ lilbook.tex -lilypond-book (GNU LilyPond) 1.3.146 +lilypond-book (GNU LilyPond) 1.6.1 Reading `input/tutorial/lilbook.tex' Reading `input/tutorial/sammartini.ly' @var{lots of stuff deleted} @@ -2854,7 +2861,7 @@ and running latex creates a lot of temporary files, and you wouldn't want those to clutter up your working directory. Hence, we have them created in a separate subdirectory. -The result more or less looks like this: +The result looks more or less like this: @separate @@ -2900,11 +2907,13 @@ The @code{printfilename} option adds the file name to the output. @node End of tutorial @section End of tutorial -This is the end of the tutorial. If you came up till here, and -have understood everything, then you're now an accomplished lilypond -hacker. From here, you can try fiddling with input -files, coming back to the reference manual for information. -Also don't forget to check out the +This is the end of the tutorial. If you read everything until this point +(and understood everything!) then you're now an accomplished lilypond +hacker. From here you should try fiddling with input files or making your +own input files. Come back to the reference manual for more information +if you get stuck! + +Don't forget to check out the @ifhtml @uref{../../templates/out-www/templates.html,templates}, @uref{../../test/out-www/test.html,example} and @@ -2914,8 +2923,7 @@ snippets. @ifnothtml templates, example and feature test snippets. @end ifnothtml -If you want to see real action lilypond, then head over to +If you want to see real action lilypond then head over to @uref{http://www.mutopiaproject.org}, which has many examples of -classical music typeset by LilyPond. - +classical music typeset with LilyPond. diff --git a/THANKS b/THANKS index ae0177b6c5..9fee96c980 100644 --- a/THANKS +++ b/THANKS @@ -1,2 +1,6 @@ Karl Berry +Graham Percival +Jeremie Lumbroso + + -- 2.11.4.GIT