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
[email protected]
https://lists.sourceforge.net/lists/listinfo/faudiostream-users