Use 'fill sin' message to fill [buffer~] with sine wave of various lengths

Auris's icon

hey people,

i just noticed there is this easy way of filling a buffer with certain functions.
namely, sending a message 'fill sin 4' would fill it with 4 cycles of sin. But i wonder
how it would be possible to instead of refilling it every time just add it to the existing buffer?

what i want to do is to be able to add one or two (if 2 then twice as short) cycles to the buffer.

here is my current solution, but the above way could be better, plus i need to change the buffer size dynamically.

Max Patch
Copy patch and select New From Clipboard in Max.

any ideas? Thanks!