From 927d60dfcc4686f4869e66204047756003f417b7 Mon Sep 17 00:00:00 2001 From: Pierre Alexandre Tremblay Date: Wed, 7 Apr 2021 09:55:08 +0100 Subject: [PATCH] last typo and more verbose examples to DataSetWr --- .../HelpSource/Classes/FluidDataSetWr.schelp | 40 +++++++++++++++---- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/release-packaging/HelpSource/Classes/FluidDataSetWr.schelp b/release-packaging/HelpSource/Classes/FluidDataSetWr.schelp index da14798..dd1c27e 100644 --- a/release-packaging/HelpSource/Classes/FluidDataSetWr.schelp +++ b/release-packaging/HelpSource/Classes/FluidDataSetWr.schelp @@ -62,7 +62,7 @@ s.reboot; ~ds.print; ~ds.clear -//Write a 100 points as fast as possible - NOT WORKING (not getting 0, then 1 2 3 4 are the same values) +//Write a 100 points quite fast with server-side triggering ( ~ds.clear; OSCFunc({ @@ -73,7 +73,7 @@ OSCFunc({ { |n| var b = LocalBuf.newFrom([0,1,2,3]); var trig = Impulse.kr(ControlRate.ir / 8); - var idx = Stepper.kr(trig,min:-1, max:n); + var idx = Stepper.kr(trig,min:-1, max:n); //we need to start at -1 to catch the first increment 4.collect{|i| BufWr.kr([(4 * idx) + i],b,i)}; FluidDataSetWr.kr(~ds,idNumber:idx,buf:b,trig:trig); SendReply.kr(idx >= (n-1), '/datasetwrdone'); @@ -84,13 +84,37 @@ OSCFunc({ ~ds.print; ~ds.clear -// incremental buffer writing +//Again, but as fast as possible using a feedback of the trigger we are given when the writing is done +( +~ds.clear; +OSCFunc({ + "FluidDataSetWr help: all points written".postln; + ~ds.print +},'/datasetwrdone').oneShot; + +{ |n| + var b = LocalBuf.newFrom([0,1,2,3]); + var trig = LocalIn.kr(1,1); + var idx = Stepper.kr(trig,min:-1, max:n); + var wr = FluidDataSetWr.kr(~ds,idNumber:idx,buf:b,trig:trig); + 4.collect{|i| BufWr.kr([(4 * idx) + i],b,i)}; + LocalOut.kr(Done.kr(wr)); + SendReply.kr(idx >= (n-1), '/datasetwrdone'); + FreeSelf.kr(idx >= (n-1)); +}.play(s,args:[n:100]); +) + +~ds.print; +~ds.clear + +// incremental buffer writing - sky is the limit +// start the entry maker, trigging twice a second ( { var buf = LocalBuf.newFrom([0,1,2,3]); var noise = 4.collect{WhiteNoise.kr()}; var trig = Impulse.kr(2); - var count = Stepper.kr(trig,min:0); + var count = PulseCount.kr(trig,); 4.do{|i| BufWr.kr(noise[i], buf, DC.kr(i)); }; @@ -98,10 +122,10 @@ OSCFunc({ }.play(s); ) -//print a few times (NOT WORKING - not getting the 0) +//print a few times ~ds.print; -//clear before flushing the writing synth to enjoy the behaviour +//clear before flushing the writing synth ~ds.clear ~ds.print; @@ -111,7 +135,7 @@ OSCFunc({ var buf = LocalBuf.newFrom([0,1,2,3]); var noise = 4.collect{WhiteNoise.kr()}; var trig = Impulse.kr(2); - var count = Stepper.kr(trig, max: 10).poll; + var count = Stepper.kr(trig, min: 0, max: 9, resetval: -1); //0 to 9, starting at -1 to catch the first entry 4.do{|i| BufWr.kr(noise[i], buf, DC.kr(i)); }; @@ -119,7 +143,7 @@ OSCFunc({ }.play(s); ) -~ds.print; //NOT WORKING - after one run around, sidNumber is multiplied buy 10! +~ds.print; ~ds.clear ::