[email protected] wrote:
> I would like to develop some harmonica tablature using
> Lilypond. What I need is to put a one or two digit number
> above (possibly below instead) each note in the standard
> notation. I would like to have this happen automatically -
> ie whenever I enter a note in the usual manner the one or
> two digit number would appear as a tablature. Any
> suggestions on how I might accomplish this?
How are the numbers determined according to the notes?
Since you didn't mention that, I just used the
"ly:pitch-notename" value for each note. I'm sure this
isn't what you want, but this should at least give you an
idea of a reasonable approach.
Hope this helps.
- Mark
\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 <c e> <d f>
}
_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user