X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Foutput-lib.scm;h=01e429cd195594cae2e3fcd202f3148bffdc7364;hb=f42142c17b68d84721597f8abf400fa18364b118;hp=51a45aab5567b222a1c41a3a86d094fed9580610;hpb=7ce94ab2bcd9d12b6f7e40020db4c51185fe99db;p=lilypond.git diff --git a/scm/output-lib.scm b/scm/output-lib.scm index 51a45aab55..01e429cd19 100644 --- a/scm/output-lib.scm +++ b/scm/output-lib.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 1998--2011 Jan Nieuwenhuizen +;;;; Copyright (C) 1998--2012 Jan Nieuwenhuizen ;;;; Han-Wen Nienhuys ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify @@ -159,10 +159,16 @@ (if (interval-empty? (interval-intersection stem_ph my_ph)) #f (coord-translate stem_ph dist))) #f)) +;; FIXME: NEED TO FIND A BETTER WAY TO HANDLE KIEVAN NOTATION (define-public (note-head::calc-duration-log grob) - (min 2 - (ly:duration-log - (ly:event-property (event-cause grob) 'duration)))) + (let ((style (ly:grob-property grob 'style))) + (if (and (symbol? style) (string-match "kievan*" (symbol->string style))) + (min 3 + (ly:duration-log + (ly:event-property (event-cause grob) 'duration))) + (min 2 + (ly:duration-log + (ly:event-property (event-cause grob) 'duration)))))) (define-public (dots::calc-dot-count grob) (ly:duration-dot-count @@ -226,6 +232,8 @@ and duration-log @var{log}." (string-append (number->string log) "petrucci"))) ((neomensural) (string-append (number->string log) (symbol->string style))) + ((kievan) + (string-append (number->string log) "kievan")) (else (if (string-match "vaticana*|hufnagel*|medicaea*" (symbol->string style)) (symbol->string style) @@ -233,9 +241,10 @@ and duration-log @var{log}." (symbol->string style)))))) (define-public (note-head::calc-glyph-name grob) - (let ((style (ly:grob-property grob 'style)) - (log (min 2 (ly:grob-property grob 'duration-log)))) - + (let* ((style (ly:grob-property grob 'style)) + (log (if (string-match "kievan*" (symbol->string style)) + (min 3 (ly:grob-property grob 'duration-log)) + (min 2 (ly:grob-property grob 'duration-log))))) (select-head-glyph style log))) (define-public (note-head::brew-ez-stencil grob) @@ -307,7 +316,7 @@ and duration-log @var{log}." (define-public (rhythmic-location<=? a b) (not (rhythmic-location=? a b) - (rhythmic-location? a b) (rhythmic-location digit 5) - (ly:input-message (ly:event-property event 'origin) - "Warning: Fingering notation for finger number ~a" - digit)) - (number->string digit 10))) (define-public (string-number::calc-text grob) @@ -890,7 +899,7 @@ and duration-log @var{log}." ;; dynamics (define-public (hairpin::calc-grow-direction grob) - (if (eq? (ly:event-property (event-cause grob) 'class) 'decrescendo-event) + (if (ly:in-event-class? (event-cause grob) 'decrescendo-event) START STOP))