Break multimeasure rests for breath marks

• Jun 3, 2017 - 17:14
Reported version
S5 - Suggestion

NOTE - While I have marked this as version 3.0, it would be fantastic to see this in a 2.x version.

When using the multimeasure rest feature, caesuras and other breath marks should be shown in the appropriate locations so performers are able to accurately follow the conductor.

As a consequence of this, multimeasure rests should end either the previous bar when the caesura is within a measure, or the current bar if the caesura is at the end of the measure.

An example of displaying a breath mark occurs in Holsts' The Planets, mvt 4 "Jupiter" in the horn parts. mm59. (See attached image) Although this does not show a complete break in the rests as the horns play in the next measure, it is a good example of the desired output.

Attachment Size
Screenshot from 2017-06-03 10-03-20.png 23.06 KB


I agree with the basic desire for something like this. I'm not 100% convinced about the proposed implementation, however. As I understand the code, this would have the effect of excluding measures containing breath segments from mmrests entirely. I would rather see the measure break the rest but not be excluded from it - in other words, same effect as placing a double bar, so the breath appears at the end of one section of mmrest and a new one starts afterwards. That's a little more work but worth it I think. But then I'm basing this more on "common sense" than an actual study of the literature.

Your suggestion makes sense, and I would definitely like to see it that way. I wasn't able to dig in and discover the best way to do that, though, and I have fairly limited time (i.e. none for now) available to work on this; my thought is that the code does something *better* than the current (in that at least these markings won't be dropped), and can be improved in the future.

I'd gladly drop the pull request I have if there were one with a better implementation.

My suggestion is to give the breaths and pauses a system or staff option. The reason behind this is that wind instruments often have breath marks to show where they should breath without affecting the rest of the ensemble. System wide breath marks do appear from time to time and should allow those with multi-measure rests to know what is happening. Caesuras are normally system wide and should be propogated to all parts without the current necessity of putting one on each part in the system. I believe this should be the same option should be available for fermatas. Most fermatas are system wide, but there is the rare fermata that is applied to a limited number of parts seen in some classical pieces.

The result of this would of course make system breaks and fermatas break multi-measure rests.

Makes sense to me, although it seems a bit orthogonal to the original issue; if a wind part is resting, they aren't going to have a breath mark anyway, so the rest wouldn't be broken.

Perhaps I wasn't as clear as I tried to be. When a wind part has a breath mark, it simply shows where the composer believes the musician should breath. These should only show on that specific part. There are system wide "breath marks" that every musician understands to be a slight pause that appear on all instruments in the score regardless if the instrument is a wind instrument, string, percussion...

The system wide "breath marks" should be able to be marked as system and entered on a single instrument but show on every part. My first choice would be to be able to enter it on one staff, mark it as system and it automatically appear on all staves in a manner similar to time signatures. The same would apply to caesuras as well. While this is being done, fermatas should have the same options. If I were setting this up myself, I would have breath marks default to staff only and all of the other items default to system.

I believe this is in line with the OP. Someone asked for suggestions and I added mine.

Well, I agree with the suggestions to make fermatas and caesuras at least optionally for the whole system, but I personally don't have the availability or knowledge of the codebase to go about implementing it myself right now; so, while the referenced pull request is a half-measure (haha), it does address an annoying issue for me.

In reply to by Jojo-Schmitz

The proposal in the original post of this thread says "caesuras and other breath marks should be shown in the appropriate locations so performers are able to accurately follow the conductor." While I agree that it is probably useful to show caesuras and also fermatas during multimeasure rests, I think "other breath marks" should be avoided.

Looking first at caesuras and fermatas. If these are shown shown within a section of multimeasure rests it only makes sense if they are shown at the correct point within the measure. The precise position needs to be indicated with rests before and after the indication, otherwise the objective of making it easier for the player to follow the conductor is missed. So it is not just a question of breaking the multimeasure rest, the measure also must be "padded" with rests of the correct duration to allow the indication to be correctly positioned. If a measure has a fermata attached to a whole measure rest it already breaks the multimeasure rest. If a measure contains rests other than whole measure rests, it is not included in a multimeasure rest. Thus the proposed change is only needed in the case of a caesura is at the end of a measure. The multimeasure rest can easily be broken by ticking the "break multimeasure rest" box in the measure properties dialogue. However, while the multi-measure rest is broken, the caesura is not shown and this I think is the bigger (only?) problem, not that the break is not automatically made when a caesura is entered.

