Expression & Percussion Map Playback Issues

I spent all day yesterday digging into the specifics of why the performance of editing in your project is so poor, and the good news is that I’ve been able to find some good opportunities for improving performance when working with the Symphonic Riot expression map. We have to look up information in the expression map many thousands of times when building up the playback information (which we do after every edit, for example, for the instruments whose music you’ve edited). We should be able to both make it faster to look up this information in massive expression maps like Symphonic Riot, and also perform fewer look-ups overall, if we restructure some things.

We’ll need some time to review my changes, to make sure that they are safe and that they don’t cause the actual played result to be any different, but hopefully we will be able to deliver some improvements in this area relatively soon.


There IS a workaround for the time being: In write mode split a flow into several flows each containing no more than 1000 - 2000 notes. Then deactivate in Setup mode all flows except the one you are going to work with. It is a bit tedious but it works.
Since I love the Riot expression map I am very happy and grateful that the Dorico team will take care about a better performance.
It would already be a help if Dorico’s algorithms could limit their editing after each action to the actual flow and not to ALL flows of the project and only to the notes of the player(s) (and not to ALL players) that were edited by the user.

Dorico does indeed already only update the flow you’re editing, and it only updates the playback information for the instrument(s) to which the edit applies, but it does have to update the information for that instrument for the whole flow. It’s not really practical to update only part of the flow as things stand, because it’s very hard to build up the required state such that the information can be correctly and stably regenerated from an arbitrary point.

Nevertheless, the improvements we’ve made in this area this week should greatly improve matters, provided they pass internal testing.