Allocate Memory for buffers?

I do “s.options.memSize_(2.pow(21)” and "s.options.numWireBufs_2.pow(12)"before booting the server.

I should have enough to load a pool of 500Mb / 1500 samples. When I make a dictionary it says

“ERROR: No more buffer numbers – free some buffers before allocating more.”

Why is this? To free all Buffers “Buffers.freeAll” is the right command?

I run SuperCollider 3.12.2 Intel on a M1-Machine

I never had this problem on my old computer.

cheers and thanks, Bernhard

Server options includes a value for numBuffers which is by default 1024 - see ServerOptions | SuperCollider 3.12.2 Help
Try s.options.numBuffers_(10000) or however many you need.
Hope that helps.

Works perfectly this way. Thanks a lot

Note also that s.options.memSize has no effect on Buffer allocation. memSize is for delay lines, reverbs, FFT UGens etc. but not buffers.

Are you using so many delays that you really need 2 gigabytes for this? It’s a bit high IMO.

Also, numWireBufs has no effect on Buffer allocation. I can’t imagine any reason why you would need 8192 wire buffers. Those would be truly massive SynthDefs. Really, don’t change this unless you’re getting “interconnect buffer” errors when loading SynthDefs.


I use lots of random modulating delay lines or discrete reverb per speaker. With 50 and more speakers the result is amazing. I love complex speaker set ups.

My problem is more CPU. With multichannel expansion and plenty random iterations of everything, a single thread gets often critical.

I’ll start a new discussion around multi threading.

OK, fair :wink: it was a reasonable question, and you’ve got a good answer.

If your system has enough RAM for 2GB real-time memory in the server, then, go for it.

1 sec delay line = s.sampleRate * 4 (bytes/sample), and I think Delay*, Comb* etc UGens round that size up to the next power of two. So if you know how many delay lines and how long they are, it’s possible to estimate the memory requirement. (For reverbs, though, there’s probably not a 1:1 formula.)