How do I reduce latency \ lag \ delay when playing Musescore via a USB MIDI keyboard on Windows 10?

• Mar 27, 2016 - 09:54

Even though I have zero lag when playing my keyboard into my DAW (Reaper) and have an external ASIO soundcard, Musecore still has an impractical delay when I play into it.

I've tried all IO port audio options (and restarted) and none improve the delay. Choosing ASIO doesn't work at all - it plays the audio all broken.

What to do?


Comments

In reply to by Richard Cooke

MuseScore doesn't have real time MIDI input, nor is it's synthesizer intended to be for real-time performance. So I'd recommend simply using the right tool for that job - a sequencer, or use the built-in sounds ont he keyboard - when you want to just play music rather than enter notation.

In reply to by Marc Sabatella

I hope I'm not necroing this thread too badly, however I wanted to add something here:

I find that WASAPI gives an acceptable level of latency for playing a midi controller. I understand that WASAPI isn't currently implemented, but I wanted to put my voice behind a request that this be considered.

Mr Sabatella, I think that Musescore is the right tool for the job, in fact, using a midi controller to play and compose directly in the notation editor, and then to quickly notate what you've just figured out, this is perhaps the best workflow for composers. Certainly, if Musescore implemented WASAPI (and CC64 sustain pedal support in the synth), it would work very well indeed. Switching between a sequencer to write parts, and Musescore to notate them, this works, but ideally the ideas would originate and be developed in Musescore, and the music brought into the DAW afterward to flesh out the VIs and polish up the sound.

Even now, using ASIO gives acceptable latencies to allow for realtime "performance" (I hesitate to say performance, but playing Musescore as an instrument). Please, I hope you will consider supporting this workflow as a valid and worthwhile effort.

In reply to by Marcato

I agree with Marcato's point about workflow. It would be great to be able to play (i.e. compose and/or tweak the arrangement, especially rhythmic aspects of it) in Musescore itself and not having to change between programs every time, just hit "N". In my case at least it would be a great benefit to the creative process.

In reply to by Marc Sabatella

No disrespect Marc, but that is not a valid answer. OF COURSE people want to play in real time when they are in a scoring session, even if they don't input notes that way - they will invariably want to play the phrase in time at some point first, before step entering it, or to play along to something over existing playback.

Also, it is absolutely MENTAL, in this day and age that people have pro audio interfaces doing their sound, with fractions of milliseconds latency in all other apps, yet we have to suffer up to a seconds delay between playing a note, and that note coming back in the latest Flagship edition of Musecore ! Why, when I am using UR22 mkII as my audio driver do I get offered only 3 options in the latency dropdown underneath that, the lowest of which is 1024 samples ? Everywhere else I get 64 samples available, which is what the card is set to in its general ASIO driver - we isn't musescore using that value ?!

This is fundamental stuff. Not only that, but it worked better in MS3 - that was 'almost' real-time towards the end, and almost workable ! It really was the least of my expectations of version 4 that near zero latency would be standard and default if you had a pro soundcard, and ideally if you didn't !

Sorry - I don't mean to sound harsh, (or to go off at you specifically, sorry !) but it's such a massive disappointment to open another eagerly anticipated revision of our favourite scoring software after such a long wait to find it still can't do the most basic of things that surely everyone who uses it wishes it would, despite most of us having hardware that can do it everywhere else !

Seriously - I open up Keyscape, or a virtual instrument, which, let's face it is making the computer work a damn sight harder than Musescore is, and and I have almost zero latency there, and in every other application. Everyone who has a pro soundcard will expect the same from Musescore, whether that is what it is meant for or not.

In reply to by Cerbera

You mean my answer from six years ago? It was valid then and remains so now. Yes, people want to play in real time, but that doesn't mean MsueScore is the right program to use for that. I have many different programs at once while I work, and I use each for its own purpose. it works nicely and allows MsueScore to have proge4essed nincredibly int he past six years, in way that would have been completely unimaginable if the focus had been on real-time performance instead.

That's not to say that someday, if enough people request it politely, real-time features couldn't be added to MuseScore. It remains, of course, open source, even six years later. So anything is possible when people get together respectfully in a spirit of cooperation.

In reply to by Marc Sabatella

Oh yes, I didn't see it was so old, but a Google search for 'Musescore 4 latency problems' led me here first.
I do take your point, which as you say, does remain, but I have to say so does mine, and it's a bit awful that we still have cause to raise this 6 years later ! I can't be the only one for whom this is a deal-breaking feature ? I would write in Musescore if I could, rather than recording everything in Cubase first, and then essentially doing it again in MS ! And woe betide me if I ever try to have both open at the same time ! :/

I love EVERY other aspect of MS, and have enormous respect for everyone who develops it - I guess I just can't quite believe that real time midi throughput from a keyboard hasn't been a primary aim from day 1 !! :)

In reply to by Marc Sabatella

