Midi output latency issue

• Feb 3, 2021 - 21:58

I don't know if this is a bug or intended functionality, but I cannot seem to permanently set the Midi output latency to 0ms. I set it to 0ms, and use Musescore just fine. But when I stop the program then go back in, it is set back to 1ms. It causes me a problem when set to 1ms. When I click on a note or write a note, there is a noticeable (annoying) delay before the note sounds. There is the same delay when playing the music also.
I have a MIDI keyboard connected to the computer so - of course - I have my MIDI inputs and outputs set, but it is turned off right now, so MIDI shouldn't even be functional.
I am using version 3.6.


From what I can make out this is because before MuseScore even begins to start playing anything it first spams out "Note Off" for every single possible note on every single possible MIDI channel. That takes a good second to process. Because of this I get a delay when starting playback followed by the first bunch of notes all played together, which is really really annoying.

There really is no need to turn off all the notes when you start playing - that should only need to be done when you stop playing. Further it shouldn't be doing "Note Off" for every note on every channel, it should be doing "All Notes Off" for each channel (which actually it does as well anyway) and the spamming of all notes off should only be done if an option in advanced preferences is turned on so as to support the few devices that don't properly react to "All Notes Off".

I'm in the process of patching my installation (you may want to look at mscore/seq.cpp and the Seq::stopNotes() function) to reduce that startup latency where possible.

In reply to by majenko

This might be better handled with a feature to a do a count in. Maybe it's possible now? For example, a 4 beat count in where all the Note Offs are sent and a visual blinking of the beat but the transport control doesn't start until after the count in. Or maybe an invisible measure? I think it's a common practice to not have tracks start at the beginning of a DAW arrangement to make sure everything gets in sync before the 1st thing plays.

In reply to by oscarcar

We already have count-in (in the play panel), which uses the internal metronome sound (not midi). It helps, but that isn't always convenient. I sing in a choir where we have recently started doing rehearsing of one piece using MuseScore connected through MIDI to our keyboard. In that situation you need it to start playing immediately you press the play button - right when the conductor says it's going to start playing. And that is seldom at the start of the piece, always "Start from bar 98", etc.

Do you still have an unanswered question? Please log in first to post your question.