multi-channel Sfizz~ : what seems to work best

dailytlj's icon

I have a project that requires multiple independent channels (10) of sampler output from a somewhat heavy sampler library.

I had been pushing the limits of both my own computer and the project computer the software will be deployed on. It took up a lot of space in RAM, but also was sometimes causing dropouts due to CPU overrun.

I'm here to document the things I tried and what I ended up doing. IE. what seemed to work best; It is not at all benchmarked or quantified in a legible way, but might provide a starting point for someone else's similar project..

sforzando in [vst~] vs the native [sfizz~] object:

Sfizz loads quicker and runs just as well. You lose the interface that sforzando provides, but that doesn't matter for my purposes.

One multichannel [sfizz~] object vs multiple single channel [sfizz~] objects: (with suitable .sfz libraries for each)

My thought was a single object might allow memory sharing, reducing the overall RAM. In the end, it might, but the hit to cpu too expensive, causing many dropouts, so I abandoned this avenue.

Flac vs Wav:

Flacs take less memory, and sound the same, but need to be decompressed at some point* before playback. The library I was using came as flacs. I converted to .wav, and it reduced the the CPU enough that I stopped getting any dropouts.
*I wasn't sure if flacs are converted once as they're read into RAM, or read into RAM and converted each time they're played. the CPU behaviour makes me think the latter.

So this might not be super helpful for the community at large, it's not a very rigorous comparison, but maybe suggests to a starting point if you're aiming for multi-channel sampler playback with low(er) CPU overhead:

tldr:

I got best results with: multiple single channel [sfizz~] objects using mono wav audio.