!7 import static x30_pkg.x30_util.VF1; module LiveVAD > DynPrintLog { transient Q q; transient new L buffer; transient int bufferSize, neededSamples; start { neededSamples = iround(2.0*44100); q = dm_startQ(); dm_addAudioListener(voidfunc(short[] data) { buffer.add(cloneShortArray(data)); bufferSize += l(data); if (bufferSize >= neededSamples*2) { bufferSize -= neededSamples*2; final L salvaged = cloneList(buffer); buffer.clear(); q.add(r { print("Got " + l(salvaged) + " chunks"); }); } }); } }