lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Show Key name and first note of song?


From: David Nalesnik
Subject: Re: Show Key name and first note of song?
Date: Sun, 3 Sep 2017 11:30:17 -0500

Hi David,

On Sun, Sep 3, 2017 at 12:51 AM, David F. <address@hidden> wrote:
> That is great! Just what I was looking for.
>
> Your patch isn’t extracting the tonic—it always returns ‘C’.  But I always 
> explicitly define the key, so your original code works like a charm.

Oops.

In any case, all you'd have to do is modify the function like so:

#(define-markup-command (firstNoteAndKey layout props mus)
   (ly:music?)
   (let* ((keey (extract-named-music mus 'KeyChangeEvent))
          (tonic
           (if (pair? keey)

[...snip...]


>
> Thanks!
>
> David
>
> On Sep 2, 2017, at 7:25 AM, David Nalesnik <address@hidden> wrote:
>
>> On Sat, Sep 2, 2017 at 8:09 AM, David Nalesnik <address@hidden> wrote:
>>> Hi David,
>>>
>>> On Sat, Sep 2, 2017 at 12:25 AM, David F. <address@hidden> wrote:
>>>> I have a hymnal that prints the name of the key and the first note the 
>>>> song above the treble clef sign of the first staff.  So, for example, if 
>>>> you have Amazing Grace in the key of G major, the first note of the 
>>>> soprano (melody) part is a D.  That is printed as “G/D”.
>>>>
>>>> Can lilypond do that?  I thought I had seen an example of that somewhere, 
>>>> but I can’t find it now.
>>>>
>>>
>>> I don't know where you saw this on the lists, but attached you'll find
>>> a solution.
>>>
>>
>> The original code will break if there's no explicit key set.
>>
>> Patch:
>>
>> #(define-markup-command (firstNoteAndKey layout props mus)
>>   (ly:music?)
>>   (let* ((keey (extract-named-music mus 'KeyChangeEvent))
>>          (tonic
>>           (if (ly:music? keey)
>>               (ly:music-property (car keey) 'tonic)
>>               (ly:make-pitch 0 0)))
>>          (notes (extract-named-music mus 'NoteEvent))
>>          (first-ne (car notes))
>>          (first-pitch (ly:music-property first-ne 'pitch)))
>>     (interpret-markup layout props
>>       (make-concat-markup
>>        (list
>>         (format-key first-pitch)
>>         "/"
>>         (format-key tonic))))))
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]