[Top][All Lists]

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

Re: MIDI dynamics parsing error

From: Thomas Morley
Subject: Re: MIDI dynamics parsing error
Date: Sun, 18 May 2014 17:15:55 +0200

2014-05-18 16:18 GMT+02:00 David Kastrup <address@hidden>:
> Thomas Morley <address@hidden> writes:
>> 2014-05-18 12:28 GMT+02:00 David Kastrup <address@hidden>:
>>> Thomas Morley <address@hidden> writes:
>>>> 2014-05-18 7:20 GMT+02:00 David Kastrup <address@hidden>:
>>>>> Knute Snortum <address@hidden> writes:
>>>>>> My situation is I need to transcribe a crescendo starting without a 
>>>>>> dynamic
>>>>>> marking.  If I put in a \mf then I don't get warning.  If I can hide the
>>>>>> dynamic mark, all will be fine.  Is there a \hide syntax that will work?
>>>> Omitting the DynamicText.stencil will not cause the Hairpin to start as 
>>>> usual.
>>>> Resetting the parent of the Hairpin my work:
>>>> \version "2.18.0"
>>>> \score
>>>> {
>>>>   {
>>>>     \once \override Hairpin.after-line-breaking =
>>>>       #(lambda (grob)
>>>>          (let ((dyn-txt (ly:spanner-bound grob LEFT)))
>>>>            (ly:grob-set-property! dyn-txt 'stencil #f)
>>>>            (ly:spanner-set-bound! grob LEFT (ly:grob-parent dyn-txt X))))
>>>>     c'1\mf\> c' c'\!
>>>>   }
>>>>   \layout {}
>>>>   \midi {}
>>>> }
>>> If \omit is too strong and \hide leaves too much space, maybe overriding
>>> the stencil with point-stencil will work?
>> Using point-stencil doesn't work either.
>> \version "2.18.0"
>> \score
>> {
>>   {
>>    \override DynamicText.stencil = #point-stencil
>>     c'1\mf\> c' c'\!
>>   }
>>   \layout {}
>>   \midi {}
>> }
> Ok, I'll bite: what does "doesn't work" mean?  I see the same results
> for overriding with point-stencil and omitting, and those results are
> a) without error message
> b) looking as expected when compared to the version with visible \mf
> Either way, I find the stopping position of the hairpin somewhat
> strange/early, but it is exactly the same as it would be without
> override.
> --
> David Kastrup

Sorry if I was not clear enough.
I was looking for a method to circumvent the midi-error, but keep the
visual output.

Let me be a bit more verbose:

The following gives nice visual output, though triggers an error with midi:

  { c'1\> c' c'\! }

Inserting an expicit Dynamic resolves the midi-error, though, the
Hairpin starts at the right of the DynamicText, ofcourse.

  { c'1\mf\> c' c'\! }

Trying to remove the printed DynamicText via \hide or \omit or
#point-stencil, leaves the Hairpin untouched, i.e. starting to the
right of the now invisible or non-existent DynamicText-stencil.
(Little different with \hide)

  { c'1-\hide\mf\> c' c'\! }
  { c'1-\omit\mf\> c' c'\! }
  { c'1-\tweak #'stencil #point-stencil \mf\> c' c'\! }

The only way I've found to get back the output without the explicit
DynamicText was to set Hairpins left-bound to DynamicText-parent (and
setting DynamicText.stencil #f ofcourse).

    c'1\mf -\tweak #'after-line-breaking
                 #(lambda (grob)
                      (let ((dyn-txt (ly:spanner-bound grob LEFT)))
                        (ly:grob-set-property! dyn-txt 'stencil #f)
                        (ly:spanner-set-bound! grob LEFT
                          (ly:grob-parent dyn-txt X))))

    c' c'\!


reply via email to

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