(define-public (fret-board::calc-stencil grob)
(let* ((string-frets (ly:grob-property grob 'string-fret-finger-combinations))
- (string-count (ly:grob-property grob 'string-count)))
+ (string-count (assoc-get
+ 'string-count
+ (ly:grob-property grob 'fret-diagram-details)
+ 6)))
- (grob-interpret-markup grob
- (make-fret-diagram-verbose-markup
- (string-frets->description string-frets string-count)))))
+ (grob-interpret-markup
+ grob
+ (make-fret-diagram-verbose-markup
+ (string-frets->description string-frets string-count)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; scripts
b))
(let*
((tunings (ly:context-property context 'stringTunings))
+ (details (ly:grob-property grob 'fret-diagram-details))
(minimum-fret (ensure-number
(ly:context-property context 'minimumFret) 0))
(max-stretch (ensure-number
minimum-fret max-stretch
tunings)))
-
- (set! (ly:grob-property grob 'string-count) (length tunings))
- (set! (ly:grob-property grob 'string-fret-finger-combinations) string-frets)
-
- ))
+ (set! (ly:grob-property grob 'fret-diagram-details)
+ (if (null? details)
+ (acons 'string-count (length tunings) '())
+ (acons 'string-count (length tunings) details)))
+ (set! (ly:grob-property grob 'string-fret-finger-combinations) string-frets)))
(define-public (determine-frets-mf notes string-numbers
minimum-fret max-stretch