Breath playback is imprecise

• Oct 20, 2014 - 14:22
S4 - Minor

In playback all breath symbols take effect - before a note sounds - instead of after.

1 Put a breath symbol from palette to a note.
2 Breath symbol appears at the correct place --> after the note.
3 Save the score.

During playback you can notice the breath now as a little time delay ( use the metromome).
--> But the delay comes too soon - before the note - and not after it.

This wrong effect happens with all 3 breath symbols after the score was reloaded.

Attachment Size
Breath.mscz 1.61 KB


From my experiments, there's a clarification needed in the original post. The breath marks don't take effect until the score is re-loaded. It's not enough just to save the score.

But there are more issues with breath marks.
Using the attachment (Breath.mscz) from the original post:
1. Add a fast tempo at the start of the score and then play it. Note that this new tempo is lost at the first breath mark. Playback speed continues at the previous tempo.
2. Delete all breath marks from the score. They disappear, but still affect playback. (Same is true if you delete everything (Ctrl-A, Delete), and just listen to the metronome.) Save and re-load, and now they're really gone, and the new tempo is applied correctly.

In summary, it seems that breath marks are only processed when a score is loaded, and they also fix the tempo for the rest of the score. A new tempo is only applied up to the first breath mark (until the score is re-loaded).

FWIW, I think it's correct to apply the delay before the selected note, and it's the symbol placement that's wrong and should be changed. But the effect on tempo is extremely confusing.

I confirm all above contributions with identical results.

However, with wind instruments payer's glasses - it seems more logical to anchor breath marks always to the note before - as it is in the layout.

In many times - if the tempo allows no delay - we have to shorten the note-length before the breathmark.

If they were fixed at the next note it could cause other layout problems - in the case that the breath is placed at the end of a line.

Yes, that is true. So we have another problem: the requirements for breath mark and caesura are actually quite different.

  • A breath mark should only shorten the marked note, and not affect the pulse at all. It applies to the specified instrument (or voice) only; not to the whole system. It's quite similar to staccato.
  • A ceasura should introduce a brief pause, and it applies to the whole system, not just one stave. It's quite similar to a fermata.

In both cases, the tempo should remain unchanged.
However, it's still more complicated. In choral music the , symbol is sometimes used to indicate a short caesura rather than just a breath! So ideally we need separate symbols for each usage.
I feel this is all too much related to artistic interpretation for any hard-coded implementation to be truly useful! I would prefer the effect on playback to be adjustable, probably via the inspector panel.

This ideas have my full approval. All common variety of recital was possible with an adjustable inspector entry.

Most suitable if musescore could offer the customizing for personal palette entries
- for a breath mark - including reduction of the note length and the after time delay
- for a caesura - including the time delay

But sorry for owning no skills in software development.

I'm working on this. I have most of the bugs fixed, but need to do more testing. So far I've done the following:

- adding a breath affects playback immediately, no need to save/reload
- the playback effect comes *after* the note, not before
- deleting the breath affects playback immediately as well
- caesuras get a longer pause - unfortunately, not configurable right now
- tempo changes remain in effect after a breath

Most of these same issues affected section breaks as well; I have these working now too. And for section breaks, the pause *is* configurable.

There's no simple way to make breaths shorten the note they apply to - well, it might be simple, but it would be in a totally different part of the code, so I'll leave that for another time / person to deal with. For now, I'm keeping the subtle (0.1 second) pause, as it is at least sometimes correct. Eventually, of course, we should add a way to configure this as we already do for section breaks.

Status (old) active patch (code needs review)

Quite a few things were wrong, as the comments above attest, but I got everything I could find. I ended up going with 2 second for caesura but no pause for breaths; that would be simple to revisit later. And all framework is in place to later add a UI to customize pause length (either via dialog or Inspector).

Severity S1 - Blocker
Status closed active
Regression No
Workaround No

Apologies in advance if it's inappropriate for me to reopen this.
But I would love to see a fuller resolution.
It seems to me that what's really needed is for the pause time to be subtracted from the previous note during playback in order to preserve tempo. I'm talking about the sort of breath mark that simply tells a singer when to breathe... not a caesura. A caesura is a real pause, and necessarily changes tempo (briefly).

I realize (as a programmer myself) that implementing this might be more easily said than done. I also realize that musescore is primarily for notation, not sequenced playback. Nonetheless, I could put such a feature to good use.