there are 2 buffers. each is 16777216 frames or ~350 seconds. this length is basically arbitrary but it is useful that it is a power of 2 (2^24.)
the buffers could be longer. the limitation is RAM. we want to leave a healthy amount of RAM for other things. currently softcut uses ~150MB or something which is probably conservative.
there could be more small buffers instead of 2 large ones. but this limits the length of time that can be addressed by a single voice. (unnecessarily, IMO)
i made 2 assignable buffers mostly as a compromise for convenience, so that you can have 2 voices sharing the same time-base without crossing heads. (the main application being stereo playback - itās too weird to have to manage timing offsets for L/R channels.) but itās also good to be able to have voices sharing the same buffer and time-base for Weird Stuff.
in other words, we require a control-side abstraction, if you want to share timebase amongst more voices that are actually pointed at different buffer regions; this decision priorities flexibility.
that said, iād be ok with bumping it up to 4 buffers if that request has consensus (and is deemed more valuable than doubling the buffer length.)
finally iāll point out that there are a lot of applications for which softcut is overkill. for example, any kind of playback without sampling, especially streaming from disk, can be accomplished very easily and more efficiently in supercollider (today), or other jack clients (tomorrow), without limitations from RAM. of course MLR doesnāt use SC now, but one could fork it and add more things that way.