On 02/15, Julius Smith wrote: > > Along these lines, we could have a more efficient impulse as well. We > presently use this all over the place: > > process = 1-1'; > => > for (int i = 0; (i < count); i = (i + 1)) { > iVec0[0] = 1; > output0[i] = FAUSTFLOAT((1 - iVec0[1])); > iVec0[1] = iVec0[0]; > }
Yes, impulse = FPP() int { decl: int imp = 1; post: imp = 0; exec: imp; }; process = impulse; => class mydsp : public dsp { private: int imp = 1; ... virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* output0 = outputs[0]; for (int i = 0; (i < count); i = (i + 1)) { output0[i] = FAUSTFLOAT(imp); imp = 0; } } looks better ;) in any case 1-1' looks suboptimal. prefix(1,0) makes more sense and it could generate the same code. I am a bit surprised it doesn't... Plus it is always broken. Say, prefix(1) : mem; leads to ERROR : no vector name for : prefix(1,IN[0]) Oleg. _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users