Another ping. And this time I am actually trying to push, sorry ;)

See the previous (unfinished) discussion:

        
https://sourceforge.net/p/faudiostream/mailman/faudiostream-devel/thread/20230429164124.GA26777%40redhat.com/#msg37837542

Let me resend both patches with some renames and cosmetic changes
plus more documentation in the changelogs.

Can you explain why you dislike this idea?

Yes, the new primitives are not very useful in pure faust code,
I mostly need this feature for https://github.com/oleg-nesterov/fpp
and for the code which uses ffunctions. I can provide the examples,
but I guess this won't help because nobody is interested in fpp ;)

Still I think even the pure faust code can use it too, and maintaince
wise these patches add a single keyword + single (and simple!) file.

I can even make a Pull Request if this can help ;)

-----------------------------------------------------------------------
If nothing else, you can use it for debugging. Say,

        process = *(ma.PI) : tan <: internal.lo, internal.hi;

outputs

        output0[i0] = FAUSTFLOAT(INFINITY);
        output1[i0] = FAUSTFLOAT(INFINITY);

and this shows that checkFloat() asks for improvements, it does not
distinguish positive/negative infinity.

------------------------------------------------------------------------
Or. suppose I have a sine oscillator, say,

        sine = os.oscrs;

How can I implement sine_or_zero(f) which doesn't generate any code
and outputs 0 when 'f' is compile-time constant == 0, and outputs
os.oscrs(f) otherwise?

This can be useful in jm_osc() we recently discussed, see
https://sourceforge.net/p/faudiostream/mailman/message/37886119/
Note that there are two "important" cases when f0 == 0 or f0 = df,
in both cases it would be nice to throw out the unnecessary code
if we can detect this at compile time.

Oleg.



_______________________________________________
Faudiostream-devel mailing list
Faudiostream-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-devel

Reply via email to