lilypond-user
[Top][All Lists]
Advanced

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

Re: Scheme function question


From: David Kastrup
Subject: Re: Scheme function question
Date: Fri, 22 Nov 2013 13:58:52 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

David Kastrup <address@hidden> writes:

> James Worlton <address@hidden> writes:

>> I expect it to just output a scale with a double-stemmed g.

[slightly fixed code quoted]

>> \version "2.17.95"
>>
>> doubleStem =
>> #(define-music-function
>>   (parser location note)
>>   (ly:music?)
>>   #{
>>     << { \voiceOne $note } \new Voice { \voiceTwo $note } >> \oneVoice
>>   #})
>>
>> melody = \relative c' {
>>   c4 d e f
>>   \doubleStem g a b c
>> }
>>
>> \score {
>>   \new Staff \melody
>> }
>
>> I can work around this by adding \absolute before #note in the
>> function (and remembering to use absolute mode in the input), but it
>> would be nice if the function would produce the correct output. What
>> am I doing wrong?
>
> \relative is icky in this situation anyway: if you use \doubleStem g',
> you'll get a similar problem.  There is the make-relative macro, but it
> only works on single pitches rather than whole music.  Maybe I need to
> extend it.

See issue 3673.  If that makes it in, you can do

doubleStem =
#(define-music-function
  (parser location note)
  (ly:music?)
  (make-relative (note) note
  #{
    << { \voiceOne $note } \new Voice { \voiceTwo $note } >> \oneVoice
  #}))

and the behavior in- and outside of \relative will be just as you would
expect.

-- 
David Kastrup




reply via email to

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