X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Ftutorial.itely;h=4a03f90ef9159b8e430ad7f29bcf775267d3fb71;hb=969b3b0a27bbdaa721cb6b78a9ce82a9b0300277;hp=2d4a74c530b0c1b8573ad9bfaa37c80b6d5a9754;hpb=6c08722ad9d26f016832a2d6851d8c9addf62de7;p=lilypond.git diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index 2d4a74c530..4a03f90ef9 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -66,8 +66,6 @@ your first sheets of music. * Titling:: * Single staff polyphony:: * Piano staves:: -* Setting variables:: -* Fine tuning layout:: * Organizing larger pieces:: * An orchestral part:: * Integrating text and music:: @@ -1384,212 +1382,6 @@ Here is a full-fledged example: More information on formatting piano music is in @ref{Piano music}. -@node Setting variables -@section Setting variables - -When the music is converted from notes to print it is interpreted -in left-to-right order. This is similar to what happens when we read -music. During this step context-sensitive information such as the -accidentals to print, and where bar lines must be placed, are stored in -variables. These variables are called @emph{context properties}. -The properties can also be manipulated from input files. Consider this input: -@example -\set Staff.autoBeaming = ##f -@end example - -@noindent -It sets the property named @code{autoBeaming} in the current staff at -this point in the music to @code{##f}, which means `false'. This -property controls whether beams are printed automatically: -@c -@lilypond[relative=1,fragment,verbatim] - c8 c c c - \set Staff.autoBeaming = ##f - c8 c c c -@end lilypond - -@noindent -LilyPond includes a built-in programming language, namely, a dialect -of Scheme. The argument to @code{\set}, @code{##f}, is an -expression in that language. The first hash-mark signals that a piece -of Scheme code follows. The second hash character is part of the -boolean value true (@code{#t}). Values of other types may be -entered as follows: -@itemize @bullet -@item a string, enclosed in double quotes, for example, -@example - \set Staff.instrument = #"French Horn" -@end example -@item a boolean: either @code{#t} or @code{#f}, for true and false -respectively, e.g. -@example - \set autoBeaming = ##f - \set Score.skipBars = ##t -@end example - -@item a number, such as -@example - \set Score.currentBarNumber = #20 -@end example - -@item a symbol, which is introduced by a quote character, as in -@example - \set Staff.crescendoSpanner = #'dashed-line -@end example - -@item a pair, which is also introduced by a quote character, like in -the following statements, which set properties to the pairs (-7.5, 6) -and (3, 4) respectively: - -@example - \set Staff.minimumVerticalExtent = #'(-7.5 . 6) - \set Staff.timeSignatureFraction = #'(3 . 4) -@end example - -@item a list, which is also introduced by a quote character. In the -following example, the @code{breakAlignOrder} property is set to a -list of symbols: -@example - \set Score.breakAlignOrder = - #'(left-edge time-signature key-signatures) -@end example - - -@end itemize - -There are many different properties. Not all of them are listed in -this manual. However, the program reference lists them all in the -section @internalsref{Context-properties}, and most properties are -demonstrated in one of the -@ifhtml -@uref{../../../input/test/out-www/collated-files.html,tips-and-tricks} -@end ifhtml -@ifnothtml -tips-and-tricks -@end ifnothtml -examples. - - -@node Fine tuning layout -@section Fine tuning layout - -Sometimes it is necessary to change music layout by hand. When music -is formatted, layout objects are created for each symbol. For -example, every clef and every note head is represented by a layout -object. These layout objects also carry variables, which we call -@emph{layout properties}. By changing these variables from their -values, we can alter the look of a formatted score: - -@lilypond[verbatim,relative] - c4 - \override Stem #'thickness = #3.0 - c4 c4 c4 -@end lilypond - -@noindent -In the example shown here, the layout property @code{thickness} (a -symbol) is set to 3 in the @code{Stem} layout objects of the current -As a result, the notes following @code{\override} have thicker -stems. - -For the most part, a manual override is needed only on a case by -case basis and not for all subsequent instances of the altered -property. To accomplish this, simply prefix @code{\once} to the -@code{\override} statement and the override will apply only once, -immediately reverting to its default setting, i.e. - -@example - \once \override Stem #'thickness = #3.0 -@end example - -@lilypond[relative] - c4 - \once \override Stem #'thickness = #3.0 - c4 c4 c4 -@end lilypond - -@noindent -Some overrides are so common that predefined commands are provided as -a short cut. For example, @code{\slurUp} and @code{\stemDown}. These -commands are described in -@ifhtml -the -@end ifhtml -@ref{Notation manual}, under the sections for slurs and stems -respectively. - -The exact tuning possibilities for each type of layout object are -documented in the program reference of the respective -object. However, many layout objects share properties, which can be -used to apply generic tweaks. We mention a couple of these: - -@itemize @bullet -@item The @code{extra-offset} property, which -@cindex @code{extra-offset} -has a pair of numbers as value, moves around objects in the printout. -The first number controls left-right movement; a positive number will -move the object to the right. The second number controls up-down -movement; a positive number will move it higher. The units of these -offsets are staff-spaces. The @code{extra-offset} property is a -low-level feature: the formatting engine is completely oblivious to -these offsets. - -In the following example, the second fingering is moved a little to -the left, and 1.8 staff space downwards: - -@cindex setting object properties - -@lilypond[relative=1,verbatim] -\stemUp -f-5 -\once \override Fingering - #'extra-offset = #'(-0.3 . -1.8) -f-5 -@end lilypond - -@item -Setting the @code{transparent} property will cause an object to be printed -in `invisible ink': the object is not printed, but all its other -behavior is retained. The object still takes up space, it takes part in -collisions, and slurs, and ties and beams can be attached to it. - -@cindex transparent objects -@cindex removing objects -@cindex invisible objects -The following example demonstrates how to connect different voices -using ties. Normally, ties only connect two notes in the same -voice. By introducing a tie in a different voice, and blanking a stem -in that voice, the tie appears to cross voices: - -@lilypond[fragment,relative=1,verbatim] - c4 << { - \once \override Stem #'transparent = ##t - b8~ b8 - } \\ { - b[ g8] - } >> -@end lilypond - -@item -The @code{padding} property for objects with -@cindex @code{padding} -@code{side-position-interface} can be set to increase distance between -symbols that are printed above or below notes. We only give an -example; a more elaborate explanation is in @ref{Constructing a -tweak}: - -@lilypond[relative=1,verbatim] - c2\fermata - \override Script #'padding = #3 - b2\fermata -@end lilypond - -@end itemize - -More specific overrides are also possible. The notation manual -discusses in depth how to figure out these statements for yourself, in -@ref{Tuning output}. - @node Organizing larger pieces @section Organizing larger pieces @@ -1644,7 +1436,7 @@ places. The following example uses the above variables: @end example More information on the possible uses of identifiers is in the -technical manual, in @ref{Scheme data types}. +technical manual, in TODO. @node An orchestral part