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