I have tried everything to get rid of the lag but it wont go away. I am trying to write a music peice and every time I play it to see what it sounds like, It repeats notes, Doesn't play notes, and once it even made it change key. This is a very imporntant peice and I don't want it to fail. Please help me.

In reply to by belchanderson

As explained above, MuseScore simply is not designed for realtime performance. So, simply use a different program to act as your synthesizer when playing the keyboard.

It's not clear if you are also talking about some unrelated issue regarding repeating or dropped notes. If so, best to start a new thread and attach the score with the problem, and described exactly where the problem is.

In reply to by Marc Sabatella

I must say I was very disappointed after my upgrade to MS4 by this lag/delay. Why was this not an issue in MS3, but it is in MS4? It seems there is even no more MIDI input as there was in MS3. Even if you do not want to compose/play directly into MS (and I don't see why not if it was no issue before), you do want to sometimes play a few notes when editing, just to see whether it "sounds alright".
I strongly urge that an attempt is made to at least get back up to the standard of MS3 when it comes to this issue. If MS is "only" a music notation program, why spend so much effort in its sound and playback. So clearly it is much more, and to deprive the customer of "playing" with the improved soundfonts and instruments is just criminal: you're giving us a shiny new ball, but we cannot roll it ourselves!

I probably will revert back to MS3 just because of this problem.

In reply to by schoutens

I did not have any latency with MS3, but after I upgraded to MS4 I have an non-acceptable latency of at least half a second and it seems that there’s no way I can get rid of it. What is most irritating is the fact that I had to play around with MS for hours, trying various drivers and settings in vain.
It seems to me that MS4 has been launched too early.

In reply to by kim@ludvigsen.ch

Unfortunately, a small number of users are experiencing this, but as far as I know no one has succeeded in figuring out why it affects only them and not everyone else. Since no one report this during the beta testing period, there wasn't an opportunity to address it before release. You can't hold up a release for problems that aren't even known about of course - someone would have had to have reported the problem with steps to reproduce it in order to anyone to have been able to investigate further.

It's still the case, unfortunately, that no one seems to understand how to reproduce it. For most people everything responds normally. But fi you you ever do figure out a system setting to seems to be triggering the problem, definitely let us know!

In reply to by Marc Sabatella

Thank you Marc
If I disconnect the computer and and just play the e-piano, the keymoard obviously react immediately. If I play though MuseScore and the loudspeakers of the laptop (and not use Voicemeeter or AudioBox), the delay is there. But not with MuseScore3, only MuseScore 4, so the the problem must derive from MuseScore4.

In reply to by Marc Sabatella

Greetings, Marc...
Are you the only developer in this open-source product? Maybe we can get the help of a developer with experience in how the application processes MIDI vs audio. First, there should be ZERO latency with pure MIDI input. In other words, the application should process the MIDI as the priority process rather than turn the code to the AD/DA converter as it appears that MS does. I'm not a specific coder in the language(s) you use to compile this application, but I have been director of application function and planning in other commercial software projects, (mostly related to hardware user interfaces). I've written business software, but have never dabbled in DAW-related apps. (I have advanced degrees in both music and computer science.) I'm surprised that you have not had enough requests to get real-time, 'performance' to work for note input, to then set about making the modifications. Real-time MIDI input has been functional in nearly every MIDI and audio workstation software since the early 90's, (E.G. Cakewalk). Most modern DAWS contain a notation view for Real-Time-MIDI-Performance data, so I dare say, that it cannot be a huge stretch to update the functionality of MuseScore to implement this latency-free feature.

In reply to by BrionBell

Some things occur to me.
MU4 is not a DAW. It really isn't audio software. It is primarily for producing notation. There are indeed many things that could stand some....adjustment, to be sure. Should there be any Midi latency? Should there be a 'Save' button? Should there be file corruption? Should there be ragged playback? And any of the many problems that show up on the forums every day? I'm sure all these things being worked on.
I notice that on my system, when I use Muse Basic sounds, there is almost no latency. Almost is not zero. But worth a try. Especially if you use the keyboard sound. But not zero. But then I only have a low end Yamaha.

FWIW, I use MU4 to compose for orchestra. I don't have any use for my Yamaha for this, because it is faster for me to use a mouse. Gasp! Is MU4 perfect for that? Well, at least better for me than MU3. Which I don't even have on this computer.

This issue is very dear to me. As a musician, latency is one of those things to which I'm very sensitive. I'm on Windows 7 and the latency using a USB midi controller is untenable.

If there is anything I can do to rectify this matter, financially or otherwise, please do not hesitate to contact me.

I'm new to MuseScore - as in this past week. I'm reminded of Groucho Marx who famously said, "I refuse to join any club that would have me." Based on my experience and the user comments on this page, it seems I've joined a club I don't want to be in - - the latency club. MIDI users, whether musicians or composers, number in the millions and we're located throughout the world. Hearing that MuseScore can't resolve the latency issue and that Plan B is for us to click, click, click one keystroke at a time leaves me dumbfounded. It's as if you've discovered that MuseScore doesn't recognize F# and we're advised to play songs that don't use F#.

In reply to by ArtieMixx

Hmm, I think you might be confusing a few different things here.

First the latency issue being discussed here doesn't affect all systems - it seems to be a relatively small minority of them, for reasons that seem to have not yet been identified.

Second, as I understand it, the latency doesn't actually prevent the MIDI keyboard from being used - it is just annoying in terms of the audible feedback coming a bit late. So I assume, for example, if you simply disable the sound from MuseScore and instead use the sound built int to your keyboard, or use another program to provide the sound, things would work as usual. I could be wrong and maybe there is something else going on; unfortunately I'm not able to reproduce the problem myself to test.

But thirdly and most importantly, latency or not latency, MuseScore always works by entering notes one at a time. Even on systems with zero latency, you're entering notes one at a time, whether doing this by MIDI or via your computer keyboard. So, typing them on a computer keyboard is actually the same speed as entering them via a MIDi keyboard. MuseScore is highly optimized for this "step time" entry, and often you can enter a melodic line faster than you'd have been able to play it in real time (consider, you don't need to wait four beats for a whole note).

There is a separate "real time" input mode, but it's quite limited - not by latency, but just inherent issues in trying to turn real-time MIDI data into notation. It's a complex AI problem.

In reply to by Marc Sabatella

Marc's comment paraphrased > [MuseScore's] "real time" input mode, [is] quite limited [by] inherent issues in trying to turn real-time MIDI data into notation. It's a complex AI problem.

I hear this sentiment expressed regularly on the forum. But the real issue is that MuseScore simply hasn't "done the work." (I understand that MuseScore code is open source, and apparently there simply hasn't been a contributor with the interest or skill to manage the feature.)

