[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Wrong type argument
From: |
Thomas Morley |
Subject: |
Re: Wrong type argument |
Date: |
Thu, 4 Sep 2014 10:24:48 +0200 |
2014-09-03 9:17 GMT+02:00 James <address@hidden>:
> On 02/09/14 21:58, Thomas Morley wrote:
>> 2014-09-02 12:44 GMT+02:00 MING TSANG <address@hidden>:
>>> James & Phil:
>>> I comment out line 421 which call solfege-engravers - both versions run ok.
>>> Un-comment out line 421 - v2.19.12 run ok; but fails with v2.19.13.
>>> I don't know scheme. I cannot not begin debug.
>>> Appreciated if you can help.
>>> Emmanuel,
>>> Ming.
>>
>> It's more an issue with NullVoice, than with the solfege-engraver.
>> In NullVoice the following line returns an empty list:
>> (tonic-pitch (ly:context-property context 'tonic))
>> Seems 'tonic is not "known" in NullVoice.
>>
>> Can't help more, I didn't follow the discussion about NullVoice close
>> enough and my computer is still broken, acting as a guest on another
>> computer (until I've the money to buy a new one ...)
>>
>> Nevertheless, here a boiled down code
>> (The engraver will cause some terminal-output, all other functionality
>> is commented)
>>
>>
>> \version "2.19.13" % work on v2.19.12 but failes with v2.19.13
>>
>> #(define numR➀ '("➀" "➁" "➂" "➃" "➄" "➅" "➆"))
>>
>> #(define (solfege-engraver lst dir)
>> (make-engraver
>> (acknowledgers
>> ((note-head-interface engraver grob source)
>> (let* (
>> (context (ly:translator-context engraver))
>> (tonic-pitch (ly:context-property context 'tonic))
>> ; (tonic-index (ly:pitch-notename tonic-pitch))
>> (event (ly:grob-property grob 'cause))
>> (event-copy (ly:event-deep-copy event))
>> (grob-pitch (ly:event-property event 'pitch))
>> (grob-index (ly:pitch-notename grob-pitch))
>> ; (delta (modulo (- grob-index tonic-index) 7))
>> ; (name (list-ref lst delta))
>> ; (newgrob (ly:engraver-make-grob engraver 'TextScript
>> event-copy))
>> )
>>
>> (newline)
>> (display tonic-pitch)
>>
>> ;; clear 'tweaks for newgrob
>> ;; (ly:event-set-property! event-copy 'tweaks '())
>> ; (if (string= name "Hb") (set! name "B"))
>> ;; Give newgrob 'outside-staff-priority depending on
>> ;; grob 'staff-position
>> ; (set! (ly:grob-property newgrob 'outside-staff-priority)
>> ; (+ (ly:grob-property newgrob 'outside-staff-priority)
>> ; (* dir (ly:grob-property grob 'staff-position))))
>> ; (set! (ly:grob-property newgrob 'text) name)
>> ; (set! (ly:grob-property newgrob 'direction) dir)
>> )))))
>>
>>
>> \layout {
>> \context {
>> \NullVoice
>> \consists #(solfege-engraver numR➀ UP)
>> }
>> }
>>
>> \new Staff
>> \new NullVoice
>> { d'4 }
>>
>>
>>
>> Cheers,
>> Harm
>>
>
>
> Is it because NullVoice is has now been moved in terms of its context
> 'position' (if that is the right word)?
>
> http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commit;h=fc8c2d680464130af497c386ed5f0033d3fd7470
>
> (ccing - bug in case this is a bug or not).
>
> James
>
>
Hi James,
partly undoing the patch infile with adding
\layout {
\context {
\Staff
\accepts NullVoice
}
}
works.
Though, I'm not sure it's a bug. I doubt it make much sense to add an
engraver like the solfege-engraver to NullVoice.
I've the feeling it negates the sense of NullVoice.
Nevertheless, thanks for the hint.
Cheers,
Harm