there are incremnents to do still, but thanks :)
2014-04-12 9:25 GMT-03:00 patrice colet <[email protected]>: > > Le 12/04/2014 08:45, Alexandre Torres Porres a écrit : > > > change the [fexpr~] to something like > > [fexpr~ $x[0] + ($f2 * $y[-1]) + ($f3 * $y[-2])] > > f*ck, I'll be damned, now my patch that implements [bp~] with [fexpr~] > seems to work, it's attached. Thanks! > > > thanks for the share, when I tried to implement filters with expr and > biquad I haven't been able to get it working fully (some clics appeared > when changing frequency)... Your implementation works very well in both > cases, "chapeau bas" > > > > it's pretty easy to see that from the code you quoted > > I can't really see it from the code itself. And, well, remember I > mentioned about the biquad code? > > { > t_sample output = *in++ + fb1 * last + fb2 * prev; > if (PD_BIGORSMALL(output)) > output = 0; > *out++ = ff1 * output + ff2 * last + ff3 * prev; > prev = last; > last = output; > } > > Well, I made a silly confusion mistake and thought the first line was > feedforward (and then equivalent to the bp~). But still, it could be it > for all I can tell. How can you actually see wether is feedback or not? > > Anyway, the patch works and I can also make it on biquad, it's all > attached. > > > after all it's a resonating filter and therefore needs a feedback path. > > I wouldn't know about that, but that's how you convinced me you knew > what you were talking about :) > > Thanks again > > > 2014-04-11 16:46 GMT-03:00 volker böhm <[email protected]>: > >> >> On 11.04.2014, at 16:48, Alexandre Torres Porres wrote: >> >> > ""last" and "prev" are the last two _output_ samples. >> > i don't know fexpr~ very well, but it looks like you try to access the >> last _input_ samples." >> > >> > In [fexpr~] you can access input samples with $x variables and output >> samples with $y. So you're correct. I'm going for the input samples. >> > >> > But I did it because I believe "last" and "prev" in this formula are in >> fact about input samples. >> >> >> no, and it's pretty easy to see that from the code you quoted: >> >> > > t_sample output = *in++ + coef1 * last + coef2 * prev; >> > > >> > > *out++ = gain * output; >> > > >> > > prev = last; >> > > >> > > last = output; >> >> >> after all it's a resonating filter and therefore needs a feedback path. >> so it somehow has to take outgoing samples back in. >> >> >> > So I feel pretty strong about getting this [fexpr~] right. Is there >> anything I did not take into consideration? >> >> yes, calculate coef1, coef2 and gain by using the formulas from the code, >> change the [fexpr~] to something like [ fexpr~ $x[0] + ($f2 * $y[-1]) + >> ($f3 * $y[-2]) ], >> (where $f2 and $f3 would be coef1 and coef2 resp.) >> apply the gain factor afterwards, >> and you are done. >> >> vb >> >> >> >> > > > [email protected] mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > > >
_______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
