Hi Julius,

On 08/17, Julius Smith wrote:
>
> Hi Oleg,
>
> This looks good to me. I believe I wrote the original fb_comb in
> filter.lib, but I don't remember the extra output delay at all. If I did
> it, my wild guess is that I was working from some old CCRMA documentation
> for unit generators on the Samson Box that had the extra delay due to its
> hardware constraints.  I do recall aiming to reproduce the main
> reverberators in use at CCRMA back in the day.  I can also imagine it's to
> ensure that the forward delay is at least one so that one can throw
> feedback around fb_comb.   That seems reasonable for users who might get
> into trouble otherwise.

Thanks! I was afraid I missed some subtleties in this simple code ;)

> While I am happy to adopt any equivalent rewrite, maybe it is too obvious
> to mention that we should keep the extra delay (assuming it was introduced
> long ago), simply to not break anything that depends on it.

Sure, agreed.

but again, even if we keep the extra delay we can rewrite fb_comb() as

        fb_comb(maxdel,N,b0,aN) = + ~ -aN * de.delay(maxdel,N-1) : *(b0) : mem;

to make it simpler, generate a better code, and avoid the extra fRec[2]
delay line. Same for fb_fcomb().

> We could use a
> new name for your leaner version.

Well... not sure the new helper makes sense, but may be something like

        fb_xxx(dop,N,b0,aN) = + ~ -aN * dop(N-1) : *(b0);

Then we can rewrite fb_comb/fb_fcomb as

        fb_comb(maxdel) = fb_xxx(de.delay(maxdel)) : mem;
        fb_fcomb(maxdel) = fb_xxx(de.fdelay(maxdel)) : mem;
        
and I actually did this to use

        fb_xxx(de.fdelay4a(maxdel))

because delay/fdelay didn't work well for me.

Oleg.



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

Reply via email to