]> git.donarmstrong.com Git - lilypond.git/blob - scm/translation-functions.scm
* input/regression/rehearsal-mark-number.ly: new file.
[lilypond.git] / scm / translation-functions.scm
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ;; tuplets.
3
4 (define-public (denominator-tuplet-formatter mus)
5   (number->string (ly:get-mus-property mus 'denominator)))
6
7 (define-public (fraction-tuplet-formatter mus)
8   (string-append (number->string (ly:get-mus-property mus 'numerator))
9                  ":"
10                  (number->string (ly:get-mus-property mus 'denominator))
11                  ))
12
13
14 ;; metronome marks
15 (define-public (format-metronome-markup event context)
16   (let*
17       ((dur  (ly:get-mus-property event 'tempo-unit))
18        (count (ly:get-mus-property event 'metronome-count))
19        (note-mark (make-note-by-number-markup (ly:duration-log dur)
20                                               (ly:duration-dot-count dur)
21                                               1) ) ) 
22     (make-line-markup
23      (list
24       note-mark
25       (make-simple-markup  "=")
26       (make-simple-markup (number->string count))
27       
28   ))))
29
30
31
32 (define number->mark-letter-vector (make-vector 25 #\A))
33
34 (do ((i 0 (1+ i))
35      (j 0 (1+ j)) )
36     ((>= i 26))
37   (if (= i (- (char->integer #\I) (char->integer #\A)))
38       (set! i (1+ i)))
39   (vector-set! number->mark-letter-vector j
40                (integer->char (+ i (char->integer #\A))))  )
41
42 (define-public (number->mark-string n)
43   "Double letters for big marks."
44   (let*
45       ((l (vector-length number->mark-letter-vector)))
46     (display n) (newline)
47     (display l) (newline)
48     
49   (if (>= n l)
50       (string-append (number->mark-string (1- (quotient n l)))
51                      (number->mark-string (remainder n l)))
52       (make-string 1 (vector-ref number->mark-letter-vector n)))))
53
54
55 (define-public (format-mark-letters mark context)
56   (make-bold-markup (number->mark-string (1- mark))))
57
58 (define-public (format-mark-numbers mark context)
59   (make-bold-markup (number->string mark)))
60