Sorry for delay,

You know, I am all confused and I am starting to think I can't make this
change ;) despite the fact that technically everything is trivial.

On 08/18, Julius Smith wrote:
>
> Nice!  I like the generalization of delay interpolation while keeping
> backward compatibility. I would only suggest a more foreground name for
> fb_xxx, such as fb_comb_common,

I'd prefer __fb_comb() but I won't insist,

> suggesting that it's a function shared by
> the other feedback-comb variations, and that it's a "helper" function not
> normally called by itself

Why not?

> (no mem protection, e.g.).

sorry, I don't understand this part...

> Then I would also add
>
>         fb_f4acomb(maxdel) = fb_comb_common(de.fdelay4a(maxdel)) : mem;

Hmm... the extra ": mem" again? for what?

In any case I am not sure this makes sense... We also have fdelay[1-3]a,
we have fdelaylti/fdelayltv, we can have more "delay" helpers, I don't
think we should add the fb_comb variant for every dop.

> (I still follow the "define it when you really need it" rule myself.)

Exactly! see above...

--------------------------------------------------------------------------
But the main problem is comments. Let's start from the very beginning,
currently we have

        // #### Reference
        // <https://ccrma.stanford.edu/~jos/pasp/Feedback_Comb_Filters.html>
        fb_comb(maxdel,N,b0,aN) = (+ <: de.delay(maxdel,N-1),_) ~ *(-aN) : 
!,*(b0) : mem;

and as I have already mentioned the purpose of ": mem" is not documented.

But there is another thing I didn't notice before: the link above describes
the difference equation as

        y(n) = b0*x(n) - aN*y(n-N);

while this code (without the extra/undocumented mem) implements

        y(n) = b0*x(n) + aN*y(n-N);

(just in case... of course, both versions make sense! my only concern is
 the documentation).

So. If I do (as we discussed before)

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

        fb_comb(maxdel) = fb_xxx(de.delay(maxdel)) : mem;

How can I document fb_xxx() ?

Should I try to fix the comment above fb_comb/fb_fcomb ? If yes, how?

--------------------------------------------------------------------------
Now. If I do

        // note the -aN => aN change
        fb_xxx(dop,N,b0,aN) = + ~ aN * dop(N-1) : *(b0);

then this version can refer to ~jos/pasp/Feedback_Comb_Filters.html,
just the comment should explain that "dop" possibly means the fractional
delay.

But then fb_comb() should be defined as

        fb_comb(maxdel,N,b0,aN) = fb_xxx(de.delay(maxdel),N,b0,-aN) : mem;

not really nice from the code reading perspective. And it is still not clear
what should I do with the comments above fb_comb/fb_fcomb.

--------------------------------------------------------------------------
In short. sorry for the spam, let me repeat I am all confused.

And... sorry for the spam, I am going to ask another question ;)

Oleg.



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

Reply via email to