]> git.donarmstrong.com Git - lilypond.git/blob - ly/grace-init.ly
ly- -> ly:
[lilypond.git] / ly / grace-init.ly
1 \version "1.7.3"
2
3 startGraceMusic = {
4     \property Voice.Stem \override  #'direction = #1
5     \property Voice.Stem \override #'lengths = 
6         #(map (lambda (x) (* 0.8 x)) '(2.5 2.5 3.0 4.0 5.0))
7     \property Voice.Stem \override #'stem-shorten = 
8         #'(0.4 0)
9     \property Voice.Stem \override #'beamed-lengths =
10         #(map (lambda (x) (* 0.8 x)) '(3.26))
11     \property Voice.Stem \override #'beamed-minimum-free-lengths =
12         #(map (lambda (x) (* 0.8 x)) '(2.5 2.0 1.5))
13     \property Voice.Stem \override #'beamed-extreme-minimum-free-lengths =
14         #(map (lambda (x) (* 0.8 x)) '(1.83 1.5))
15
16     \property Voice.Stem \override #'no-stem-extend = ##t
17     \property Voice.Stem \override #'stroke-style  = #"grace"
18     \property Voice.Beam \override #'thickness = #0.384
19     
20     %% Instead of calling Beam::space_function, we should invoke
21     %% the previously active beam function...
22     \property Voice.Beam \override #'space-function =
23       #(lambda (beam mult) (* 0.8 (Beam::space_function beam mult)))
24
25     \property Voice.Beam \override #'position-callbacks =
26       #`(,Beam::least_squares
27          ,Beam::check_concave
28          ,Beam::slope_damping)
29     
30     % Can't use Staff.fontSize, since time sigs, keys sigs, etc. will
31     % be smaller as well.
32
33     \property Voice.fontSize = #-2
34     \property Staff.Accidental \override #'font-relative-size = #-2
35     \property Voice.Slur \override #'direction = #-1
36 }
37
38
39 %% attention: order is significant: reversed from above
40 %% (consistent ordering reduces memory usage.)
41 stopGraceMusic = {
42     \property Voice.Slur \revert #'direction
43     \property Staff.Accidental \revert #'font-relative-size
44     \property Voice.Beam \revert #'thickness
45
46     \property Voice.Stem \revert #'stroke-style
47     \property Voice.Stem \revert #'no-stem-extend
48     \property Voice.Stem \revert #'beamed-extreme-minimum-free-lengths
49     \property Voice.Stem \revert #'beamed-minimum-free-lengths
50     \property Voice.Stem \revert #'beamed-lengths
51     \property Voice.Stem \revert #'stem-shorten
52     \property Voice.Stem \revert #'lengths
53     \property Voice.Stem \revert #'direction    
54     \property Voice.Beam \revert #'space-function
55     
56     \property Voice.Beam \revert #'position-callbacks
57     
58     % Can't use Staff.fontSize, since time sigs, keys sigs, etc. will
59     % be smaller as well.
60
61     \property Voice.fontSize \unset
62 }
63
64 #(define (add-to-grace-init context object prop val)
65    " Override context.object #'property before entering grace context,
66 and restore afterwards. Use this to add settings to default grace notes.
67 "
68    (set! stopGraceMusic
69     (make-sequential-music
70      (cons
71       (context-spec-music  (make-grob-property-revert object prop) context)
72       (ly:get-mus-property stopGraceMusic 'elements)
73      )))
74    (set! startGraceMusic
75     (make-sequential-music
76      (append
77       (ly:get-mus-property startGraceMusic 'elements)
78       (list (context-spec-music  (make-grob-property-set object prop val) context))
79       )
80      )))
81    
82