X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Fsimultaneous.itely;h=588abe2a2ff4d2cdbb60ef066c402d03286985e6;hb=46d29e0127e80e9b61460987ee940e36ee05006a;hp=9f921c9732081a3078f64ba5ae0dddf425a2a7a2;hpb=633f28c9c17eaf0c3e968994634417358976439e;p=lilypond.git diff --git a/Documentation/user/simultaneous.itely b/Documentation/user/simultaneous.itely index 9f921c9732..588abe2a2f 100644 --- a/Documentation/user/simultaneous.itely +++ b/Documentation/user/simultaneous.itely @@ -23,18 +23,18 @@ than one voice on the same staff. @subsection Single voice @menu -* Chords:: +* Chorded notes:: * Clusters:: @end menu -@node Chords -@unnumberedsubsubsec Chords +@node Chorded notes +@unnumberedsubsubsec Chorded notes @cindex Chords A chord is formed by a enclosing a set of pitches between @code{<} and @code{>}. A chord may be followed by a duration, and a set of -articulations, just like simple notes +articulations, just like simple notes: @lilypond[verbatim,ragged-right,fragment,quote,relative=1] 4 8 @@ -43,6 +43,12 @@ articulations, just like simple notes For more information about chords, see @ref{Introducing chord names}. +@refbugs + +Music expressions like @code{<< @{ g8 e8 @} a4 >>} are not printed +accurately. Use @code{8 8} instead. + + @node Clusters @unnumberedsubsubsec Clusters @@ -65,235 +71,25 @@ clusters. @seealso -Program reference: @internalsref{ClusterSpanner}, +Internals Reference: @internalsref{ClusterSpanner}, @internalsref{ClusterSpannerBeacon}, @internalsref{Cluster_spanner_engraver}. Examples: @lsr{contemporary,cluster@/.ly}. -@refbugs - -Music expressions like @code{<< @{ g8 e8 @} a4 >>} are not printed -accurately. Use @code{8 8} instead. - @node Multiple voices @subsection Multiple voices @menu -* Basic polyphony:: -* Explicitly instantiating voices:: -* Collision Resolution:: +* Collision resolution:: * Automatic part combining:: * Writing music in parallel:: @end menu -@node Basic polyphony -@unnumberedsubsubsec Basic polyphony - -@cindex polyphony - -The easiest way to enter fragments with more than one voice on a -staff is to enter each voice as a sequence (with @code{@{...@}}), -and combine them simultaneously, separating the voices with -@code{\\} - -@funindex \\ - -@lilypond[quote,verbatim,fragment] -\new Staff \relative c' { - c16 d e f - << - { g4 f e | d2 e2 } \\ - { r8 e4 d c8 ~ | c b16 a b8 g ~ g2 } \\ - { s2. | s4 b4 c2 } - >> -} -@end lilypond - -@cindex layers - -The separator causes @internalsref{Voice} -contexts@footnote{Polyphonic voices are sometimes -called @q{layers} in other notation packages} to be instantiated. -They bear the names @code{"1"}, @code{"2"}, etc. In each of these -contexts, vertical direction of slurs, stems, etc., is set -appropriately. - -These voices are all separate from the voice that contains the -notes just outside the @code{<< \\ >>} construct. This should be -noted when making changes at the voice level. This also means -that slurs and ties cannot go into or out of a @code{<< \\ >>} -construct. Conversely, parallel voices from separate @code{<< \\ ->>} constructs on the same staff are the same voice. Here is the -same example, with different noteheads and colors for each voice. -Note that the change to the note-head style in the main voice does -not affect the inside of the @code{<< \\ >>} constructs. Also, -the change to the second voice in the first @code{<< \\ >>} -construct is effective in the second @code{<< \\ >>}, and the -voice is tied across the two constructs. - -@cindex note heads, styles - -@lilypond[quote,verbatim,fragment] -\new Staff \relative c' { - \override NoteHead #'style = #'cross - \override NoteHead #'color = #red - c16 d e f - << - { g4 f e } \\ - { \override NoteHead #'style = #'triangle - \override NoteHead #'color = #blue - r8 e4 d c8 ~ } - >> | - << - { d2 e2 } \\ - { c8 b16 a b8 g ~ g2 } \\ - { \override NoteHead #'style = #'slash - \override NoteHead #'color = #green - s4 b4 c2 } - >> -} -@end lilypond - -Polyphony does not change the relationship of notes within a -@code{\relative @{ @}} block. Each note is calculated relative to -the note immediately preceding it. - -@example -\relative @{ noteA << noteB \\ noteC >> noteD @} -@end example - -@code{noteC} is relative to @code{noteB}, not @code{noteA}; -@code{noteD} is relative to @code{noteC}, not @code{noteB} or -@code{noteA}. - - -@node Explicitly instantiating voices -@unnumberedsubsubsec Explicitly instantiating voices - -@internalsref{Voice} contexts can also be instantiated manually -inside a @code{<< >>} block to create polyphonic music, using -@code{\voiceOne}, up to @code{\voiceFour} to assign stem -directions and a horizontal shift for each part. - -Specifically, -@example -<< \upper \\ \lower >> -@end example - -@noindent -is equivalent to - -@example -<< - \new Voice = "1" @{ \voiceOne \upper @} - \new Voice = "2" @{ \voiceTwo \lower @} ->> -@end example - -The @code{\voiceXXX} commands set the direction of stems, slurs, -ties, articulations, text annotations, augmentation dots of dotted -notes, and fingerings. @code{\voiceOne} and @code{\voiceThree} -make these objects point upwards, while @code{\voiceTwo} and -@code{\voiceFour} make them point downwards. The command -@code{\oneVoice} will revert back to the normal setting. - -An expression that appears directly inside a @code{<< >>} belongs -to the main voice. This is useful when extra voices appear while -the main voice is playing. Here is a more correct rendition of -the example from the previous section. The crossed colored -noteheads demonstrate that the main melody is now in a single -voice context. - -@lilypond[quote,ragged-right,verbatim] -\new Staff \relative c' { - \override NoteHead #'style = #'cross - \override NoteHead #'color = #red - c16 d e f - \voiceOne - << - { g4 f e | d2 e2 } - \new Voice="1" { \voiceTwo - r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 - \oneVoice - } - \new Voice { \voiceThree - s2. | s4 b4 c2 - \oneVoice - } - >> - \oneVoice -} -@end lilypond - -The correct definition of the voices allows the melody to be -slurred. - -@lilypond[quote,ragged-right,verbatim] -\new Staff \relative c' { - c16^( d e f - \voiceOne - << - { g4 f e | d2 e2) } - \context Voice="1" { \voiceTwo - r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 - \oneVoice - } - \new Voice { \voiceThree - s2. s4 b4 c2 - \oneVoice - } - >> - \oneVoice -} -@end lilypond - -Avoiding the @code{\\} separator also allows nesting polyphony -constructs, which in some case might be a more natural way to -typeset the music. - -@lilypond[quote,ragged-right,verbatim] -\new Staff \relative c' { - c16^( d e f - \voiceOne - << - { g4 f e | d2 e2) } - \context Voice="1" { \voiceTwo - r8 e4 d c8 ~ | - << - {c8 b16 a b8 g ~ g2} - \new Voice { \voiceThree - s4 b4 c2 - \oneVoice - } - >> - \oneVoice - } - >> - \oneVoice -} -@end lilypond - -In some instances of complex polyphonic music, you may need -additional voices to avoid collisions between notes. Additional -voices are added by defining an identifier, as shown below: - -@lilypond[quote,verbatim,ragged-right,relative=2] -voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice) - -\relative c''' << - { \voiceOne g4 ~ \stemDown g32[ f( es d c b a b64 )g] } \\ - { \voiceThree b4} \\ - { \voiceFive d,} \\ - { \voiceTwo g,} ->> -@end lilypond - - -@node Collision Resolution -@unnumberedsubsubsec Collision Resolution +@node Collision resolution +@unnumberedsubsubsec Collision resolution Normally, note heads with a different number of dots are not merged, but when the object property @@ -356,6 +152,22 @@ move the top @code{g} out of the column, and >> @end lilypond +In some instances of complex polyphonic music, you may need +additional voices to avoid collisions between notes. Additional +voices are added by defining an variable, as shown below: + +@lilypond[quote,verbatim,ragged-right,relative=2] +voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice) + +\relative c''' << + { \voiceOne g4 ~ \stemDown g32[ f( es d c b a b64 )g] } \\ + { \voiceThree b4} \\ + { \voiceFive d,} \\ + { \voiceTwo g,} +>> +@end lilypond + + @refcommands @@ -403,7 +215,7 @@ override typesetting decisions. @seealso -Program reference: the objects responsible for resolving +Internals Reference: the objects responsible for resolving collisions are @internalsref{NoteCollision} and @internalsref{RestCollision}. @@ -501,7 +313,7 @@ has no effect on the pitches of @var{musicexpr1} and @seealso -Program reference: @internalsref{PartCombineMusic}. +Internals Reference: @internalsref{PartCombineMusic}. @refbugs