diff options
Diffstat (limited to 'externals/grill/flext/tutorial/stk2/main.cpp')
-rw-r--r-- | externals/grill/flext/tutorial/stk2/main.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/externals/grill/flext/tutorial/stk2/main.cpp b/externals/grill/flext/tutorial/stk2/main.cpp index 5d6cb72c..bb440c91 100644 --- a/externals/grill/flext/tutorial/stk2/main.cpp +++ b/externals/grill/flext/tutorial/stk2/main.cpp @@ -45,6 +45,7 @@ public: virtual void ProcessObjs(int n); // do DSP processing PitShift *inst[2]; + MY_FLOAT *vec; private: static void Setup(t_class *c); @@ -76,10 +77,13 @@ bool stk2::NewObjs() { bool ok = true; - // set up objects try { + // set up objects for(int i = 0; i < 2; ++i) inst[i] = new PitShift; + + // reserve one signal vector too + vec = new MY_FLOAT[Blocksize()]; } catch (StkError &) { post("%s - Noise() setup failed!",thisName()); @@ -94,16 +98,18 @@ void stk2::FreeObjs() { for(int i = 0; i < 2; ++i) if(inst[i]) delete inst[i]; + if(vec) delete[] vec; } // this is called on every DSP block void stk2::ProcessObjs(int n) { - while(n--) { - MY_FLOAT f = Inlet(0).tick(); - for(int i = 0; i < 2; ++i) - Outlet(i).tick(inst[i]->tick(f)); - } + for(int i = 0; i < 2; ++i) + Outlet(i).tick( + inst[i]->tick( + Inlet(0).tick(vec,n) + ,n) + ,n); } |