]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly
Merge remote-tracking branch 'origin/master' into translation
[lilypond.git] / Documentation / snippets / adding-indicators-to-staves-which-get-split-after-a-break.ly
index edf1bd87383776751adc54fadc22e9c422752c39..bdaf405cafd6c2ef33e206fcc8e27861870f9605 100644 (file)
@@ -1,10 +1,13 @@
-%% Do not edit this file; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% DO NOT EDIT this file manually; it is automatically
+%% 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.13.10"
+\version "2.18.0"
 
 \header {
-  lsrtags = "staff-notation, vocal-music"
+  lsrtags = "staff-notation, symbols-and-glyphs, vocal-music"
 
   texidoc = "
 This snippet defines the @code{\\splitStaffBarLine} command, which adds
@@ -17,86 +20,144 @@ their own in the next system.
 } % begin verbatim
 
 #(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))))
-     (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)))))
+  (number? number? boolean?)
+  (let* (
+      (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)))))
 
-splitStaffBarLineMarkup = \markup \with-dimensions #'(0 . 0) #'(0 . 0) {
-  \combine
-    \arrow-at-angle #45 #(sqrt 8) ##f
-    \arrow-at-angle #-45 #(sqrt 8) ##f
+splitStaffBarLine = {
+  \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 #'(5.95 . .14)\arrow-at-angle #45 #(sqrt 8) ##t
+        \translate #'(5.35 . -.13)\arrow-at-angle #-45 #(sqrt 8) ##t }#})
+    0))
+  \break
 }
 
-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 0))
+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 #'(5.3 . -.13)\arrow-at-angle #-45 #(sqrt 8) ##t }#})
+      0))
   \break
 }
 
-\paper {
-  ragged-right = ##t
-  short-indent = 5\mm
+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 #'(5.28 . .14)\arrow-at-angle #45 #(sqrt 8) ##t }#})
+      0))
+  \break
 }
 
+
 \score {
   <<
     \new ChoirStaff <<
-      \new Staff \with { instrumentName = #"High I + II" } {
+      \new Staff
+      \with {
+        instrumentName = #"H I + H II"
+      } {
+        \key f\minor
         <<
           \repeat unfold 4 f''1
           \\
-          \repeat unfold 4 d''1
+          \repeat unfold 4 des''1
         >>
+        \key f\major
         \splitStaffBarLine
       }
       \new Staff \with { instrumentName = #"Low" } {
+        \key f\minor
         <<
-          \repeat unfold 4 b'1
+          \repeat unfold 4 bes'1
           \\
           \repeat unfold 4 g'1
         >>
+        \key f\major
       }
 
-      \new Staff \with { shortInstrumentName = #"H I" } {
+      \new Staff \with { shortInstrumentName = #"I" } {
+        \key f \major
         R1*4
         \repeat unfold 2 { r4 f''2 r4 } \repeat unfold 2 e''1
+        \key f\minor
+        \convDownStaffBarLine
       }
-      \new Staff \with { shortInstrumentName = #"H II" } {
+      \new Staff \with { shortInstrumentName = #"II" } {
+        \key f \major
         R1*4
-        \repeat unfold 4 b'2 \repeat unfold 2 c''1
+        \repeat unfold 4 bes'2 \repeat unfold 2 c''1
+        \key f\minor
+        \convUpStaffBarLine
       }
+
       \new Staff \with { shortInstrumentName = #"L" } {
+        \key f\major
         R1*4
         <<
           \repeat unfold 4 g'1
           \\
           \repeat unfold 4 c'1
         >>
+        \key f\minor
+      }
+
+      \new Staff
+      \with {
+        shortInstrumentName = #"I+II"
+      } {
+        \key f\minor
+        R1*8
+        <<
+          \repeat unfold 4 f''1
+          \\
+          \repeat unfold 4 des''1
+        >>
+      }
+      \new Staff \with { shortInstrumentName = #"L" } {
+        \key f\minor
+        R1*8
+        <<
+          \repeat unfold 4 bes'1
+          \\
+          \repeat unfold 4 g'1
+        >>
       }
     >>
   >>
   \layout {
     \context {
-      \RemoveEmptyStaffContext
+      \Staff \RemoveEmptyStaves
       \override VerticalAxisGroup #'remove-first = ##t
     }
   }
 }
-
+\paper {
+  ragged-right = ##t
+}