On Mon, Sep 15, 2014 at 6:55 PM, David Nalesnik <[email protected]>
wrote:

> Hi Jay,
>
> On Mon, Sep 15, 2014 at 4:27 AM, Jay Vara <[email protected]> wrote:
>
>> > I'm not top posting.
>>
>> NoteNames will print the higher (and lower) octave names with
>> printOctaveNames set to true. It prints them as c', d', c, d, etc.
>>
>> My question is: Is it possible to have the higher octaves print using a
>> different character, say C D E F etc rather than c', d', e', f'.
>>
>>
> Yes, it is possible to do this by modifying the stencil of the NoteName
> grob.  I'm not sure what your system is, so I thought I'd show how you
> might convert Lilypond's pitch representation into the familiar C4=middle C
> system.  You could probably adapt it to your needs.
>
> This only works with single notes at the moment, but I'll fiddle around
> with it some more.
>
>
Well, this looks a lot better.

But you'll notice that it ignores the other two notes in the initial chord.
 I wonder if this needs a Scheme engraver...

 \version "2.18.2"

pitches = \relative c,, {
  \clef bass
  <c e g> c' c' c'
  \clef treble
  c' c' c' c'
}

\new Staff {
  <<
    \pitches
    \context NoteNames {
      \set printOctaveNames = ##t
      \override NoteName.stencil =
      #(lambda (grob)
         (let* ((cause (event-cause grob))
                (pitch (ly:prob-property cause 'pitch))
                (oct (ly:pitch-octave pitch))
                (name (note-name->markup pitch #f))
                (num (+ 4 oct))
                (num-text (number->string num))
                (full-name (make-concat-markup (list name num-text))))
           (grob-interpret-markup grob full-name)))
      \pitches
    }
  >>
}
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to