63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| %%%%%%%%%%%%%%%%% Pfeilezeugs
 | |
| % http://lilypond.org/doc/v2.19/Documentation/snippets/vocal-music
 | |
| #(define-markup-command (arrow-at-angle layout props angle-deg length 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) ##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))
 | |
|   \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
 | |
| } |