Minimum possible latency

Hello everyone! I hope you’re doing great!
I have been a long time admirer of Midi guitar and although I have never bit the bullet (dollar > real exchange is BAD!), I’ve tested it many times.

Lately I’ve been using MG3 demo on Linux (manjaro) + Wine TKG 9.20 + Yabridge, and the results are REALLY good.

However, I’ve been wondering something that is more performance related than anything: How low can the latency be?

Context: I have a really good spec’d machine as well as two good interfaces (specially using ALSA on linux).

Both perform similarly, but my Melo Audio TS Mega s best: I can go as low as 16@48Khz without drops…

However: Is this REALLY necessary? I mean, perceived latency is subjective and you can be mislead by your eyes…
My intention with those tests is to use MG3 live if I ever buy it, and of course I would have a lower spec’d PC for live usage. I have tested and at 64 samples, it seems quite stable on a lower spec’d machine, but since I have never tested it live it’s hard to really know, and also since I’m biased by my “eyes” now, I felt like asking you guy’s opinions on the topic!

I hope I was clear enough!

Cheers,

Erikson

There is the input latency (the time it takes audio to hit Midi Guitar 3 pitch conversion process), then there is the output latency, which is the time for the synthesizer sound generated by Midi Guitar 3 to hit your output device. These two together are referred to as the RTL, or round trip latency of your audio interface.

In between you have the Midi Guitar 3 pitch to midi conversion latency that can be around 40 ms for the low E string, and the plugin latency which varies depending on the synth being used. In addition to synth latency, you have the audio effect plugin latency if you are processing the synth output further.

Taking this all this into consideration, with 16, 32, or 64 samples, the differences are negligible. Choose the sample buffer where your computer system is stable and not overtaxed.

for live use, 128 samples seems to be the lowest most users can go without introducing crackles/artifacts. this isn’t a limitation of mg3, it is due to the virtual instruments and effects.

to achieve absolute lowest latency an approach is to separate the note detection from the sound generation, for instance by using an eagan micro (seems like a great live option):
https://www.hakenaudio.com/eaganmatrix-micro

when i use a hardware synth i run mg3 at 64 samples. however, now that i want to implement the new audio processing features (string retuning/chord shifter) i am finding that even 128 is not reliable. (this is with mg3hex and probably due to my audio interface)

just curious - are you using a laptop or desktop?

back to the main q, i do think a lower level of ‘fixed’ latency would be preferred by most players as compared to the current 28ish msec. floating latency is where there is a noticeable lag on lower notes.

an old trick from the roland gk days is to swap all the strings out for ‘b’ or ‘g’ strings. i have strung a few guitars this way and it is really nice to have (essentially) every note hit with exactly the same delay.

that trick in combination with a dante network audio interface may be the top performer (aside from laser or fret based options). previously i was getting 5ms input times with the dante stuff, which also cannot suffer from usb overload.

Thank you for your answer, @lpspecial !
Yes, I felt like I was overthinking this - In fact, my PC can handle 16@48, but I don’t think I really need that low of a buffer at all!

I’ll keep on testing here. Thanks a lot!

Hello there @kimyo ! Thanks for the answer!
Well, I’ve been testing at 64 samples and I’ve had no crackles - But again: I use Linux with a realtime kernel and set my host (Reaper) to have 99 priority. This means that everything besides audio related tasks is “delayed” for when the CPU has enough time to process it without affecting audio.

I have never heard of the eagan-matrix… What does it do exactly? I believe it is an audio to synth? a bit different from MG3?

when i use a hardware synth i run mg3 at 64 samples. however, now that i want to implement the new audio processing features (string retuning/chord shifter) i am finding that even 128 is not reliable. (this is with mg3hex and probably due to my audio interface)

What OS are you using? Believe it or not, when I used windows, I would have random crackles even with the most well optimized system (the infamous cantabile ebook, some performance meter tools that I don’t remember the name anymore…).

That all vanished when I started using linux, specially with the Real Time Kernel and with the system optimizations - It might sound a bit scary at the beginning, but once you get the hang of it, it’s really straight forward. There’s this tool called “rtcqs” that basically guides you through all the needed steps to achieve the best possible performance.
That alone gives you a really solid system, but if you want to walk the extra mile (which I highly recommend), the Real Time kernel is mandatory!
Let me know if you need help with that, I’ll gladly help anyone who wants to come to the “linux side of the force”! haha

just curious - are you using a laptop or desktop?

For now I’m on my desktop doing many tests. But for live use I’ll probably use a laptop or a NUC, not quite sure yet.

Unfortunately swapping the strings isn’t something I’m willing to do, since I’ll use my guitar as a regular guitar. Midi will be something to add some interesting layers below it and will only be something “standalone” if I am able to achieve a good enough technique to play as clean as it needs + a low enough latency.

Regarding the dante, I remember taking a look about them in the past but for some reason I left it aside.

Thanks for the input!

thanks for the details. i will definitely poke your brain in a few weeks when i get back to experimenting with mg3 on linux.

i run win10 on a couple of micro desktops. i don’t have any of the laptop annoyances, but i am getting sick and tired of windows updates which turn services i’ve disabled back on.

Just let me know and I’ll gladly assist!
Funny thing though is that I’ve JUST grabbed myself a mini PC (a beelink “nuc like”), that should provide me with enough power for live usage - so I don’t rely on a “gambiarra” as we brazillians call.
Bellow the image of a true “gambiarra” so everyone understands lol
image

this is perhaps not a true ‘gambiarra’, but it certainly springs from the same source (plus it also serves as a bbq mid-journey):

i’ll have to put brazil on the list of places i might retire too. for the gambiarras yes, but also i really love the inventiveness, spirit and humor in ‘Ninguém Tá Olhando’.

time to learn some portugeuse.

Well, you know two of our most well known jargons already! “Ninguém tá olhando” and “gambiarra” are two classics! haha
But yeah, Brazil is an amazing place to live - not that I’ve been to anywhere else. But I love the place I live and most of the places I know. From the beautiful beaches to the high cold mountains, there’s a place for literally anyone in the world! And as you might suspect, as a “gringo” (there you go, another word!), you’ll always be warmfully welcome!