Has anyone played around with lower _blocksize?

Looking through the code I see the default is 48, i.e. a latency of 1mS plus that of the ADC and DAC. It seems to work with blocksize = 1 for the lowest latency but I’ve been caught out before with the Linux ALSA library on a Pi4 where FIFO sizes less than 9 sometimes give distortion.

So question is has anybody seen any issues with using blocksize = 1 ? If so what was the minimum safe value ?

It depends on the processing complexity, and how it can take advantage of block processing. My current application is quite hungry, block-oriented and starts missing the schedule below 12 samples, but I think you can go below with lighter processing. When you go under a few samples, you should start considering downsampling heavy tasks, cutting them into smaller atoms spread across the frames.