Kieren MacMillan wrote:
Yes… but each of your four codes is telling Lilypond the same thing. ;)
Ahh - because "\once \override" applies not to the following text, but to the
musical moment, right?
Exactly. And the order of items within that moment doesn’t change their
priority order.
These conclusions puzzled me and, being unfamiliar with ornaments, I
consulted the 2.19 docs. And I stayed puzzled until I found that of the
47 definitions in script.scm, nine assign a script-priority.
In particular, \trill gets 2000 and \upbow gets 150 (as does \downbow).
Attached are four pairs of cases:
A
Just \upbow and \downbow without any override. They both have 150.
The docs say:
> When two objects have the same priority,
> the order in which they are entered determines which one comes first.
B
The original first case re \trill and \upbow.
The entry order is ineffective because their default priorities differ.
C
The second original case with the overrides.
These overrides are ineffective because \trill and \upbow are not
TextScripts. So this case ends up like B.
D
The second original case but with effective overrides.
Because an override applies to the musical moment, both the \trill and
the \upbow are given the same priority. So this case ends up like A.
(And the particular priority value is irrelevant.)
Cheers,
Robin
\version "2.19.83"
{ f'4\downbow\upbow( e')
f'4\upbow\downbow( e') }
{ f'4\trill\upbow( e')
f'4\upbow\trill( e') }
{ \once \override TextScript.script-priority = #-100
f'4\trill\upbow( e')
\once \override TextScript.script-priority = #-100
f'4\upbow\trill( e') }
{ \once \override Script.script-priority = #-100
f'4\trill\upbow( e')
\once \override Script.script-priority = #-100
f'4\upbow\trill( e') }