"Set local properties: globally" and then change the property locally

I think I understand the way Dorico approaches this—when you set a local property as global, it moves to the global settings and that item can no longer be changed locally, without undo-ing the global property.

My current approach to dialogue in theatre score, where it needs to appear on the Score, the Piano/Vocal, and the Piano/Conductor, is using staff-attached text on the top vocal line, when available, or staff-attached text on both the rehearsal piano staff (Piano/Vocal) and the Piano/Conductor staff when there is no vocal. This is fine, but in the latter scenario, I need to hide one of the dialogue texts on the score, and if I have to change it, I have to change it in both places.

Slightly more ideal would be to have it as a system-attached text, where I can then hide the dialogue (a local property) with Set Local Properties: Globally enabled, and then be able to un-hide it in those two part layouts. If I use system-attached text now, I have to hide it locally in 10-20 part layouts.

Another approach to this would be group-attached text, which might have use for some very specific use cases but probably not enough to justify the whole can of worms. The wildest option would be having “locally/globally” be supplemented by an optional popout window with a checkbox list that allows you to specify which layouts received that change in properties and if it would be default for any new layouts created. Sounds like a Dorico 12 feature.

I don’t expect any of this to take priority, and the current setup works fine, but I couldn’t find any discussion of this question so I thought I’d raise it in case it’s something others could benefit from as well.

Funnily enough I was having a similar thought about this just yesterday. My understanding is that with properties that have both a switch and a dropdown (or a switch and a separately settable value) there is the possibility to set globally then alter the value locally. This means that, for instance, one can scale an object globally then scale it normally (but still as an override) locally in the score layout.

I’m not sure why Hide Text is just a switch, but, at least from a UI perspective, it would be nice if it could be hooked up as a Visibility switch with a Show/Hide dropdown.

1 Like

I would call it “overriding” rather than undoing. If a local property exists, it can always override a preference setting (and be turned off to stop overriding it). You can set a switch in Properties with Global scope (on the right side of Properties) and then change the same switch in one layout at a time with Local scope.

That’s the problem: with switches such as the one for Hide Text, you can’t, because turning off the switch - and thus turning off the override - is global. It’s the dropdowns and values that can be set independently, not the position of the switch.

1 Like

This bit me today, and I wish there were a way around it.

Conceptually, it seems to me that there should be a difference between where a property is defined and where it is set. A property defined at the global level could only be set globally, but a property defined at the local level could either be set locally or globally (i.e., locally in all scopes). So if I want to show something only in one layout, I could go to that layout and hide it globally but then show it locally.

But as the OP notes, this doesn’t appear to be how Dorico thinks of things (at least for some properties). Even though Hide is initially a local property, setting it globally also turns it into a global property, and it can’t be overridden locally.

1 Like

If I use system-attached text now, I have to hide it locally in 10-20 part layouts.

But that’s not possible!

I’m having exactly this problem right now, with Stage Directions that I had defined as system text, and which needs to apear in Full and Vocal scores but not in orchestral parts. Having finished the piece, I hadn’t relaised that system text can’t be selectively hidden in different layouts… so I’m at a conundrum of what to do… I have 30 parts to make, so for the moment I’ve just hidden it all, and it’s gone from the scores too. It’s quite frustrating. As you say, also frustrating is that the hide toggle for staff text doesn’t function as you would expect. While doing parts I am adding extra instrument change labels etc that I don’t want to appear in the score… Within the part layout I ought to be able to select Global, toggle hide ON and then select Local and toggle hide off, so that it only shows in the part and not in the score. But that doesn’t work — I have to then painstakingly go through the score and find all these new labels and hide them there. Praying that these gets addressed in future updates (along with staff spacing being attached to page number… that’s a killer…!)

Do you have Signposts set to be visible? Because if that’s the case, you can quite easily hide a system text occurence everywhere (properties set to global), then turn it to local, press W to go to the full score at the exact musical place where you were and select the signpost for system text, change the property to visible… (For faster processing, I would do the first step in the vocal score, so that I don’t have to switch to any other part but vocal score and full score to perform this task)
Of course, an option to automate it would be nice (but certainly not easily usable…) but in the meantime this does work.

No, system text only has a global hide — it is not locally setable. If I hide it globally, then switch to local and try to unhide it on one layout, it will unhide it on all layouts.

1 Like

Oh sorry, I never tried it… So staff text it is :person_shrugging:

yeah, it seems like a small thing, but it makes a huge difference, at least for me making music theatre scores :-/

1 Like

I usually put such directions above the top showing vocal part (in the score) or (when it is an instrumental section only) above the rehearsal piano part as well.

