--- /dev/null
+\version "2.17.27"
+
+\header {
+ texidoc = "@code{metronomeMarkFormatter} supports
+all note head styles and flags styles. Setting @code{font-name} for
+@code{MetronomeMark} does not disturb the glyphs for note-head and flag.
+"
+}
+
+\paper {
+ ragged-right = ##f
+ indent = 30
+}
+
+mus =
+\relative c'' {
+ \tempo "Allegro" 8=120-140
+ a8 b c d a b c d
+ \override Score.MetronomeMark.font-name = "Times New Roman"
+ \tempo "Allegro" 8=140
+ a b c d a b c d
+}
+
+%% Some Examples:
+\score {
+ \new Staff
+ \with {
+ instrumentName = "default"
+ }
+ \mus
+ \layout {}
+}
+
+\score {
+ \new Staff
+ \with {
+ instrumentName =
+ \markup \column { "default-note-head" "old-straight-flag" }
+ }
+ \mus
+ \layout {
+ \context {
+ \Score
+ \override MetronomeMark.flag-style = #'old-straight-flag
+ }
+ }
+}
+
+\score {
+ \new Staff
+ \with {
+ instrumentName =
+ \markup \column { "default-note-head" "modern-straight-flag" }
+ }
+ \mus
+ \layout {
+ \context {
+ \Score
+ \override MetronomeMark.flag-style = #'modern-straight-flag
+ }
+ }
+}
+
+\score {
+ \new Staff
+ \with {
+ instrumentName =
+ \markup \column { "default-note-head" "flat-flag" }
+ }
+ \mus
+ \layout {
+ \context {
+ \Score
+ \override MetronomeMark.flag-style = #'flat-flag
+ }
+ }
+}
+
+\score {
+ \new Staff
+ \with {
+ instrumentName =
+ \markup \column { "diamond-note-head" "modern-straight-flag" }
+ }
+ \mus
+ \layout {
+ \context {
+ \Score
+ \override MetronomeMark.style = #'diamond
+ \override MetronomeMark.flag-style = #'modern-straight-flag
+ }
+ }
+}
+
+\score {
+ \new MensuralStaff
+ \with {
+ instrumentName =
+ \markup \column { "mensural-note-head" "mensural-flag" }
+ }
+ \mus
+ \layout {
+ \context {
+ \Score
+ \override MetronomeMark.style = #'mensural
+ }
+ }
+}
;;; f
;;;
(flag-count ,number? "The number of tremolo beams.")
+ (flag-style ,symbol? "The style of the flag to be used with
+@code{MetronomeMark}. Available are @code{'modern-straight-flag},
+@code{'old-straight-flag}, @code{flat-flag}, @code{mensural} and
+@code{'default}")
(flat-positions ,list? "Flats in key signatures are placed
within the specified ranges of staff-positions. The general form
is a list of pairs, with one pair for each type of clef, in order
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; metronome marks
-(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)))
-
-(define-public (metronome-markup text dur count hide-note)
- (let* ((note-mark (if (and (not hide-note) (ly:duration? dur))
- (make-smaller-markup
- (make-note-by-number-markup (ly:duration-log dur)
- (ly:duration-dot-count dur)
- 1))
- #f))
+;; 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*-public
+ ((styled-metronome-markup #:optional (glyph-font 'default))
+ 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 glyph-font text dur count hide-note)))
+
+(define-public format-metronome-markup
+ (styled-metronome-markup))
+
+(define (metronome-markup glyph-font 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))
(count-markup (cond ((number? count)
(if (> count 0)
- (make-simple-markup (number->string count))
+ (make-simple-markup
+ (number->string count))
#f))
((pair? count)
(make-concat-markup
(list
- (make-simple-markup (number->string (car count)))
+ (make-simple-markup
+ (number->string (car count)))
(make-simple-markup " ")
(make-simple-markup "–")
(make-simple-markup " ")
- (make-simple-markup (number->string (cdr count))))))
+ (make-simple-markup
+ (number->string (cdr count))))))
(else #f)))
(note-markup (if (and (not hide-note) count-markup)
(make-concat-markup