Hi,

I haven't a working solution, but some thoughts:
The \applyContext is one event in time, so you can set context-properties 
*once*.
This might be a case for a midi-performer. This is an engraver inside the 
midi-block, so it should be possible to create a scheme-performer to set the 
midiExpression property inside the Staff context.
--- this is not an easier way! And I don't have a computer nearby right now, to 
test, if moving the dynamic performer into another context helps.
Another approach might be a music-function, that produces SimultaneousMusic 
with the note(s) and the dynamic midi events in separate streams. ( e.g. << { 
\music } { \dynamicevents } >> )

Just some thoughts right now.
I am quite busy right now, so if there are no helpful answers within two weeks, 
you can ask me again and I can provide some code.

Jan-Peter

Am 26. Juli 2016 00:51:49 MESZ, schrieb "H. S. Teoh" <[email protected]>:
>Hi,
>
>I have a Scheme function that returns a music expression.
>Unfortunately,
>the expression returned depends on the properties of the context it's
>evaluated in. I.e., based on the current setting of
>Staff.dynamicAbsoluteVolumeFunction it will return a different number
>of
>events in the music expression.
>
>Is this possible?
>
>The background of this is that I'm writing a Scheme function that
>generates single-note crescendos by emitting a series of \set
>Staff.midiExpression = ... events. Currently I've written a Scheme
>function that's able to generate these events; however, it requires me
>to specify numerical starting / ending values for midiExpression. I'd
>like to be able to specify dynamics instead of numerical values, and
>have the Scheme function automatically look up the numerical values
>based on the current volume function defined for the Staff.
>
>However, so far I haven't been able to figure out how to read the Staff
>properties except using \applyContext with a lambda, and AFAICT it's
>not
>possible to return a music expression from this lambda?
>
>Or is there another (hopefully simpler?) way to achieve what I want?
>
>
>--T
>
>_______________________________________________
>lilypond-user mailing list
>[email protected]
>https://lists.gnu.org/mailman/listinfo/lilypond-user

-- 
Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to