purtroppo il problema di buffer~ risiede nel fatto che ogni qual volta venga impostata la sua dimensione, questo viene resettato e quindi il suo contenuto cancellato. Il modo più efficace, veloce, leggero per fare una cosa simile ad un buffer~ dinamico è quello di impostare una durata iniziale piuttosto lunga (già 20 secondi sono parecchi) e dimensionare la lettura del buffer~ a proprio piacimento direttamente con groove~ o play~.
Per quanto riguarda lo scripting non ho la più pallida idea

Edit
causa l'ora tarda ho completamente fraiteso la domanda, scrivendo una risposta che non c'entra assolutamente nulla ahahah
comunque, tornando alla domanda, ti conviene creare dei buffer tramite script? Non è più comodo stabilire una cifra massima di buffer che andarai ad utilizzare considerando che più di un tot non ne utilizzerai, o addirittura creare un unico buffer molto lungo da utilizzare in maniera segmentata e ripartita tra diverso groove~ ecc..? Personalmente farei così