X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Ftranslation-functions.scm;h=7413f6875edcd7143a17712f727b4f993f37fd32;hb=cf11a6cd3300b5ed7e6cbe8c461adebc3bab1618;hp=4479d3ae1b24f51e87671fccdc99cf100f889715;hpb=c39d188d28fdc84cef8cbaea7b8d6e2fb718c30f;p=lilypond.git diff --git a/scm/translation-functions.scm b/scm/translation-functions.scm index 4479d3ae1b..7413f6875e 100644 --- a/scm/translation-functions.scm +++ b/scm/translation-functions.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; (c) 1998--2014 Han-Wen Nienhuys +;;;; (c) 1998--2015 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify @@ -38,38 +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*-public - ((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))) - -(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 = # - ;; 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 @@ -584,7 +569,7 @@ chords. Returns a placement-list." (define-public (fret-letter-tablature-format context string-number fret-number) (let ((labels (ly:context-property context 'fretLabels))) - (make-vcenter-markup + (make-translate-scaled-markup '(0 . -0.5) (cond ((= 0 (length labels)) (string (integer->char (+ fret-number (char->integer #\a))))) @@ -634,16 +619,19 @@ only ~a fret labels provided") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; bar numbers -(define-public ((every-nth-bar-number-visible n) barnum mp) +(define ((every-nth-bar-number-visible n) barnum mp) (= 0 (modulo barnum n))) +(export every-nth-bar-number-visible) -(define-public ((modulo-bar-number-visible n m) barnum mp) +(define ((modulo-bar-number-visible n m) barnum mp) (and (> barnum 1) (= m (modulo barnum n)))) +(export modulo-bar-number-visible) -(define-public ((set-bar-number-visibility n) tr) +(define ((set-bar-number-visibility n) tr) (let ((bn (ly:context-property tr 'currentBarNumber))) (ly:context-set-property! tr 'barNumberVisibility (modulo-bar-number-visible n (modulo bn n))))) +(export set-bar-number-visibility) (define-public (first-bar-number-invisible barnum mp) (> barnum 1)) @@ -688,43 +676,8 @@ only ~a fret labels provided") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; percent repeat counters -(define-public ((every-nth-repeat-count-visible n) count context) +(define ((every-nth-repeat-count-visible n) count context) (= 0 (modulo count n))) +(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)))