X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fsnippets%2Fadding-indicators-to-staves-which-get-split-after-a-break.ly;h=4faff7b0bb3ff80d38b47e59de253cb93e9767e8;hb=3af0951f9a11677240efa6228683dd4fcea13eaf;hp=80df7dc6d0539e8beb736e61b6737f1663db7fc4;hpb=652ed35a2013489d0a14fede6307cd2595abb2c4;p=lilypond.git diff --git a/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly b/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly index 80df7dc6d0..4faff7b0bb 100644 --- a/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly +++ b/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly @@ -1,19 +1,20 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "staff-notation, symbols-and-glyphs, vocal-music" texidoc = " -This snippet defines the @code{\\splitStaffBarLine} command, which adds -arrows in north-east and south-east directions at a bar line, to denote -that several voices sharing a staff will each continue on a staff of -their own in the next system. +This snippet defines the @code{\\splitStaffBarLine}, +@code{convUpStaffBarLine} and @code{convDownStaffBarLine} commands. +These add arrows at a bar line, to denote that several voices sharing a +staff will each continue on a staff of their own in the next system, or +that voices split in this way recombine. " doctitle = "Adding indicators to staves which get split after a break" @@ -22,77 +23,159 @@ their own in the next system. #(define-markup-command (arrow-at-angle layout props angle-deg length fill) (number? number? boolean?) (let* ( - ;; PI-OVER-180 and degrees->radians are taken from flag-styles.scm - (PI-OVER-180 (/ (atan 1 1) 45)) - (degrees->radians (lambda (degrees) (* degrees PI-OVER-180))) - (angle-rad (degrees->radians angle-deg)) - (target-x (* length (cos angle-rad))) - (target-y (* length (sin angle-rad)))) + (PI-OVER-180 (/ (atan 1 1) 34)) + (degrees->radians (lambda (degrees) (* degrees PI-OVER-180))) + (angle-rad (degrees->radians angle-deg)) + (target-x (* length (cos angle-rad))) + (target-y (* length (sin angle-rad)))) (interpret-markup layout props - (markup - #:translate (cons (/ target-x 2) (/ target-y 2)) - #:rotate angle-deg - #:translate (cons (/ length -2) 0) - #:concat (#:draw-line (cons length 0) - #:arrow-head X RIGHT fill))))) + (markup + #:translate (cons (/ target-x 2) (/ target-y 2)) + #:rotate angle-deg + #:translate (cons (/ length -2) 0) + #:concat (#:draw-line (cons length 0) + #:arrow-head X RIGHT fill))))) + splitStaffBarLineMarkup = \markup \with-dimensions #'(0 . 0) #'(0 . 0) { \combine - \arrow-at-angle #45 #(sqrt 8) ##f - \arrow-at-angle #-45 #(sqrt 8) ##f + \arrow-at-angle #45 #(sqrt 8) ##t + \arrow-at-angle #-45 #(sqrt 8) ##t } splitStaffBarLine = { \once \override Staff.BarLine.stencil = - #(lambda (grob) - (ly:stencil-combine-at-edge - (ly:bar-line::print grob) - X RIGHT - (grob-interpret-markup grob splitStaffBarLineMarkup) - 0)) + #(lambda (grob) + (ly:stencil-combine-at-edge + (ly:bar-line::print grob) + X RIGHT + (grob-interpret-markup grob splitStaffBarLineMarkup) + 0)) + \break +} + +convDownStaffBarLine = { + \once \override Staff.BarLine.stencil = + #(lambda (grob) + (ly:stencil-combine-at-edge + (ly:bar-line::print grob) + X RIGHT + (grob-interpret-markup grob #{ + \markup\with-dimensions #'(0 . 0) #'(0 . 0) { + \translate #'(0 . -.13)\arrow-at-angle #-45 #(sqrt 8) ##t + }#}) + 0)) + \break +} + +convUpStaffBarLine = { + \once \override Staff.BarLine.stencil = + #(lambda (grob) + (ly:stencil-combine-at-edge + (ly:bar-line::print grob) + X RIGHT + (grob-interpret-markup grob #{ + \markup\with-dimensions #'(0 . 0) #'(0 . 0) { + \translate #'(0 . .14)\arrow-at-angle #45 #(sqrt 8) ##t + }#}) + 0)) \break } + \paper { ragged-right = ##t - short-indent = 5\mm + short-indent = 10\mm +} + +separateSopranos = { + \set Staff.instrumentName = "AI AII" + \set Staff.shortInstrumentName = "AI AII" + \splitStaffBarLine + \change Staff = "up" +} +convSopranos = { + \convDownStaffBarLine + \change Staff = "shared" + \set Staff.instrumentName = "S A" + \set Staff.shortInstrumentName = "S A" +} + +sI = { + \voiceOne + \repeat unfold 4 f''2 + \separateSopranos + \repeat unfold 4 g''2 + \convSopranos + \repeat unfold 4 c''2 +} +sII = { + s1*2 + \voiceTwo + \change Staff = "up" + \repeat unfold 4 d''2 +} +aI = { + \voiceTwo + \repeat unfold 4 a'2 + \voiceOne + \repeat unfold 4 b'2 + \convUpStaffBarLine + \voiceTwo + \repeat unfold 4 g'2 +} +aII = { + s1*2 + \voiceTwo + \repeat unfold 4 g'2 +} +ten = { + \voiceOne + \repeat unfold 4 c'2 + \repeat unfold 4 d'2 + \repeat unfold 4 c'2 +} +bas = { + \voiceTwo + \repeat unfold 4 f2 + \repeat unfold 4 g2 + \repeat unfold 4 c2 } \score { << \new ChoirStaff << - \new Staff \with { instrumentName = #"High I + II" } { - << - \repeat unfold 4 f''1 - \\ - \repeat unfold 4 d''1 - >> - \splitStaffBarLine - } - \new Staff \with { instrumentName = #"Low" } { - << - \repeat unfold 4 b'1 - \\ - \repeat unfold 4 g'1 - >> + \new Staff = up \with { + instrumentName = "SI SII" + shortInstrumentName = "SI SII" + } { + s1*4 } - \new Staff \with { shortInstrumentName = #"H I" } { - R1*4 - \repeat unfold 2 { r4 f''2 r4 } \repeat unfold 2 e''1 - } - \new Staff \with { shortInstrumentName = #"H II" } { - R1*4 - \repeat unfold 4 b'2 \repeat unfold 2 c''1 - } - \new Staff \with { shortInstrumentName = #"L" } { - R1*4 - << - \repeat unfold 4 g'1 - \\ - \repeat unfold 4 c'1 - >> + \new Staff = shared \with { + instrumentName = "S A" + shortInstrumentName = "S A" + } << + \new Voice = sopI \sI + \new Voice = sopII \sII + \new Voice = altI \aI + \new Voice = altII \aII + >> + \new Lyrics \with { + alignBelowContext = up } + \lyricsto sopII { e f g h } + \new Lyrics \lyricsto altI { a b c d e f g h i j k l } + + \new Staff = men \with { + instrumentName = "T B" + shortInstrumentName = "T B" + } << + \clef F + \new Voice = ten \ten + \new Voice = bas \bas + >> + \new Lyrics \lyricsto bas { a b c d e f g h i j k l } >> >> \layout {