|
From: | Nathan Ho |
Subject: | Re: Having shortInstrumentName appear at start of score (instead of instrumentName)? |
Date: | Tue, 31 Mar 2015 13:23:40 -0700 |
Hi,Let's say that I have a stylesheet that sets instrumentName values and shortInstrumentName values for a bunch of contexts in the normal way:\context {\Staff...instrumentName = \markup { Flute }shortInstrumentName = \markup { Fl. }}\context {\Staff...instrumentName = \markup { Oboe }shortInstrumentName = \markup { Ob. }}...QUESTION: is there a way to have the shortInstrumentName values appear at the start of the score (meaning that the instrumentName values will never appear)?The question looks pathological. (Why would you set a value for instrumentName if you don't want instrumentName to appear in the score?) But the motivation is as follows. I have a complex score that I've broken into multiple chunks (meaning separate LilyPond files with separate score blocks). All chunks \include the same stylesheet. But I want instrumentName to appear at the start of only chunk 1 (because chunk 1 is the start of the actual sore). For chunks 2, 3, ... I'd like shortInstrumentName to appear at the start of each "score" (because each non-first "score" is actually modeling subsequent parts of the one actual score).I can't imagine that there would be a setting for this. But is there some sort of Scheme wizardry that can be put at the beginning of each of the non-first score chunks to say "set instrumentName to the value of shortInstrumentName"?
shortInstrAsInstr = #(lambda (context)
(ly:context-set-property! context
'instrumentName (ly:context-property context 'shortInstrumentName)) '())
\new Staff \with {
instrumentName = "Viola"
shortInstrumentName = "Vla."
\consists \shortInstrAsInstr
} {
c1 c1 \break c1 c1
}
Regards,
Nathan
[Prev in Thread] | Current Thread | [Next in Thread] |