On Wed, 2013-03-20 at 17:50 +0600, Alexander E. Patrakov wrote: > 2013/3/20 Matthew Robbetts <wingfeathera at gmail.com>: > > Ah sorry, I see what you mean. Yes, you're right. > > (except for the typo: 2 -> sqrt(2)) > > > Either, the > > coefficient design code should be changed to the arbitrary filtering > > correctly (probably quite a lot more code to do this), or the the user > > interface should be constrained to only actually allow the user to ask > > for second-order Butterworth. I agree that the latter is probably more > > suitable. > > > > I clearly have not added very much here. Sorry for the noise! > > No need to say sorry. We do need your eyes for the next round of DSP reviews. > > Tanu: I am still waiting for your reply regarding the best way to do > clickless rewinds in IIR filters (i.e. one of: "disallow rewinds", > "keep full history of the intermediate state", or some creative > solution). Oh, I didn't realize that a reply was needed. Your description of the problem and the suggested solutions were pretty spot on. Keeping a full history of the internal state would be the best solution, as far as I can see. "Full" means pa_memblockq_get_maxrewind(u->memblockq). Changes to the maxrewind value can be caught in sink_input_update_max_rewind_cb(). Disallowing rewinds would probably be easier to implement, but it can cause unacceptable latency for volume changes etc. -- Tanu