Is it possible to address buffer size automatically?

My keys setup is more demanding than my guitar setup and I can easily run guitar at 128. A guest player, who knows little of this kind of tech, strictly real amps and pedals, asked if there was ‘some kind of delay’ when playing through my rig a couple of days back. I have no doubt he was feeling it at a buffer of 256.
I didn’t say what I was doing, dropped the buffer to 128 and he was immediately happy.

It’s certainly more tolerable to have a few MS more on keys than guitar. Got me wondering whether there is any way to address the buffer size via a binding.
Is this feasible?

1 Like

I never notice higher delays on keyboards, and I surmise that is because I am playing to a click/backing generated inside Cantabile, so I am playing against what I hear.

I am not using Cantabile to process real time audio inputs

I have been dropping the buffer down to 128 lately specifically to play the Rhodes plugins and have found the “feel” a lot punchier and more like a real Rhodes.

1 Like

And therein lies the difference. One definitely feels it on guitar,
It’s not the kind of setting I feel like like futzing around with in a live situation, which is why I’m interested in knowing whether a specific buffer setting could be invoked on song load.

I know there’s only a few ms in it, but I definitely feel more connected on piano parts when the buffer is at 128, to the point that I think it would be pretty easy to identify on a blind test.
It’s a drag that one sets the buffer for safety, and that means the most demanding songs dictate the responsiveness of the entire set.
Whether it’s detectable by every player is not particularly the question here.
The question is whether something I could invoke manually can be automated to adjust on song load.
Closest I can get is to have a binding open the options window - which would at least force me to change the setting, and give a me a useful power cycle. :nerd_face:
Be great if there could be an indexed invocation of the desired buffer setting.

I’m no coder but this might require a script invoked by Cantabile. Maybe Torsten or one fo the other experts can chime in on this.
A few more random thoughts:
-As a guitar player I play better when I’m under around 8ms or so. I used to gig around 15ms and eventually learned to play ahead of the beat a bit, but it still drove me crazy. I decided I’d had enough and built a new rig.
-I know budget is always a concern, but a better interface would solve the issue, as you’re probably aware. I’m a fan of my Presonus Quantum 2626, I get down to around 4ms IIRC, and I run at 44.1/64. In fact I have 2, and 2 NUC 12’s, which get me that minimal latency. The NUC + Quantum run around $1500 all in, I think.
-My first song in a setlist is always the same “starter” song, with a Show note of my checklist, stuff to test, problematic songs to double check, etc. Like you, it also has several bindings, e.g. opening Midi Guitar to the correct starting preset, etc. I also have a 1K tone for the soundguy in that song, which helps to avoid lazy gain staging on their end (my peak is always about -3db from the tone, so it gives them plenty of headroom). I now go through the checklist religiously at every gig, and it’s saved my butt more times than I can count.

Wish I could be of more help, best of luck!
Tom

1 Like

I’ve nominated to use ASIO4ALL as the driver on the Saffires I use. (Always preferred FireWire and every time I see a Pro24 come up, I grab it.) 2.9 ms throughput with no problems - on my guitar setup. I think it’s doing a better job than the Focusrite driver.
The keyboard rig is more demanding - and too risky to run at super low latency - but it’s still solid at around 6 ms. ASIO4ALL allows for ‘inbetwen’ buffers like 160.
I would suggest that we suffer latency because the other benefits of a virtual rig are so great - but it is a sacrifice.
For me, the test is lowering the buffer as far as possible and seeing if I can feel it. The difference in touch between a 128 and 256 buffer seems very obvious … but I’m not sure I trust the unblind test.
The guitarist who played through my rig at a 256 buffer knew straight away. I said ‘just a minute’ dropped the buffer to 128 and, without knowing what I’d done, he said ‘that’s it!’
Just got me thinking about optimizing the buffer at song level.

