Jump to content

I/O Buffer Size vs Process Buffer Range


Woodland Hills

Recommended Posts

There is very little clear information about exactly what the Process Buffer Range is to be honest. You can find numerous discussions about it in this forum and mentions about it various articles on the web are all kind of vague and in my opinion, speculative.

 

Supposedly it could be adding more latency, but there is no indicator anywhere in LogicPro; that would show you how much more latency it is allegedly creating if you use say, the large setting.. Change that value in preferences and the reported latency does not change at all. That doesn't mean its not there, you would need to do some loopback tests to find out, but its not indicated as any kind of value anywhere in LogicPro.

 

My own experience is that I don't notice any additional latency when I use the large setting and pretty much leave it on large all the time.

 

There are some old discussions from a decade ago where people talk about some subtle midi timing problems unless they use a small setting. No idea if those discussions had merit or were speculative also. Its quite possible that the environment itself could have a bit more latency when using the large setting...but that playback from tracks to instruments would not have that problem at all. etc.. Basically I am speculating too now, hehe. The truth is there is hardly any real information about this setting. The environment processes midi outside of the normal plugin process block...so this setting MIGHT be related to that environment processing and perhaps you will not notice any difference whatsoever unless you are doing tricky things in the environment? Speculation. The docs are vague. We don't know.

 

I have noticed that with certain extreme tasks with lots of midi traffic and lots of stuff in the environment, a SMALL setting resulted in dropped notes sometimes and when I changed it to large, then all the notes went through. So I just leave it on LARGE all the time now.

 

Bottom line, I wouldn't worry about it. SMALL is probably the one to use, but if you start having weird problems, then bump it to medium or large to see if the problems go away.

 

the other buffer, the I/O buffer, has to do with the size of audio buffer that is passed to the sound card. A larger buffer has exactly that much latency added, calculated precisely based on the size (in samples) and the sample rate. That's why the audio preferences actually displays that value to you so that you know. We get no such indicator for the Process Buffer Range. Apple does say in their own docs that it can increase latency somehow, but no more information then that is provided.

Link to comment
Share on other sites

Dewdman42,

 

I agree with you. I Googled it and really couldn't find anything pertaining to what the latency is actually doing. For instance if we change the Buffer Size from 128 (my current setting) to 512, when you play your keyboard, there's noticeable latency, which is why I keep it at 128. I tried changing the Buffer Range from Small to Medium, and the Resulting Latency still reads 10.7 ms Roundtrip (5.3 ms Output), so clearly there's no difference there, so I'll leave it set to Medium.

Link to comment
Share on other sites

it doesn't necessarily mean there isn't some latency happening, its just not represented on that dialog box in the number you see. The latency would be most likely in the midi...and it would be hard to test because it would be a factor of how much latency is there between when you press a key on your keyboard and hear a sound. There is some inherent latency in the midi connection over USB already, that latency is also not reported in the audio preferences value you see. But you'll feel it if its large enough. Fortunately midi latency is less than 1ms...the main problem with midi latency is that its not consistent, so you will hear people talk about jitter. That variable amount of latency is not reported at all in that 10.7ms number you see. That 10.7ms number is the amount of latency required to process your audio, in addition to midi.

 

I suspect that the Process Buffer has to do with the way midi is processed in real time as it comes into LogicPro, before it actually goes into the channel strip. There is some real time processing, which will create latency of its own...but this latency is probably very very small compared to the IO Buffer.

 

But anyway, even though you don't see it in that number doesn't mean its not happening. But the only way to find out for sure is to do some loopback tests.

 

You could do a loopback test and include a microphone sitting next to your midi controller to actually record the sound of your finger hitting the key, in order to figure out how much latency midi is introducing, etc. . Kind of a hassle to test really, but that is the only way to know for sure how much latency your system has.

Link to comment
Share on other sites

The mixer has to process all audio - sending buffers to plugins, returning the results, copying audio streams to sends, mixing all the various streams together, and so on. All audio processing is based on processing buffers for efficiency - the computer has to calculate every sample, but by chunking it into blocks, the engine can work ahead of itself, then leave time in between for other tasks - updating graphics, and so on.

 

The smaller the buffers, in general, the more work the computer has to do as it's having to fetch and calculate smaller blocks but much faster, rather than bigger blocks slower - this is true for the input buffers too.

 

So - the larger the process buffer, the larger blocks you're calculating, so the processor is a bit more efficient. I can't remember what mine's set to offhand, but I *rarely* if ever change it, unless I'm struggling for resources in which case I often increase the audio buffers and sometimes the processor range to get a more favourable result.

 

