]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/translation-functions.scm
Let note-by-number and rest-by-number be robust against overriding font-name
[lilypond.git] / scm / translation-functions.scm
index 3e65016edb9b391225afe2536b97f4ad61e66c88..2a3701ea16e8fb4773c52818201dd4d6f06a6253 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; (c) 1998--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;
 ;;;; LilyPond is free software: you can redistribute it and/or modify
@@ -38,39 +38,23 @@ way the transposition number is displayed."
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; metronome marks
 
-;; We give 'styled-metronome-markup' an optional argument, 'glyph-font', to
-;; prepare using other fonts than 'fetaMusic.
-;; Currently it ensures that the default-fonts are used by the
-;; markup-command 'note-by-number' in 'metronome-markup' (see below).
-(define*
-  ((styled-metronome-markup #:optional (glyph-font 'default))
-                            event context)
+(define-public (format-metronome-markup event context)
    (let ((hide-note (ly:context-property context 'tempoHideNote #f))
          (text (ly:event-property event 'text))
          (dur (ly:event-property event 'tempo-unit))
          (count (ly:event-property event 'metronome-count)))
+   (metronome-markup text dur count hide-note)))
+(export format-metronome-markup)
 
-   (metronome-markup glyph-font text dur count hide-note)))
-(export styled-metronome-markup)
-
-(define-public format-metronome-markup
-  (styled-metronome-markup))
-
-(define (metronome-markup glyph-font text dur count hide-note)
+(define (metronome-markup text dur count hide-note)
   (let* ((note-mark
             (if (and (not hide-note) (ly:duration? dur))
                 (make-smaller-markup
-                   ;; We insert the (default)-font for flag-glyphs and
-                   ;; note-head-glyphs to prepare the possibility to use
-                   ;; other fonts and to make possible using
-                   ;; \override MetronomeMark #'font-name = #<font-name>
-                   ;; without affecting the note/flag-glyphs.
-                   (make-override-markup (cons 'font-name glyph-font)
-                    (make-note-by-number-markup
-                        (ly:duration-log dur)
-                        (ly:duration-dot-count dur)
-                        UP)))
-                      #f))
+                  (make-note-by-number-markup
+                    (ly:duration-log dur)
+                    (ly:duration-dot-count dur)
+                    UP))
+                #f))
          (count-markup (cond ((number? count)
                               (if (> count 0)
                                   (make-simple-markup
@@ -697,39 +681,3 @@ only ~a fret labels provided")
 (export every-nth-repeat-count-visible)
 
 (define-public (all-repeat-counts-visible count context) #t)
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; make-engraver helper macro
-
-(defmacro-public make-engraver forms
-  "Helper macro for creating Scheme engravers.
-
-The usual form for an engraver is an association list (or alist)
-mapping symbols to either anonymous functions or to another such
-alist.
-
-@code{make-engraver} accepts forms where the first element is either
-an argument list starting with the respective symbol, followed by the
-function body (comparable to the way @code{define} is used for
-defining functions), or a single symbol followed by subordinate forms
-in the same manner.  You can also just make an alist pair
-literally (the @samp{car} is quoted automatically) as long as the
-unevaluated @samp{cdr} is not a pair.  This is useful if you already
-have defined your engraver functions separately.
-
-Symbols mapping to a function would be @code{initialize},
-@code{start-translation-timestep}, @code{process-music},
-@code{process-acknowledged}, @code{stop-translation-timestep}, and
-@code{finalize}.  Symbols mapping to another alist specified in the
-same manner are @code{listeners} with the subordinate symbols being
-event classes, and @code{acknowledgers} and @code{end-acknowledgers}
-with the subordinate symbols being interfaces."
-  (let loop ((forms forms))
-    (if (cheap-list? forms)
-        `(list
-          ,@(map (lambda (form)
-                   (if (pair? (car form))
-                       `(cons ',(caar form) (lambda ,(cdar form) ,@(cdr form)))
-                       `(cons ',(car form) ,(loop (cdr form)))))
-                 forms))
-        forms)))