Playback with Notes Tied from Previous Measures
Hello,
If a measure is selected to begin playback from a score, and there are notes tied from the previous measure, those tied notes don't play back. It is necessary to start playback from where that note begins.
But if you have a section where different instruments have tied notes in different places, whenever you play back that section, parts are not heard.
For example, I'm working on a long section of music where the double basses are just holding the same note as a drone underneath.
If I want to change something and then hear it in playback, I either have to listen from way back at the beginning of that section, or temporarily break tied notes. If it's just one part, like the basses, that's a fine workaround, but if there are notes tied in different parts across bar lines, it's not fun.
Changing the ties to slurs is a way to fix that issue for playback, but it would be nice to not need a workaround.
Attached is a pic of a section from the score. If I want to listen from the third measure of that page, the piano and none of the strings will be heard in play back. Neither will several brass and woodwind parts not pictured in the attachment.
- Is there a way/setting to have every note, in every part, play back from any starting point within a score when tied to a previous note?
- If not, can that feature be added?
Thank you.
Attachment | Size |
---|---|
Screen Shot 2021-08-16 at 9.54.14 AM.png | 109.04 KB |
Comments
I can't hear anything.
But that seems by design, currently.
In reply to I can't hear anything by Jojo-Schmitz
It's just a screen shot of a section of the score from my monitor, so nothing to hear, and it does seem by design. Not knowing tech stuff, I figured there are reasons why it happens like that.
> "Is there a way/setting to have every note, in every part, play back from any starting point within a score when tied to a previous note?"
No
> "If not, can that feature be added?"
Probably.
In the current 3.x architecture the score is preprocessed into playback events (MIDI-like) which means that a note is defined by it's starting point and end point, there is no "should be currently playing" instruction, only a "start playing now" and "stop playing now" instruction.
To make this work there'd need to be a way to inject "fake" start play instructions for those notes at that your chosen playback starting point. This is slightly inconvenienced by the possibility that your note being played is changing velocity during playback (such as when using single note dynamics) so that that'll have to be calculated again as well.
There might be other things to account for as well; such as notes that are still written, but have actually died out (such as on struck/plucked instruments). Restriking them is likely also incorrect in such a case, but the current implementations don't support starting playing back "mid-sample".
So not impossible to have such a feature, but probably a bit more involved than one would guess at first glance.
In reply to > "Is there a way/setting to… by jeetee
It's crazy how many things need programmed in the background just to produce a result that seems so simple on the surface.
Doesn't sound like a thankless job at all...
Thanks!
In reply to > "Is there a way/setting to… by jeetee
tbh the code I added to fix playback collisions means that it’s very well known, at every single event, which notes are sounding. This information is not recorded, though (it would be a rather large mass of small memory blocks, with all the overhead that involves).
AFAIHH someone implemented something for 3.x to render the NPlayEvents in chunks for larger scores. This means either they already implemented “carrying over” that information, or that they broke playback collision detection at many points in the score (reminds me I have to find that code and actually check, some day… when I have time…). If so, perhaps this could be reused… but it still would be tricky.
Maybe go to the beginning of the previous chunk, then iterate over the events until the timecode matches the desired start point, and only then start synthesising?
In reply to tbh the code I added to fix… by mirabilos
Ties are not considered when chuncking in 3.x, only hairpins and repeat measures prevent chunking as far as I can see: https://github.com/musescore/MuseScore/blob/3.x/libmscore/rendermidi.cp…