That's what I understand about that setting. And from the LP7 manual:

 

"Process Buffer Range

This parameter determines the size of the native buffer used to compute mixes and effects. Choose between Small, Medium, and Large buffer sizes.

 

Note: Larger buffer sizes will increase latency. Dependent on CPU speed, buffer sizes that are too small might compromise real time audio processing."

Link to comment
Share on other sites

It can be easily verified and measured with loopback audio test. Run a loop back test with all three settings of process buffer range and see if there is any difference. The loopback should match the reported latency in all three cases.

 

Loopback test is the only way to know if and when this process buffer range setting is somehow adding more latency beyond the hat is reported in audio prefs for the soundcard buffer

Link to comment
Share on other sites

It’s also possible, that the process buffer range amplifies the latency created by some plugins, more speculation but there you go.

 

The information in all manuals past and present is vague in this topic, so we cannot assume anything more then take whatever was written at face value which might mean that in certain situations some latency could be added by this buffer but you can only notice it except for that situation and we don’t know how MUCH latency they are talking about. so really it’s vague and useless information unless quantified through measurement in some way.

 

My actual experience has been that I do t notice any additional delay in the system when using a large setting and this minimizes the prospect for problems due to not having a big enough buffer, but as I said I have seen reports that a large setting caused some people in years past to have some midi timing problems but I saw no specific information about how or when it was a problem for them.

Link to comment
Share on other sites

https://support.apple.com/en-gb/HT203930

 

"Process Buffer Range: Set this option to Large. As with the I/O buffers, higher settings increase latency."

 

https://www.soundonsound.com/techniques/looking-after-logic

 

"The Process Buffer Range is used to allocate the buffer size for Logic's mixing engine. Medium is the default, but it can be increased to Large to reduce the likelihood of overloads. However, you need to be aware that latency will increase in this case. It follows that latency will be decreased if you set it to Small, and this setting may be usable on very fast modern CPUs, so it pays to experiment if you're trying to achieve the lowest possible latency."

Edited by des99
Link to comment
Share on other sites

if you want to investigate, then yes, measure it - but make sure you measure it in all possible circumstances it can have an effect - otherwise you could measure it in one good config where it doesn't add latency and come to erroneous conclusions... It will require a bit of effort to really investigate the behaviour, if it does vary, and if it's related to I/O buffer at all, and MIDI timing, and audio drivers, and plugins etc...
Link to comment
Share on other sites

Exactly my point! We don’t know what exactly that is because the information provided is too vague. The only way to find out when you would need to use a small process buffer range is to run tests and find out how and when to set that setting small medium or large. Apple provides no information and personally I haven’t been able to hear any difference in latency Edited by Dewdman42
Link to comment
Share on other sites

Logic has been one of the first, if not the first, to have a hybrid sound engine where the playback tracks run on a larger buffer and the live tracks(armed tracks) can run on a smaller buffer. Aren’t those two settings exactly that? If you have a large project going, raising a low I/O buffer won’t change anything if there’s no armed tracks. And if your project grew up and arm a track, you’ll still record with a low latency because the armed track will use the I/O buffer setting and your project won’t struggle playing loads of tracks because it’s on the Process Buffer setting.

 

Before Pro Tools and Cubase got a similar hybrid engine(ASIO Guard in the case of Cubase), it was hell doing an overdub late in a busy project because you then needed to lower the buffer size to record with small latency and big project would then struggle to play back at the new low buffer setting. A Cubase friend of mine was at a loss when I told him that I was always staying at 128 samples buffer settings throughout a project and was able to record at any time with low latency without my project giving me crackles and pops. At the time, Cubase didn’t have that 2 buffers paradigm and it was hell working with big projects because if you had to lower your buffer for an overdub, the project would then be unable to play back correctly. Same for Pro Tools.

 

Blink

Link to comment
Share on other sites

no.

 

the I/O buffer setting in the audio preferences is the buffer size used for live tracks, in order to get low latency on the live track while recording. The playback tracks will be using some internal very large buffer size which we have no control over and don't need to. There would be no reason to ever make that internal playback track buffer anything smaller then as big as Logic Feels like making it.

 

The Process Buffer Range is something else entirely specifically related to the size of each process block most likely, but we're not really sure, the information is scarce. Its a lower level thing related to feeding the CPU. The I/O buffer size is related to filling the sound card.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...