Yep, that’s my experience as well on 256 vs 128. I don’t feel much difference between 128 and 64, I can’t remember what it is but it’s probably only three milliseconds or so. Oddly, on my EWI I swear I can feel the difference between 64 and 128, but since that’s all MIDI that doesn’t make a lot of sense.

Interesting :thinking:

I guess I will have to re-think 512.

Put a piano sound up. Play it at 512.
Then play at 128. I will be most surprised if you don’t feel the immediate shift in connection.
@twaw
Cubase reports roundtrip latency, as opposed to just (I believe) output latency as Cantabile does. We need to know the round trip because that’s the time it takes to actually hear the sound from the point audio enters the system, which is the case for guitars or any sound entering the system from the real world.
512,reports a total round trip of around 25 ms.
128 reports round 8 ms.
That’s a not in significant jump.
The difference from 128 to 64 is, obviously, way smaller; only around 3ms difference, and the demand can trip up a system where you may wish to leave a little more headroom in a live situation.
ASIO4ALL reports around 7 ms at 128 and around 8.5 at its ‘in between’ buffer of 160, with a marginal improvement in headroom.
I know we don’t play numbers, but for guitars the round trip latency is very discernible from 256 up.
That’s 12 ms you’d never feel plugged into a real amp.
Many years back - maybe 20 years ago, I was having a conversation with Charlie Steinberg about this. He claimed that playing through the delay caused by latency could make a musician more relaxed. A complete inversion of reality!!
I pointed out that one would be pushing to compensate and that is never relaxed. And the byproduct? You’ve learned to push. Now you’re back on real world instruments and you’re pushing, having acclimatized to the ‘relaxing’ world of latency - something we never dealt with in the traditional studio environment. Charlie did concede the point.

1 Like

Very interesting about the Steinberg conversation… I agree with you, it takes more concentration or subconscious learning when playing with latency. FWIW I always use Latencymon to check latency… I haven’t found software yet that is as accurate, especially since with Latencymon you are physically hardwiring and testing actual round trip, IIRC.
Tom

1 Like

My bandmates often tell me that they can perceive a sizeble latency when they try out my rig, expecially when it comes to the guitar. I use (used?) VoiceMeeter to combine Window’s audio with Cantabile and to share the same interface (Steinberg UR22mkII) between Cantabile and Reaper.

So I did a real-life test, just using my mobile phone mic. I placed the phone close to the guitar, near the point where I am picking the string. The (electric) guitar goes into a DI-box and then into the UR22. The signal enters Cantabile, where it is processed through Nembrini Nexus. Inside Nexus I have just an amp sim. By playing short muted sounds, the phone records both the sound of the pick on the string and (after some latency) the sound of the guitar coming out of the speakers.

The speakers are about 80 cm far from the phone, so sound needs about 2.4 ms to go from the speaker to the phone. I then load the audio file (as recorded by the phone) into audacity, so that I can measure the latency between the pick sound and the guitar sound.

That’s what I found (it is not an extensive experiment, I tried just a few combinations):

Samplng Rate: 44100 Hz for all tests.

Buffer Size =128 VoiceMeeter=yes Latency=21ms
Buffer Size =256 VoiceMeeter=yes Latency=33ms
Buffer Size =128 VoiceMeeter=no Latency=7ms
Buffer Size =256 VoiceMeeter=no Latency=16ms

Latency value includes the 2.4 ms mentioned above. The uncertainty on the quoted value could very well be one (even two) ms, given the way it is determined.

When using VoiceMeeter, Cantabile uses VM Virtual ASIO and VM uses Yahama Steinberg ASIO Driver.
When VM is not used, Cantabile uses the Yahama Steinberg driver directly.

I did a similar test with my keyboard and a piano sound, playing the highest octave. The results are more uncertain in this case (it is not so obvious when the piano sound starts with respect to the sound of the key being pressed). At 128 samples, no VM, I get about 25 ms, which is more than what I get with the guitar (the piano plugin is Pianoteq8), maybe due to the time needed by the plugin to calculate the waveform.

