On Tuesday, March 19, 2013 11:19:10 PM Alexander E. Patrakov wrote: > [I still have not verified the filter, sorry] > > 2013/3/19 Justin Chudgar <justin at justinzane.com>: > > I've created a module to ensure that only low frequencies are sent to > > devices at the end of an "lfe"/"subwoofer" channel. This module allows > > the user to select the master channel, the low pass cutoff frequency (aka > > corner freq, -3dB freq) and the number of filter poles. > > There is a problem with rewinds. You seem to completely reset the > filter on any rewind. The expected idea is that PulseAudio tells your > module this: "please forget that I just sent you X milliseconds of > audio", with the intention to send different audio in order to account > for a (failed e.g. due to a new event sound) speculative mix-ahead. X > milliseconds ago, your filter had non-zeros in monopole_data and > biquad_data, and you are completely zeroing that out. "Click!" > > I'm afraid that, with any IIR filter, you either have to say "rewinds > are not supported at all", or store the full history of monopole_data > and biquad_data for the duration of the maximum possible rewind. I'd love some feedback about the "best" of these choices from a pulseaudio perspective: - keep a huge buffer for history data - disable rewind [how does one do that?] > > Also I don't think that bqdt initialization is correct. You are > declaring the structure on-stack in pa__init() and then assigning the > address of that on-stack structure to the fields of a long-living > userdata object. I'm learning C as I go, so what would you recommend? > > -- > Alexander E. Patrakov > _______________________________________________ > pulseaudio-discuss mailing list > pulseaudio-discuss at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss