\version "2.21.0" harmonicByFret = #(define-music-function (fret music) (number? ly:music?) (_i "Convert @var{music} into mixed harmonics; the resulting notes resemble harmonics played on a fretted instrument by touching the strings at @var{fret}.") #{ \set harmonicDots = ##t \temporary \override TabNoteHead.stencil = #(tab-note-head::print-custom-fret-label (number->string fret)) \temporary \override NoteHead.Y-extent = #grob::always-Y-extent-from-stencil \temporary \override NoteHead.stencil = #(lambda (grob) (ly:grob-set-property! grob 'style 'harmonic-mixed) (ly:note-head::print grob)) \set minimumFret = #(ly:pitch-semitones (ly:prob-property (calc-harmonic-pitch (fret->pitch (number->string 12)) (make-music 'NoteEvent 'pitch (ly:make-pitch 0 0))) 'pitch)) #(make-harmonic (calc-harmonic-pitch (fret->pitch (number->string fret)) music)) \unset minimumFret \unset harmonicDots \revert TabNoteHead.stencil \revert NoteHead.Y-extent \revert NoteHead.stencil #}) music = { c4 d e f g a b c' \bar "||" \harmonicByFret #12 g, \harmonicByFret #7 g, \harmonicByFret #5 g, } << \new TabStaff { \set TabStaff.stringTunings = \stringTuning \music } \new Staff { \clef bass \music } >>