Regarding "other breath marks": As a wind player, the art of breath control is to not let the listener know about the hard work that is going on in the lung department. I may add marks to my part to indicate when I need to take an extra large lungfull before a long legato phrase or to indicate when I can snatch a microbreath during such a phrase, otherwise breaths are taken when and where they are needed naturally. I occasionally see published parts with breath marks indicated. They are generally too close together (potentially leading to hyperventilation) or are not needed or are just in an uncomfortable place. In any case, they are not worth breaking a multimeasure rest for. Indeed, I would recommend that composers and arrangers don't try to tell wind players where to breathe. If you actually want a break in sound, write one using a rest or a staccato mark at the end of a slur or, if you want to interrupt the rhythm, use a caesura. If I was presented with a part that breaks a multimeasure rest just to display a breath mark, I would wonder whether it would also tell me to breathe out, or blink, or rub my nose. Incidentally, The Holst example is surely a caesura and not a breath mark. It appears in all parts, even the string parts. And the horn player does not need to be instructed to breathe before playing. He would expire if he didn't

Workaround No Yes

There's a workaround: set "Break Muiltimeasure rest" for the measure with the caesura/breath and the next measure. That both are needed resp. that one isn't sufficient might be another bug or just a variant or sub-issue of this one.
Another workaround is to have more than one rest in the measure.

It's not a bug that breaking a multimeasure rest doesn't exclude the measure from a rest - both are valid things to want to do, for different reasons. Probably we should also have a separate "exclude from multimeasure rest" property. There is a function validMMRestMeasure() already that checks to see if we should include this within an mmrest. The PR here simply has that function return false if a breath is encountered, which to me makes perfect sense, unless someone thinks the better thing is to show the break after the mmrest itself rather than in a measure all by itself. And probably someone would want this. So I'm not 100% convinced it's the right solution - it's great for some case, not so for others. I think that doubt has to do with why the PR wasn't merged long ago.

But a measure property to force the measure to be excluded would work, eliminating the need to set the break property on two measures.

Workaround No Yes

That assement simply isn't true. But appologies if you feel that way.
(and the workaround meantion further up still does exist)

Well, it is true that if the code contains problems, the review process is there to make sure they get pointed out. That's a good thing, it's how we ensure the quality of MuseScore. But we try to be constructive in our suggestions of how things could be done instead. There was no fight - the PR simply wasn't merged, for the completely valid reasons stated in the first place. I understand you didn't have the time to investigate those suggestions further. We could have been more proactive in pointing to exactly where the relevant code was, but please understand, we volunteer contributors don't always have the time either, we're all just trying to do the best we can with the limited resources we have,

Anyhow, I've now pointed (in the PR comment) to exactly where the code is that would be needed to solve this more correctly, should you or anyone else wish to take it up. We'd love to have you participate, and we encourage you to do so!

In reply to by Marc Sabatella


I'll keep this brief, though I know I could go on.

Certainly I'm on board with code reviews to ensure code quality. The initial discussion doesn't seem to be around code quality, though. It seems to be around whether the feature is desirable (as-is) in the first place. Which is typical of all my prior attempts to contribute. I debated before submitting this and another one around the same time (2017) whether it was worth the argument.

I know you're volunteers, and I'm sure you're as busy as I am, if not more. I wish there had been more focus on bringing volunteers in, though.

Thanks for your response, I would say that no, the question is not about whether the feature is desirable - of course it is desirable. The problem is that the specific implementation of the feature in fact breaks something that otherwise works. Currently it is already possible to get the result shown in the example: by setting the "break multimeasure rest" property on the measure after the breath. That's a valid workaround that I imagune thousands of people probably rely on. But the proposed fix actually breaks that, making it impossible to get the originally desired result. Instead, the breath will force the measure to not be included in the mmrest at all, which is not the originally desired result, ir what people who are currently using this method have come to expect.

So to summarize, the proposed change does help in one way (eliminates the possibility of the caesura not appearing in the parts at all), but unfortunately hurts in another (breaking the ability to get the originally desired result where the caesura appears at the end of one mmrest with a new mmrest starting in the next bar).

Meanwhile, I'm not sure what you propose we volunteers should do to bring in more volunteers to join us - or what you might propose do less of in order to make time for the new activities, but I do invite your proposals! Probably best to join the chat on Telegram (see the developer handbook for info if you haven't already).