I agree that translating real-time MIDI data into notation is a pretty complex task, but it has been adequately addressed by numerous notation applications. And the appearance of real "real-time" input to notation dates back at least 39 years, to 1984, when Don Williams wrote Encore. Granted there were challenges when Encore tried to interpret polyphonic piano performances, but Encore's real-time MIDI input worked quite well overall, certainly with monophonic phrases (and single-hand parts). And Encore adeptly retained playback durations while making intelligent decisions about notational face values. And AI wasn't a factor.

Until MuseScore offers real-time MIDI input I need to resort to other apps for that option. Of course I can record in Logic, export to .MID, and have MuseScore interpret the MIDI file, but what's the fun in that?

In reply to by scorster

FWIW, I have played with the real-time facilities ion a few other programs and have been woefully underwhelmed. A ton of programming effort for something that still doesn't work half as well or efficiently as typing in the music myself, for anything more complicated than "Mary Had A Little Lamb".

No doubt, with sufficient resources dedicated to this incredibly complex task, we could maybe get to that same point - where real-time input is only somewhat worse than more traditional methods - but if all that effort were spent there, it wouldn't be spent on the areas that actually make a significant difference for most people.

But anyhow, yes, recording in another app and then importing into MuseScore - especially if you quantize first in the other app - is a better option. If you define "fun" as actually getting semi-decent results, I'd say it's more fun than direct input. But still nowhere as fun as the more efficient/accurate methods.

In reply to by Marc Sabatella

Marc wrote > FWIW, I have played with the real-time facilities ion a few other programs and have been woefully underwhelmed. A ton of programming effort for something that still doesn't work half as well or efficiently as typing in the music myself, for anything more complicated than "Mary Had A Little Lamb".

My colleagues and I have found single staff real-time MIDI input to be impressively adequate, and it captures expression by including note velocity, which is not the case with keyboard or click entry approaches.

I recorded this piece into Encore in 1997, one staff at a time, in real time with a Korg keyboard. There was no lag or latency so adding parts was a rewarding and engaging experience. Read from a Dover score the entire project was essentially effortless, actually fun, efficient and accurate ... plus the piece is more complicated than Mary Had a Little Lamb. And in my opinion the result is more than "semi-decent."

https://musescore.com/user/35880724/scores/10273630

In reply to by scorster

That’s impressive, but of course playing that accurately requires skill rather beyond what most people would be able to sight read, unless you slow it down so much that it’s no faster than typing. But anyhow, I’m glad you have the skills and that you had fun!

So I will grant if the piece is sufficiently simply, or your level of experience on the instrument and/or the piece itself allows, some subset of music might be entered reasonably efficiently. Still, it’s not going to work for most people or most pieces, so my basic point stands: it’s a huge amount of effort for relatively little benefit. Not that it could never ever happen - presumably at some point enough higher priority tasks will have been tackled that this will rise higher in the queue. But it shouldn’t be surprising that it hasn’t happened yet and isn’t (as far as I know) on the immediate roadmap.

Sadly as a composer the MIDI lag is just a huge drawback. I'm interfacing on a Mac with Nord 3. I did like some of the features but I'm going back to using Finale

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