]> git.donarmstrong.com Git - lilypond.git/blob - scm/basic-properties.scm
release: 1.5.24
[lilypond.git] / scm / basic-properties.scm
1 ; Definition of backend properties (aka. element properties).
2
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)))
11
12
13 (define mark-visibility end-of-line-invisible)
14
15
16
17 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
18 ; Bar lines.
19 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
20
21 ;
22 ; How should a  bar line behave at a break? 
23 ;
24 ;; Why prepend `default-' to every scm identifier?
25 (define (default-break-barline glyph dir)
26    (let ((result (assoc glyph 
27                         '((":|:" . (":|" . "|:"))
28                           ("||:" . ("||" . "|:"))
29                           ("|" . ("|" . ""))
30                           ("||:" . ("||" . "|:"))
31                           ("|s" . (nil . "|"))
32                           ("|:" . ("|" . "|:"))
33                           ("|." . ("|." . nil))
34                           (".|" . (nil . ".|"))
35                           (":|" . (":|" . nil))
36                           ("||" . ("||" . nil))
37                           (".|." . (".|." . nil))
38                           ("" . ("" . ""))
39                           ("empty" . ("nil" . nil))
40                           ("brace" . (nil . "brace"))
41                           ("bracket" . (nil . "bracket"))  
42                           )
43                         )))
44
45      (if (equal? result #f)
46          (ly-warn (string-append "Unknown bar glyph: `" glyph "'"))
47          (index-cell (cdr result) dir))
48      )
49    )
50      
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
52 ;  Prefatory matter: break align item.
53 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
54 ;; Spacing constants 
55 ;;
56 ;; rules for this spacing are much more complicated than this. 
57 ;; See [Wanske] page 126 -- 134, [Ross] pg 143 -- 147
58 ;;
59
60 ;; documentme: difference between extra-space and minimum-space
61
62 ;; documentme: difference between extra-space and minimum-space
63
64 ;; (Measured in staff space)
65 (define default-break-align-space-alist
66  '(
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))
102    )
103 )