Waiting for Playback ≠ Composition Tool

I would like to see Dorico offer immediate playback, from anywhere in a score, with the ability to stop and start playback as absurdly often and as quickly as I like. Playback also should not be a modal process (it must be in its own thread), so as not to stop me from performing other UI actions during playback. This is certainly possible.

How likely is it that Dorico will include this feature as described above?

(I understand that Dorico has been conceived as an engraving tool, as opposed to a composition tool. So any remarks as to its slowness, particularly regarding features related more to composition than to notation, should be taken with that in mind, and with thanks for all the hard work involved.

Searching for slowness in the UI lead me to several posts such as this one:

Instead of adding to that or other threads which are about slowness in the UI generally, I want to open up the specific topic of playback responsiveness.)

The forthcoming Dorico 1.0.30 update will be able to start playback much more quickly than the current version. Unlike a sequencer, where all of the MIDI events that are to be played are known in advance, there is a conversion process when translating notated music into MIDI events which can be decidedly non-trivial in nature.

Our aim is certainly to start and stop playback as instantly as possible, and to handle updates to the playback representation of the project as you edit it in background threads, but these are not simple to achieve.

Thank you. I’m happy to hear that the next release of Dorico will include more responsive playback.

Speaking as a programmer, I wouldn’t suggest sticking to this model. It is an acceptable heuristic for an engraving tool, but it is a design flaw for a composition tool. Requiring conversion from notation data to MIDI data before playback will never be immediately responsive. Background threads may help, but the design is the problem. Finale has always been terrible in this regard. Sibelius is a bit better. The only notation app which solved this problem correctly is Overture. It has rarely been taken as seriously as Finale or Sibelius, but has the most responsive UI and playback of any notation software ever made. It would be well worth while for the team to study it. The solution is to include MIDI data within the core data, so that there is no difference between a score and a sequence in terms of data. Many thanks for your time and consideration.

[edit: My remarks about Overture concern versions 2 through 4. I have used Overture for the past 20+ years and speak from that experience as a composer. The software has changed hands a number of times, and I do not use the current version (Overture 5) so I can’t comment about that version.]

Unfortunately the problem is considerably more complex than merely including MIDI data in every notated object. The complexity comes from the interaction between notated items. Every edit may have an unpredictable effect on the resulting MIDI events that will be generated at the end of the processing. The presence of a slur, articulation or dynamic (among many other things) may cause not only the events to change, but also potentially the device that they are routed to.

Playback of the score is a very challenging technical problem. and we’ve found some bits that were particularly slow and have optimised them, and identified other areas that we’ll tune in due course.

Thinking of the hours and hours I’ve spent in Cubase altering note lengths, creating modulation curves, etc., I’m happy to wait for a short while for playback to start.