1 ; Definition of backend properties (aka. element properties).
3 ;; See documentation of Item::visibility_lambda_
4 (define (begin-of-line-visible d) (if (= d 1) '(#f . #f) '(#t . #t)))
5 (define (end-of-line-visible d) (if (= d -1) '(#f . #f) '(#t . #t)))
6 (define (spanbar-begin-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f)))
7 (define (all-visible d) '(#f . #f))
8 (define (all-invisible d) '(#t . #t))
9 (define (begin-of-line-invisible d) (if (= d 1) '(#t . #t) '(#f . #f)))
10 (define (end-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f)))
13 (define mark-visibility end-of-line-invisible)
17 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
19 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
22 ; How should a bar line behave at a break?
24 ;; Why prepend `default-' to every scm identifier?
25 (define (default-break-barline glyph dir)
26 (let ((result (assoc glyph
27 '((":|:" . (":|" . "|:"))
28 ("||:" . ("||" . "|:"))
30 ("||:" . ("||" . "|:"))
37 (".|." . (".|." . nil))
39 ("empty" . ("nil" . nil))
40 ("brace" . (nil . "brace"))
41 ("bracket" . (nil . "bracket"))
45 (if (equal? result #f)
46 (ly-warn (string-append "Unknown bar glyph: `" glyph "'"))
47 (index-cell (cdr result) dir))
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
52 ; Prefatory matter: break align item.
53 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
56 ;; rules for this spacing are much more complicated than this.
57 ;; See [Wanske] page 126 -- 134, [Ross] pg 143 -- 147
60 ;; documentme: difference between extra-space and minimum-space
62 ;; documentme: difference between extra-space and minimum-space
64 ;; (Measured in staff space)
65 (define default-break-align-space-alist
67 ((Staff_bar Custos) . (minimum-space 2.0))
68 ((Custos begin-of-note) . (minimum-space 0.0))
69 ((none Instrument_name) . (extra-space 1.0))
70 ((Instrument_name Left_edge_item) . (extra-space 1.0))
71 ((Left_edge_item Clef_item) . (extra-space 1.0))
72 ((Left_edge_item Key_item) . (extra-space 0.0))
73 ((Left_edge_item begin-of-note) . (extra-space 1.0))
74 ((none Left_edge_item) . (extra-space 0.0))
75 ((Left_edge_item Staff_bar) . (extra-space 0.0))
76 ; ((none Left_edge_item) . (extra-space -15.0))
77 ; ((none Left_edge_item) . (extra-space -15.0))
78 ((none Clef_item) . (minimum-space 1.0))
79 ((none Staff_bar) . (minimum-space 0.0))
80 ((none Clef_item) . (minimum-space 1.0))
81 ((none Key_item) . (minimum-space 0.5))
82 ((none Time_signature) . (extra-space 0.0))
83 ((none begin-of-note) . (minimum-space 1.5))
84 ((Clef_item Key_item) . (minimum-space 4.0))
85 ((Key_item Time_signature) . (extra-space 1.0))
86 ((Clef_item Time_signature) . (minimum-space 3.5))
87 ((Staff_bar Clef_item) . (minimum-space 1.0))
88 ((Clef_item Staff_bar) . (minimum-space 3.7))
89 ((Time_signature Staff_bar) . (minimum-space 2.0))
90 ((Key_item Staff_bar) . (extra-space 1.0))
91 ((Staff_bar Time_signature) . (minimum-space 1.5))
92 ((Time_signature begin-of-note) . (extra-space 2.0))
93 ((Key_item begin-of-note) . (extra-space 2.5))
94 ((Staff_bar begin-of-note) . (extra-space 1.0))
95 ((Clef_item begin-of-note) . (minimum-space 5.0))
96 ((Left_edge_item Breathing_sign) . (minimum-space 0.0))
97 ((none Breathing_sign) . (minimum-space 0.0))
98 ((Breathing_sign Key_item) . (minimum-space 1.5))
99 ((Breathing_sign begin-of-note) . (minimum-space 1.0))
100 ((Breathing_sign Staff_bar) . (minimum-space 1.5))
101 ((Breathing_sign Clef_item) . (minimum-space 2.0))