Yes, it’s kind of a pain, because in the full score it needs to be above the top most instrument (and with hidden staves or a flute doubling piccolo, this keeps changing from page to page), and in the vocal score above the vocal lines, so one ends up having to duplicate them in different places, and it quickly becomes messy. Also a pain for condensing later.

Actually my solution really is to keep them as system text, and do my scorre layouts with them showing, then hide them for doing my parts, and then when I go to print my scores, I will unhide them and hope that everything has retained its correct position…

1 Like

I usually have my vocal parts at the top in contrast to putting them above the strings, so that helps.

Genius. I just tested, it does retain position. This is a fabulous workaround. Thank you!

1 Like

I have a follow-on to this. The help section for Propagate Properties sounds like it will do what I want – copy a local setting from one layout to all layouts. (“You can copy the properties set on notes and items to all other layouts and frame chains in which they appear.”)

Unfortunately, what Propagate Properties actually seems to do is take a property which is set locally and set it globally instead – which then makes it a global property, and it can’t be changed locally in a specific layout. (As @pianoleo notes, I’m talking here about “switch” properties, like “Hide”.)

You can still set a property locally in an individual layout after using Propagate Properties. Set Set local properties back to Locally and you can then change the value in one layout without affecting the others.

Not for the “switch” properties that I’m interested in.

  1. Create a Staff Text item in the score
  2. In the score, with “Set local properties” set to “Local”, hide the item – item remains visible in the part (as expected)
  3. In the score, select the signpost for the item and Propagate Properties – item is hidden in both score and part (as expected)
  4. In the score or the part, select the signpost for the item – “Hide” is now only available as a Global property and cannot be set locally in either layout

This is the same as if I had set “Set local properties” to “Globally” and then hidden the item.

Hi @asherber, there is a difference between the properties switches and the values or check boxes, in relation to Local vs Global. If some switches text shows as Bold White it means that switch acts globally, and if you switch it off it will be done globally (this happens when you chang that property with Globally activated, or if you propagated that property). But even in a Bold White switch property that has changeable values or a checkboxe, you are able to change them locally setting the scope to Locally.

Can you say a little more about what your final goal is, referring to your example? Is a system text or a staff text that you want to hide/unhide?
Because if the text is staff text, you don’t need to use Globally, and if it is a system text, you can hide it from score only, using Locally.

If you use propagate properties with staff text (and the properties are now Bold White=Global, as in your example), you would just need to set the score to Locally, deactivate the switch and reactivate it, and the property (Hide) will be only local.

Well, the example I gave was just a simple way to demonstrate what’s going on – my actual current use case doesn’t involve text.

Yes and no. After I propagate properties, the Hide property becomes global; you can confirm this by setting the toggle to “Show Global Only”. So I can only toggle it off globally – at which point, yes, it becomes a local property again, but that doesn’t help me.

I still maintain, as I said earlier:

Conceptually, it seems to me that there should be a difference between where a property is defined and where it is set . A property defined at the global level could only be set globally, but a property defined at the local level could either be set locally or globally (i.e., locally in all scopes). So if I want to show something only in one layout, I could go to that layout and hide it globally but then show it locally.

But right now, if a local property is set globally (at least for “switch” properties like “Hide”), it behaves as though it were defined as a global property and can no longer be overridden locally. I think the key point in my graf above is that setting a locally defined property globally should ideally work by setting it locally in all scopes, not by converting it to a global property.

My actual current use case involves bar numbers; it’s a little hard to explain, but I’ll try to do it succinctly. I have a flow with bars 1-5, 5a, and 6-10, and in general I only show bar numbers at the start of a system. I’d like the bar number for 5a to show up in all layouts, because it’s different, but I want to globally hide the number for 6. This much is easy.

image

But if m.6 happens to fall at the start of a system in a particular layout, then I do want to see it, just like the number at the start of every system. The problem is that even though “Hide bar number” is a local property, once I set it globally or use propagate properties, it becomes a global property – and I can’t display it in just one layout. (Edit: Can’t easily display it. I’d have to show it globally and then hide it locally in all the layouts where I don’t want it, as others have noted in this thread.)

(I will probably work around this by adding a staff text bar number using the bar number font, which I will then hide in the score.)

The hide globally/show locally dance was very common in Finale – and I have to say it’s the first Finale feature I really find myself missing!

1 Like

I see your point here, and I agree that some “unhide/show only in this layout” functionality (this is finally what you need to obtain here) or your suggested behaviour of propagate properties to set the property locally in all scopes instead of “globalising” it for example, would be desirable in some cases.

(I hope I didn’t misunderstood, it is late. Time for bed :slight_smile:

2 Likes