Open tiamottu opened 1 year ago
See also https://musescore.org/en/node/289326 and #6145
Just a quick brain storm: Maybe the stave properties could become section-specific. If a score has several sections, tabs for each section appear in the stave properties.
In this example the Horn, which has nothing to play in the second movement, would always hide there:
Thanks so much for this detailed summary @tiamottu. This is definitely on our radar for implementation at some point in the future; we just need to consider when it will be best to develop it.
Placing it on our shortlist for now. Thanks!
This would be immensely helpful for my stuff like this score (https://musescore.com/user/33501277/scores/7154091) in the future, especially if there was an easy way to combine individual files into a big one like this one. It would save me an immense amount of work in the future if this was finished by the time I finish my next big project like this one
The ability to combine multiple scores is pretty important. I don't even care if it's shipped as an external tool for the time being. However what's been asked here seems a level above that - i.e. the ability to have "movements" within a score, where each movement has different properties around hiding instruments etc. Definitely also useful, but not the same thing - I just need to merge what had to be split into multiple mscz files for technical reasons into one continuous movement, whereby any score-wide settings are simply taken from the first file. It seems to me this deserves its own github issue?
Your idea
I'm aware MuseScore 4 is already a massive re-design of the app and includes, and will include in its .1, .2, etc... releases, major improvements and new features. So I hope this doesn't weigh the pile even more. Anyway, I think it would be nice to have more control on which instruments in a larger work belong in which movement of that work, so that they disappear when they are not needed not on a measure but on a movement basis. You "create" all the instruments at the start, and then you can specify in each movement, which would be separated by the others by section breaks I think, which of these instruments are to appear there; those instruments will show on every system of that movement, even if their measures in that system are all empty, but they won't automatically show in all the other movements. Some applications of this:
Let's say you're engraving a Vinci opera, and the overture calls for horns which will be used only in the first and third section of the overture and in two or three other arias down the line, but would just take unnecessary space in every other section of the opera.
Or in a Handel aria where you have violins and viola in the A part, but in the B part you have only voice and continuo, and then the ritornello is played again with violins and viola too, so it would be kind of inelegant and confusing not to show the violins and viola staffs in that second system. In the Chrysander edition, which adopts the system I'm proposing, it looks like this:
These are, by the way, just examples I'm familiar with. Someone in https://musescore.org/en/node/350594 suggested as an example an edition of Beethoven's 9th symphony:
It also solves the problem, especially in stage works like operas and musicals, of having to use the same staff and renaming it for the different characters when they have an aria: with this system you could instead "create" all the different characters and then show only the ones involved in that aria or scene in that aria or scene, without worrying that the staff of that character disappears in the systems of that aria where only instruments play, like it currently happens with «hide empty». This also means individual parts for each singer can be generated automatically by MuseScore just like it does with other instruments.
and it obviously would be especially useful for composers who are creating new stuff.
I think, because I've seen it a couple of times in like Ricordi editions of Verdi operas, that the middle to late-19 century practice is to display each instruments only in systems where they play, so if they are needed in that movement but don't play for four measures and those four measures constitute a system, those instruments will not show in that system, which is what MuseScore currently does when you «hide empty measures». See e.g.:
This admittedly saves a lot of space in 19th-century scores for giant orchestras. Still, I think this other system I and a lot of other people would prefer offers a bit more tidiness and consistency for most other types of works. I don't think it should replace the current system, but it'd be nice to have as an option.
Problem to be solved
From what I understand, the only way to achieve this currently is to create separate files, or to use section break, hide all empty measures via the Style panel or individual instrument properties, and then force individual staffs in individual systems to show by adding invisible notes or text. This can become cumbersome if a work is not an engraving of an existing work but a work in progress, and more importantly it introduces a lot of "noise", albeit not the visible kind, in the creative process and in the final score.
Prior art
From what I've heard, Dorico achieves this with flows. Now, I don't think MuseScore needs such a restructuring, but I've seen there are plans for creating "groups of staffs" to more precisely control how system text is repeated for the different sections of an orchestra, so I hope it would kind of follow the same implementation logic, dunno.
Additional context
I looked on the musescore.org forum and on Github itself for other posts regarding this; see https://musescore.org/en/node/268981, https://musescore.org/en/node/321148, https://musescore.org/en/node/349035, https://musescore.org/en/node/350594, I couldn't find anything on Github even in the closed issues. At first I thought there already was a solution but I found there are only some work-arounds and some people suggested a re-implementation of the album feature would satisfy this need; that's why I suggested this, but if there better ways to implement this obviously godspeed.
P.S. I'm really sorry for how messy this post is, it's kind of a complex subject to report on, if examples and images would help please tell me! :)