Hello Aaron,

thanks for the quick and detailed answer!

You wrote:
> The Dynamic_performer is part of the Voice context; and the
> construct << ... \\ ... >> implicitly creates new Voice contexts.

That is what I had assumed: the voice context _initializes_ its dynamics
to the default value regardless of any outer contexts (that have no
dynamic performer, by the way).

> [...]
> \consisting the Dynamic_performer to the Staff (and \removing it
> from the Voice) should apply the current logic to the wider scope

This sounds logical.

But what I do not get is why the contexts do not nest. A staff should
have a dynamic performer that is _inherited_ by explicit and implicit
voices within that staff.  The settings from the outer (staff) context
are taken over unless the inner context (voice) changes some setting.
The scope of this change is, of course, the inner context.

The same logic applies to variables in scoped programming languages:
inner definitions shadow outer definitions, but if there is no inner
definition, the outer definition is visible.

Hence: in my opinion the dynamics should be a setting that may be
overridden in embedded contexts; if not, it retains the outer setting.


        Best regards,

                Thomas

Reply via email to