SSDBUFFER Dynamic RAM Allocation

wendycarlos's icon

Hi I wonder if exist the posibility to make the buffer object can manage dynamically size and location(RAM or DISK), I am in the middle of a project that is not viable because Max grow in RAM. In addition, the SSD being so common I would be very possible to use something like sfbuffer ..

do.while's icon

Hi .
take a note that when u erase your buffer it will clean used memory , or if u replace content of your buffer ,u will see changes in memory too .

wendycarlos's icon

Thanks Do...While
But the buffer grows dynamically up to their size without deleting content written so far?

do.while's icon
Max Patch
Copy patch and select New From Clipboard in Max.

well ,as for the buffer u have to resize it first to ZERO . (i think there was direct method as ive been researching it back in the days ,but its not working for me anymore) , so this is the trick as for my knowledge.

do.while's icon
Max Patch
Copy patch and select New From Clipboard in Max.

actually there is direct method
that magic -1 does the trick

# EDIT
where
0 : stands for start point
-1 : duration (positive value sets duration , so u can trunk file i guess) ,here -1 is resizing our buffer to current file size.
2 : stands for number of channels

wendycarlos's icon

Do ... While Thanks but I need a number of buffers that use in an app, which not reserve a certain amount of memory, but eventually grow dynamically to achieve that amount of memory.
The problem is that my app uses four tracks, but other functions, that apparently equivalent 2GB RAM just to start. (In the patch i need additional buffer for some operations as UNDO etc)
Everything works fine except for this issue which makes it almost ridiculously unfeasible my application. My application only used DATA inside Gen~, but i have to use external buffers by understand the problem.
Take into account the possibility gradually increase the amount of RAM dynamically only "x amount" ahead of "an index". .
Thanks for help Do...While!!!

do.while's icon

Hi
I cant imagine what is the logic inside your device from what u are describing . Its your data object causing to memory grow , because of peek/poke operations ?

anyway ... if u are working with huge set of sample library , then i would only load those samples that are required for current use/performations . other buffer cells should remain empty . This way you will stay with the memory usage of current samples amount . Would be appropriate to introduce purging system ,where at some point u have possibility to unload all the sample data from memory in order to fill buffers again . But im guessing that your scenario might be totally different .
Please try to describe in more details .

wendycarlos's icon

Hi!!! DO...WHILE
yes!! its a custom live sampler recorder, with some functions(peek~ poke~ based) with a terrible hunger for ram,
I wonder...
Can I use 16-bit internal buffer/data?
thanks for your answer!!!

do.while's icon

I see . it seems like u will need to stick to buffers as u can erase them from outside the Gen :/

16bit ? i believe that any poke'd data would be converted to 64bit anyway , but maybe im wrong as never bothered