Stephane, I am shy to disturb https://github.com/grame-cncm/faustlibraries with such a trivial/random change(s), but I'd like to "finish" the recent discussion on discord. Note that even ba.time is obviously suboptimal. I can make a PR if you think this makes any sense.
- ba.time: eliminate -(1) before: iRec0[0] = iRec0[1] + 1; output0[i0] = FAUSTFLOAT(iRec0[0] + -1); iRec0[1] = iRec0[0]; after: iRec0[0] = iRec0[1] + 1; output0[i0] = FAUSTFLOAT(iRec0[1]); iRec0[1] = iRec0[0]; - ba.period: eliminate the delay line created by 1' with p == 10 before: iVec0[0] = 1; iRec0[0] = (iVec0[1] + iRec0[1]) % 10; output0[i0] = FAUSTFLOAT(iRec0[0]); iVec0[1] = iVec0[0]; iRec0[1] = iRec0[0]; after: iRec0[0] = (iRec0[1] + 1) % 10; output0[i0] = FAUSTFLOAT(iRec0[1]); iRec0[1] = iRec0[0]; this change is not 100% compatible when p modulates, but I don't think this can break something. - ba.pulse: simplify the condition, obvious. --- basics.lib | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/basics.lib b/basics.lib index 6c1fc87..ed3e9c5 100644 --- a/basics.lib +++ b/basics.lib @@ -448,7 +448,7 @@ sweep = %(int(*:max(1)))~+(1); // time : _ // ``` //------------------------ -time = (+(1)~_) - 1; +time = +(1)~_ : mem; //-------`(ba.)ramp`---------- @@ -525,7 +525,7 @@ tempo(t) = (60*ma.SR)/t; // * `p`: period as a number of samples //------------------------ // NOTE: may be this should go in oscillators.lib -period(p) = %(int(p))~+(1'); +period(p) = %(int(p)) ~ +(1) : mem; //-------`(ba.)pulse`---------- @@ -542,7 +542,7 @@ period(p) = %(int(p))~+(1'); // * `p`: period as a number of samples //------------------------ // NOTE: may be this should go in oscillators.lib -pulse(p) = period(p) : \(x).(x <= x'); +pulse(p) = period(p) == 0; //-------`(ba.)pulsen`---------- -- 2.25.1.362.g51ebf55 _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users