First it seems logical: the maximum size i can set is 268435455. (more causes "bad size" error)
As the size limit is somehow related to the maximum of a 32bit int which is 2147483647, i concluded
2147483647 / 4 (bytes per float) / 2 (floats per channel) = 268435455 ;
But why is the limit the same if i use a buffer with 1, 2 or with 4 channels?
It seems the channels do not affect the possible size. But what's the proper calculation of the upper limit then?
And don't we have 64bit OS and Max to overcome 32bit addressing problems?