Finally, I guess my bandmates were right and I was just used to the latency. I will probably avoid using VM live from now on, expecially when playing guitar.

Gabriel

Edit: the test was done on my desktop system, I have still to try it on my laptop, which is the actual PC I use live.

1 Like

I think in any situation you will compensate a little when you are used to it, playing a little bit earlier ahead of the beat.

We must remember there is latency everywhere. When a drummer hits a snare (hopefully in time :wink: ) you are not hearing it instantaneously, and there is inherent delay in you then playing something in reaction to hearing it.

I remember in the Floyd band our second guitar player trying to play an acoustic guitar during sound check with no local amp, just foldback and then the hall reverberant sound and he had terrible trouble playing to the click, but our main guitar player had no trouble. So it affects us all in different ways

Just pitching in on all the latency madness - it is useful to consider that a millisecond of latency is equivalent to 0.34 m (about a foot) distance from the sound source. So if you are a guitar player having your amp/speaker at the back of the stage and you’re playing a solo at the front of the stage some 6 meters away, you have a natural latency of 17.6 milliseconds. So much for these guitar players who can’t live with a modeler’s 2.5 ms…

And imagine an organist playing the second playing table, some 20 m away from the pipes - a whopping 60 ms latency. I admire these people - that’s something you have to play by touch, not by ear…

Personally, I feel most comfortable with a buffer of 128 samples and in-ear monitoring (i.e. no speaker-to-ear latency); guitar feels sluggish at 256 or more (but that has full round-trip latency built in). But also for keys, 128 seems to be my sweet spot for actually playing by “feel”, reacting to and shaping the sound and not just playing memorized lines. Especially dynamic, funky piano or Rhodes parts just don’t work for me at higher latencies…

Just my 0.02 EUR…

2 Likes

I think we are getting into a bit of a red herring here. For clarity, I think it would be helpful to confine ‘latency’ to describing the processing delay on our computer systems, during which the demand is satisfied or not. If it is, we hear clean audio. If it isn’t, we have to extend the time allowed for clean audio to be produced and that means ….. we ….. wait.
That a responsive system is desirable is, subjectively, true. Anyone here want a less responsive system?
We set our buffer to accommodate the highest demand in our setups, even if that demand is rare. Can’t risk dropouts!

My question relates to the guitar setup in my rig. It uses far less processing than the keyboard songs, and consequently it can use a lower buffer. Having played at that setting, I really like it, :blush:. I would love to have a way to have songs take advantage of their optimal buffer setting.
On a related note, I suspect such a shift would also act as an engine restart, a trick many of us use to make our recalcitrant Windows computers behave nicely.

How much of a difference is the particular audio interface making, I wonder? Any of you that have the RME interfaces, do you notice a difference ? Does 256 feel different on one verses the other?

Different interfaces do report differently at the same buffer setting.
My understanding is that the buffer is the time available for processing, and some devices do a better job within that frame, as we know.
Regardless, demand is demand, and any interface can be brought to its knees if the demand exceeds the buffer’s ability to deliver in time.

Ok. 128 on PianoTeq is good. 128 on Kontakt Uno not as good.
Keyscape e-pianos and regular pianos do not resemble a piano. The CPU rides around 60.
If I go back to 512, Keyscape is good.
I will have to fiddle with it some more when I get a chance.

The PianoTeq made me play classical tunes, which I never play. :grin:

2 Likes

So we’re talking about the computer’s capacity to run well at 128 with more demanding plugins.
What I would like to know is - could you feel the difference in ‘connection’ playing the pianoteq at both 128 and 512?

Yes…like I said, PianoTeq made me play differently, and there was a connection.
Uno has been my goto recently, but felt nothing different there.
Keyscape runs very well on my machine, and I use it on live gigs. The CPU is normally low, but 128 did jump it up, but not up to 100%. The sound was crap, and going back to 512 fixed it.
I do like the idea of changing buffer, especially when using an amp sim.