X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Ftranslation-functions.scm;h=0ed0deff0a24817edc4f53b42fb902313f0e75bc;hb=90e4d7057f3857da049dfda3d130017d4719bd6b;hp=22f8648c31e8c0dcaacdad9a4894c6ef057bd0fc;hpb=a9fa9784c0b21fe7de2738befc0a3bcc5f89ee4f;p=lilypond.git diff --git a/scm/translation-functions.scm b/scm/translation-functions.scm index 22f8648c31..0ed0deff0a 100644 --- a/scm/translation-functions.scm +++ b/scm/translation-functions.scm @@ -427,13 +427,21 @@ the current tuning?" (ly:warning (_ "No open string for pitch ~a") pitch))) ;; here we handle assigned strings - (let ((this-fret - (calc-fret pitch string tuning)) - (handle-negative - (ly:context-property context - 'handleNegativeFrets - 'recalculate))) - (cond ((or (and (>= this-fret 0) (integer? this-fret)) + (let* ((this-fret + (calc-fret pitch string tuning)) + (possible-fret? + (and (>= this-fret 0) + (if (and + (ly:context-property + context 'supportNonIntegerFret #f) + (null? rest)) + (integer? (truncate this-fret)) + (integer? this-fret)))) + (handle-negative + (ly:context-property context + 'handleNegativeFrets + 'recalculate))) + (cond ((or possible-fret? (eq? handle-negative 'include)) (set-fret! pitch-entry string finger)) ((eq? handle-negative 'recalculate)