From 2ab74d973d0b3ade2b5e0a669a22415b56edb5d3 Mon Sep 17 00:00:00 2001 From: Neil Puttock Date: Thu, 20 Aug 2009 00:41:56 +0100 Subject: [PATCH] Move translation functions from output-lib.scm -> translation-functions.scm * tablature formatters * bar number visibility functions * repeat count visibility functions --- scm/output-lib.scm | 73 --------------------------------- scm/translation-functions.scm | 77 ++++++++++++++++++++++++++++++++++- 2 files changed, 76 insertions(+), 74 deletions(-) diff --git a/scm/output-lib.scm b/scm/output-lib.scm index 142a2d0341..444f77df06 100644 --- a/scm/output-lib.scm +++ b/scm/output-lib.scm @@ -46,50 +46,6 @@ (ly:text-interface::interpret-markup layout props text))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; tablature - -;; The TabNoteHead tablatureFormat callback. -;; Compute the text grob-property -(define-public (fret-number-tablature-format string context event) - (let* ((tuning (ly:context-property context 'stringTunings)) - (pitch (ly:event-property event 'pitch)) - (is-harmonic (apply - functional-or - (map - (lambda (ev) - (eq? 'harmonic-event (ly:event-property ev 'class))) - (ly:event-property event 'articulations))))) - - (make-whiteout-markup - (make-vcenter-markup - (format - "~a" - (- (ly:pitch-semitones pitch) - (list-ref tuning - ;; remove 1 because list index starts at 0 - ;;and guitar string at 1. - (1- string)))))))) - -;; The 5-string banjo has got a extra string, the fifth (duh), which -;; starts at the fifth fret on the neck. Frets on the fifth string -;; are referred to relative to the other frets: -;; the "first fret" on the fifth string is really the sixth fret -;; on the banjo neck. -;; We solve this by defining a new fret-number-tablature function: -(define-public (fret-number-tablature-format-banjo string context event) - (let* ((tuning (ly:context-property context 'stringTunings)) - (pitch (ly:event-property event 'pitch))) - - (make-whiteout-markup - (make-vcenter-markup - (let ((fret (- (ly:pitch-semitones pitch) (list-ref tuning (1- string))))) - (number->string (cond - ((and (> fret 0) (= string 5)) - (+ fret 5)) - (else fret)))))))) - - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; note heads @@ -192,35 +148,6 @@ (- radius stem-thickness) 0 #t))) letter))))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; bar numbers - -(define-public ((every-nth-bar-number-visible n) barnum) - (= 0 (modulo barnum n))) - -(define-public ((modulo-bar-number-visible n m) barnum) - (and (> barnum 1) (= m (modulo barnum n)))) - -(define-public ((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))))) - -(define-public (first-bar-number-invisible barnum) (> barnum 1)) - -(define-public (all-bar-numbers-visible barnum) #t) - - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; percent repeat counters - -(define-public ((every-nth-repeat-count-visible n) count context) - (= 0 (modulo count n))) - -(define-public (all-repeat-counts-visible count context) #t) - - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; break visibility diff --git a/scm/translation-functions.scm b/scm/translation-functions.scm index eefa9c0806..fb8ccac3c5 100644 --- a/scm/translation-functions.scm +++ b/scm/translation-functions.scm @@ -5,7 +5,10 @@ ;;;; (c) 1998--2009 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; metronome marks + (define-public (format-metronome-markup text dur count context) (let* ((hide-note (eq? #t (ly:context-property context 'tempoHideNote)))) (metronome-markup text dur count hide-note))) @@ -80,7 +83,6 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Bass figures. -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-public (format-bass-figure figure event context) (let* ((fig (ly:event-property event 'figure)) @@ -162,6 +164,7 @@ )) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; fret diagrams @@ -369,3 +372,75 @@ (sort notes note-pitch>?)) string-fret-fingering-tuples) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tablature + +;; The TabNoteHead tablatureFormat callback. +;; Compute the text grob-property +(define-public (fret-number-tablature-format string context event) + (let* ((tuning (ly:context-property context 'stringTunings)) + (pitch (ly:event-property event 'pitch)) + (is-harmonic (apply + functional-or + (map + (lambda (ev) + (eq? 'harmonic-event (ly:event-property ev 'class))) + (ly:event-property event 'articulations))))) + + (make-whiteout-markup + (make-vcenter-markup + (format + "~a" + (- (ly:pitch-semitones pitch) + (list-ref tuning + ;; remove 1 because list index starts at 0 + ;;and guitar string at 1. + (1- string)))))))) + +;; The 5-string banjo has got a extra string, the fifth (duh), which +;; starts at the fifth fret on the neck. Frets on the fifth string +;; are referred to relative to the other frets: +;; the "first fret" on the fifth string is really the sixth fret +;; on the banjo neck. +;; We solve this by defining a new fret-number-tablature function: +(define-public (fret-number-tablature-format-banjo string context event) + (let* ((tuning (ly:context-property context 'stringTunings)) + (pitch (ly:event-property event 'pitch))) + + (make-whiteout-markup + (make-vcenter-markup + (let ((fret (- (ly:pitch-semitones pitch) (list-ref tuning (1- string))))) + (number->string (cond + ((and (> fret 0) (= string 5)) + (+ fret 5)) + (else fret)))))))) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bar numbers + +(define-public ((every-nth-bar-number-visible n) barnum) + (= 0 (modulo barnum n))) + +(define-public ((modulo-bar-number-visible n m) barnum) + (and (> barnum 1) (= m (modulo barnum n)))) + +(define-public ((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))))) + +(define-public (first-bar-number-invisible barnum) (> barnum 1)) + +(define-public (all-bar-numbers-visible barnum) #t) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; percent repeat counters + +(define-public ((every-nth-repeat-count-visible n) count context) + (= 0 (modulo count n))) + +(define-public (all-repeat-counts-visible count context) #t) -- 2.39.5