From: Trevor Daniels Date: Tue, 15 Apr 2008 22:54:51 +0000 (+0100) Subject: GDP: NR 2 Reorganisation: Chords headings and move Figured bass X-Git-Tag: release/2.11.45-1~67^2^2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=2c1f14df7d83489dd8e3d697504e137edb70f5a4;p=lilypond.git GDP: NR 2 Reorganisation: Chords headings and move Figured bass Move Figured bass from Ancient to Chords --- diff --git a/Documentation/user/ancient.itely b/Documentation/user/ancient.itely index 791bc01751..34dbffc849 100644 --- a/Documentation/user/ancient.itely +++ b/Documentation/user/ancient.itely @@ -19,7 +19,7 @@ Support for ancient notation includes features for mensural notation and Gregorian Chant notation. There is also limited support for -figured bass notation. +figured bass notation, see @ref{Figured bass}. Many graphical objects provide a @code{style} property, see @itemize @@ -93,7 +93,6 @@ up during the baroque period. * Additional note signs for ancient music:: * Pre-defined contexts:: * Musica ficta accidentals:: -* Figured bass:: @end menu @node Alternative note signs for ancient music @@ -2038,195 +2037,4 @@ ais ais bis Internals Reference: @internalsref{Accidental_engraver} engraver and the @internalsref{AccidentalSuggestion} object. -@node Figured bass -@subsection Figured bass - -@cindex Basso continuo - -@c TODO: musicological blurb about FB - - -LilyPond has support for figured bass - -@lilypond[quote,ragged-right,verbatim,fragment] -<< - \new Voice { \clef bass dis4 c d ais g fis} - \new FiguredBass \figuremode { - < 6 >4 < 7\+ >8 < 6+ [_!] > - < 6 >4 <6 5 [3+] > - < _ >4 < 6 5/>4 - } ->> -@end lilypond - -The support for figured bass consists of two parts: there is an input -mode, introduced by @code{\figuremode}, where you can enter bass figures -as numbers, and there is a context called @internalsref{FiguredBass} that -takes care of making @internalsref{BassFigure} objects. - -In figures input mode, a group of bass figures is delimited by -@code{<} and @code{>}. The duration is entered after the @code{>} -@example -<4 6> -@end example -@lilypond[quote,ragged-right,fragment] -\new FiguredBass -\figuremode { <4 6> } -@end lilypond - -Accidentals are added when you append @code{-}, @code{!}, and @code{+} -to the numbers. A plus sign is added when you append @code{\+}, and -diminished fifths and sevenths can be obtained with @code{5/} and @code{7/}. - -@example -<4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/> -@end example -@lilypond[quote,ragged-right,fragment] -\figures { <4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/> } -@end lilypond - -Spaces may be inserted by using @code{_}. Brackets are -introduced with @code{[} and @code{]}. You can also include text -strings and text markups, see @ref{Text markup commands}. - -@example -< [4 6] 8 [_! 12] > < 5 \markup @{ \number 6 \super (1) @} > -@end example -@lilypond[quote,ragged-right,fragment] -\new FiguredBass -\figuremode { < [4 6] 8 [_! 12] > < 5 \markup{ \tiny \number 6 \super (1)} > } -@end lilypond - - -It is also possible to use continuation lines for repeated figures, - -@lilypond[verbatim,relative=1] -<< - \new Staff { - \clef bass - c4 c c - } - \figures { - \set useBassFigureExtenders = ##t - <4 6> <3 6> <3 7> - } ->> -@end lilypond - -@noindent -In this case, the extender lines always replace existing figures. - -The @code{FiguredBass} context doesn't pay attention to the actual -bass line. As a consequence, you may have to insert extra figures to -get extender lines below all notes, and you may have to add @code{\!} -to avoid getting an extender line, e.g. - -@lilypond[relative=1] -<< - \new Voice - \figures { - \set useBassFigureExtenders = ##t - <6 4->4. <6 4->16. <6 4->32 <5>8. r16 <6>8 <6\! 5-> - } - { - \clef bass - f16. g32 f16. g32 f16. g32 f16. g32 f8. es16 d8 es - } ->> -@end lilypond - -When using continuation lines, common figures are always put in the -same vertical position. When this is unwanted, you can insert a rest -with @code{r}. The rest will clear any previous alignment. For -example, you can write - -@example - <4 6>8 r8 -@end example - -@noindent -instead of -@example - <4 6>4 -@end example - -Accidentals and plus signs can appear before or after the numbers, -depending on the @code{figuredBassAlterationDirection} and -@code{figuredBassPlusDirection} -properties - -@lilypond - \figures { - <6\+> <5+> <6 4-> r - \set figuredBassAlterationDirection = #1 - <6\+> <5+> <6 4-> r - \set figuredBassPlusDirection = #1 - <6\+> <5+> <6 4-> r - \set figuredBassAlterationDirection = #-1 - <6\+> <5+> <6 4-> r - } -@end lilypond - - -Although the support for figured bass may superficially resemble chord -support, it is much simpler. The @code{\figuremode} mode simply -stores the numbers and @internalsref{FiguredBass} context prints them -as entered. There is no conversion to pitches and no realizations of -the bass are played in the MIDI file. - -Internally, the code produces markup texts. You can use any of the -markup text properties to override formatting. For example, the -vertical spacing of the figures may be set with @code{baseline-skip}. - - -Figured bass can also be added to @code{Staff} contexts -directly. In this case, their vertical position is adjusted -automatically. - -@lilypond[ragged-right,fragment,quote] -<< - \new Staff = someUniqueName - \relative c'' { - c4 c'8 r8 c,4 c' - } - - %% send to existing Staff. - \context Staff = someUniqueName - \figuremode { - <4>4 <6 10>8 s8 - - \set Staff.useBassFigureExtenders = ##t - <4 6>4 <4 6> - } ->> -@end lilypond - - -@snippets - -By default, this method produces figures above the notes. To get -figures below the notes, use - -@example -\override Staff.BassFigureAlignmentPositioning #'direction = #DOWN -@end example - - -@knownissues - -When using figured bass above the staff with extender lines and -@code{implicitBassFigures} the lines may become swapped around. -Maintaining order consistently will be impossible when multiple figures -have overlapping extender lines. To avoid this problem, please -use @code{stacking-dir} on @code{BassFigureAlignment}. - - -@seealso - -Internals Reference: @internalsref{NewBassFigure}, -@internalsref{BassFigureAlignment}, @internalsref{BassFigureLine}, -@internalsref{BassFigureBracket}, and -@internalsref{BassFigureContinuation} objects and -@internalsref{FiguredBass} context. - diff --git a/Documentation/user/chords.itely b/Documentation/user/chords.itely index 176f29e89a..7954d6c379 100644 --- a/Documentation/user/chords.itely +++ b/Documentation/user/chords.itely @@ -15,28 +15,28 @@ Intro text. @menu -* Chords sections:: +* Modern chords:: +* Figured bass:: @end menu -@node Chords sections -@subsection Chords sections +@node Modern chords +@subsection Modern chords @menu -* A lead sheet:: -* Introducing chord names:: -* Chords mode:: -* Printing chord names:: +* Chord modes:: +* Entering chord names:: +* Building chords:: +* Lead sheets:: +* Printing chord names:: @end menu -@c really awkward; I just shoved this in here from the tutorial. -@node A lead sheet -@subsubsection A lead sheet - -@cindex Lead sheets @cindex chords @cindex chord names +@node Chord modes +@subsubsection Chord modes + In popular music it is common to denote accompaniment with chord names. Such chords can be entered like notes, @@ -53,9 +53,27 @@ example shows a few common modifiers: \chordmode { c2 f4:m g4:maj7 gis1:dim7 } @end lilypond -For lead sheets, chords are not printed on staves, but as names on -a line for themselves. This is achieved by using @code{\chords} -instead of @code{\chordmode}. This uses the same syntax as +@cindex Chords mode + +In chord mode sets of pitches (chords) are entered with normal note +names. A chord is entered by the root, which is entered like a +normal pitch + +@lilypond[quote,ragged-right,fragment,verbatim] +\chordmode { es4. d8 c2 } +@end lilypond + +@noindent +The mode is introduced by the keyword @code{\chordmode}. + +@cindex chord entry +@cindex chord mode + +Chords is a mode similar to @code{\lyricmode}, etc. Most +of the commands continue to work, for example, @code{r} and +@code{\skip} can be used to insert rests and spaces, and property +commands may be used to change various settings. +It uses the same syntax as @code{\chordmode}, but renders the notes in a @code{ChordNames} context, with the following result: @@ -63,31 +81,20 @@ context, with the following result: \chords { c2 f4.:m g4.:maj7 gis8:dim7 } @end lilypond -@cindex lead sheet -When put together, chord names, lyrics and a melody form a lead -sheet, - -@lilypond[verbatim,quote,ragged-right] -<< - \chords { c2 g:sus4 f e } - \relative c'' { - a4 e c8 e r4 - b2 c4( d) - } - \addlyrics { One day this shall be free __ } ->> -@end lilypond +@knownissues -@seealso -@quotation -A complete list of modifiers and other options for layout can be -found in @ruser{Chords}. -@end quotation +Each step can only be present in a chord once. The following +simply produces the augmented chord, since @code{5+} is interpreted +last +@cindex clusters +@lilypond[quote,ragged-right,verbatim,fragment] +\chordmode { c:5.5-.5+ } +@end lilypond -@node Introducing chord names -@subsubsection Introducing chord names +@node Entering chord names +@subsubsection Entering chord names @cindex chord names LilyPond has support for printing chord names. Chords may be entered @@ -121,24 +128,8 @@ Note that the duration of chords must be specified outside the 2 @end example - -@node Chords mode -@subsubsection Chords mode -@cindex Chords mode - -In chord mode sets of pitches (chords) are entered with normal note -names. A chord is entered by the root, which is entered like a -normal pitch - -@lilypond[quote,ragged-right,fragment,verbatim] -\chordmode { es4. d8 c2 } -@end lilypond - -@noindent -The mode is introduced by the keyword @code{\chordmode}. - -@cindex chord entry -@cindex chord mode +@node Building chords +@subsubsection Building chords Other chords may be entered by suffixing a colon and introducing a modifier (which may include a number if desired) @@ -240,24 +231,32 @@ by using @code{/+}@var{pitch}. \chordmode { c1 c/+g c/+f } @end lilypond -Chords is a mode similar to @code{\lyricmode}, etc. Most -of the commands continue to work, for example, @code{r} and -@code{\skip} can be used to insert rests and spaces, and property -commands may be used to change various settings. +@node Lead sheets +@subsubsection Lead sheets +@cindex lead sheet -@knownissues +For lead sheets, chords are not printed on staves, but as names on +a line for themselves. This is achieved by using @code{\chords} +instead of @code{\chordmode}. -Each step can only be present in a chord once. The following -simply produces the augmented chord, since @code{5+} is interpreted -last -@cindex clusters -@lilypond[quote,ragged-right,verbatim,fragment] -\chordmode { c:5.5-.5+ } +When put together, chord names, lyrics and a melody form a lead +sheet, + +@lilypond[verbatim,quote,ragged-right] +<< + \chords { c2 g:sus4 f e } + \relative c'' { + a4 e c8 e r4 + b2 c4( d) + } + \addlyrics { One day this shall be free __ } +>> @end lilypond + @node Printing chord names @subsubsection Printing chord names @@ -444,3 +443,209 @@ may result in strange chord names when chords are entered with the @code{< .. >} syntax. +@node Figured bass +@subsection Figured bass + +@menu +* Introduction to figured bass:: +* Entering figures:: +* Repeated figures:: +@end menu + +@node Introduction to figured bass +@subsubsection Introduction to figured bass + +@cindex Basso continuo + +@c TODO: musicological blurb about FB + +LilyPond has support for figured bass + +@lilypond[quote,ragged-right,verbatim,fragment] +<< + \new Voice { \clef bass dis4 c d ais g fis} + \new FiguredBass \figuremode { + < 6 >4 < 7\+ >8 < 6+ [_!] > + < 6 >4 <6 5 [3+] > + < _ >4 < 6 5/>4 + } +>> +@end lilypond + +Although the support for figured bass may superficially resemble chord +support, it is much simpler. The @code{\figuremode} mode simply +stores the numbers and @internalsref{FiguredBass} context prints them +as entered. There is no conversion to pitches and no realizations of +the bass are played in the MIDI file. + +Internally, the code produces markup texts. You can use any of the +markup text properties to override formatting. For example, the +vertical spacing of the figures may be set with @code{baseline-skip}. + + +@node Entering figures +@subsubsection Entering figures + +The support for figured bass consists of two parts: there is an input +mode, introduced by @code{\figuremode}, where you can enter bass figures +as numbers, and there is a context called @internalsref{FiguredBass} that +takes care of making @internalsref{BassFigure} objects. + +In figures input mode, a group of bass figures is delimited by +@code{<} and @code{>}. The duration is entered after the @code{>} +@example +<4 6> +@end example +@lilypond[quote,ragged-right,fragment] +\new FiguredBass +\figuremode { <4 6> } +@end lilypond + +Accidentals are added when you append @code{-}, @code{!}, and @code{+} +to the numbers. A plus sign is added when you append @code{\+}, and +diminished fifths and sevenths can be obtained with @code{5/} and @code{7/}. + +@example +<4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/> +@end example +@lilypond[quote,ragged-right,fragment] +\figures { <4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/> } +@end lilypond + +Spaces may be inserted by using @code{_}. Brackets are +introduced with @code{[} and @code{]}. You can also include text +strings and text markups, see @ref{Text markup commands}. + +@example +< [4 6] 8 [_! 12] > < 5 \markup @{ \number 6 \super (1) @} > +@end example +@lilypond[quote,ragged-right,fragment] +\new FiguredBass +\figuremode { < [4 6] 8 [_! 12] > < 5 \markup{ \tiny \number 6 \super (1)} > } +@end lilypond + + +@node Repeated figures +@subsubsection Repeated figures + + +It is also possible to use continuation lines for repeated figures, + +@lilypond[verbatim,relative=1] +<< + \new Staff { + \clef bass + c4 c c + } + \figures { + \set useBassFigureExtenders = ##t + <4 6> <3 6> <3 7> + } +>> +@end lilypond + +@noindent +In this case, the extender lines always replace existing figures. + +The @code{FiguredBass} context doesn't pay attention to the actual +bass line. As a consequence, you may have to insert extra figures to +get extender lines below all notes, and you may have to add @code{\!} +to avoid getting an extender line, e.g. + +@lilypond[relative=1] +<< + \new Voice + \figures { + \set useBassFigureExtenders = ##t + <6 4->4. <6 4->16. <6 4->32 <5>8. r16 <6>8 <6\! 5-> + } + { + \clef bass + f16. g32 f16. g32 f16. g32 f16. g32 f8. es16 d8 es + } +>> +@end lilypond + +When using continuation lines, common figures are always put in the +same vertical position. When this is unwanted, you can insert a rest +with @code{r}. The rest will clear any previous alignment. For +example, you can write + +@example + <4 6>8 r8 +@end example + +@noindent +instead of +@example + <4 6>4 +@end example + +Accidentals and plus signs can appear before or after the numbers, +depending on the @code{figuredBassAlterationDirection} and +@code{figuredBassPlusDirection} +properties + +@lilypond + \figures { + <6\+> <5+> <6 4-> r + \set figuredBassAlterationDirection = #1 + <6\+> <5+> <6 4-> r + \set figuredBassPlusDirection = #1 + <6\+> <5+> <6 4-> r + \set figuredBassAlterationDirection = #-1 + <6\+> <5+> <6 4-> r + } +@end lilypond + + +Figured bass can also be added to @code{Staff} contexts +directly. In this case, their vertical position is adjusted +automatically. + +@lilypond[ragged-right,fragment,quote] +<< + \new Staff = someUniqueName + \relative c'' { + c4 c'8 r8 c,4 c' + } + + %% send to existing Staff. + \context Staff = someUniqueName + \figuremode { + <4>4 <6 10>8 s8 + + \set Staff.useBassFigureExtenders = ##t + <4 6>4 <4 6> + } +>> +@end lilypond + + +@snippets + +By default, this method produces figures above the notes. To get +figures below the notes, use + +@example +\override Staff.BassFigureAlignmentPositioning #'direction = #DOWN +@end example + + +@knownissues + +When using figured bass above the staff with extender lines and +@code{implicitBassFigures} the lines may become swapped around. +Maintaining order consistently will be impossible when multiple figures +have overlapping extender lines. To avoid this problem, please +use @code{stacking-dir} on @code{BassFigureAlignment}. + + +@seealso + +Internals Reference: @internalsref{NewBassFigure}, +@internalsref{BassFigureAlignment}, @internalsref{BassFigureLine}, +@internalsref{BassFigureBracket}, and +@internalsref{BassFigureContinuation} objects and +@internalsref{FiguredBass} context. +