Rewind Handling in module-lfe-lp

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2013/3/27 Justin Chudgar <justin at justinzane.com>:
> https://github.com/justinzane/pulseaudio/blob/master/src/modules/module-lfe-lp.c
>
> First, thanks to both of you for helping me get this far. I've got a mostly
> correct (I think) filter setup based on Alexander's feedback. Now I'm trying to
> get rewind buffering done. I've read the wiki page that Tanu sent and I've been
> talking to ohsix on IRC.
>
> All of which has left me more educated but just as clueless about what to
> actually implement.... :(
>
> My understanding is that since I've got a causal filter, I need to do one of
> the two things when a rewind request appears:
> 1 - buffer the biquad samples so that I can restart filtering the rewound input
> memblock_q immediately
> - or -
> 2 - buffer the input samples for at least sample_rate/20 and when a rewind come
> in, set the biquad samples to 0.0 and filter the buffered input.

Option 2 is not correct. IIR filters are called "infinite impulse
response" for a reason. Please do the following test:

1. Create a wav file containing some samples with 0x7fff value
followed by silence (0x0).
2. Play it through your filter, record the output.
3. See at which sample the output becomes equal to zero and stays
there (withing the precision of 16-bit samples). Hint: way more than
one second, because we are looking for 99.99% of convergence.

-- 
Alexander E. Patrakov


[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux