\version "2.13.19" #(define (NoteEvent? music) (equal? (ly:music-property music 'name) 'NoteEvent)) #(define (EventChord? music) (equal? (ly:music-property music 'name) 'EventChord)) #(define (get-notename NoteEvent) (ly:pitch-notename (ly:music-property NoteEvent 'pitch))) #(define (make-textscript dir txt) (make-music 'TextScriptEvent 'direction dir 'text txt)) #(define (make-tab-number NoteEvent) (make-textscript UP (number->string (get-notename NoteEvent)))) #(define (make-tab-numbers EventChord) (let ((elts (ly:music-property EventChord 'elements))) (map make-tab-number (filter NoteEvent? elts)))) #(define (add-tab-numbers music) (if (EventChord? music) (set! (ly:music-property music 'elements) (append (ly:music-property music 'elements) (make-tab-numbers music)))) music) harmonicaTab = #(define-music-function (parser location music) (ly:music?) (music-map add-tab-numbers music)) \relative c' \harmonicaTab { c d }