Reinhold Kainhofer <reinh...@kainhofer.com> writes:

> On 26/09/2012 14:34, David Kastrup wrote:
>> David Kastrup <d...@gnu.org> writes:
>>
>>> Werner LEMBERG <w...@gnu.org> writes:
>>>
>>>>>> It would be tremendously helpful if you can show possible syntax
>>>>>> *alternatives* instead of just pretending to be a naysayer.
>>>>> I've posted actual working definitions for that purpose.
>>>> It seems I've missed that, lost in the many examples you've given to
>>>> demonstrate what doesn't work.
>>>>> They would definitely simplify the kind of entry you are asking for.
>>>> Please repeat.
>>> Sigh.
>>>
>>> at =
>>> #(define-music-function (parser location time event music)
>>>   (ly:duration? ly:music? ly:music?)
>>>   "Place @var{event} at a relative duration @var{time} in relation
>>> to @var{music}."
>>>   #{ << { \skip $time <>$event } $music >> #})
>>>
>>> {
>>>   \at 4 \<
>>>   \at 1*2/3 \!
>>>   c'1\p
>>> }
>> [12 days later, and no followup again]
>>
>> Let's just continue pretending me to be a naysayer then.
>
> You demonstrated that a solution is possible, but quite inconsistent with
> the lilypond language: You have to write the dynamic BEFORE the note,
> although it should be printed AFTER the note...

One can, of course, exchange the order of arguments.  However, then
adding several arguments becomes more awkward:

at =
#(define-music-function (parser location music event time)
  (ly:music? ly:music? ly:duration?)
  "Place @var{event} at a relative duration @var{time} in relation
to @var{music}."
  #{ \context Voice << { \skip $time <>$event } $music >> #})

{
  \at {
       \at { c'1\p } \< 4
      } \! 1*2/3
}

In this case, we might get the same result, however, by specifying the
second duration not in relation to the "main" event but to the already
delayed event:

after =
#(define-music-function (parser location music time event)
  (ly:music? ly:duration? ly:music?)
  "Place @var{event} at a relative duration @var{time} in relation
to @var{music}."
  #{ \context Voice << { \skip $time <>$event } <>$music >> #})

{
  \after { c'1\p } 4 \after \< 1*1/6 \!
}

This is now in "time order" but I am not really convinced that it is
less confusing.

-- 
David Kastrup


_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to