[pulseaudio-discuss] Biquad LR4 for module-lfe-lp

Justin Chudgar justin at justinzane.com
Fri Mar 29 15:36:09 PDT 2013


https://github.com/justinzane/pulseaudio.git

Alexander:

Now that I have a possibly working rewind implementation, Iwanted to make sure 
that I understand your guidance on doing a correct LR4. Following is what I 
currently think I need to do:

- split channels into 3 sets: lowpass, highpass, and allpass

- calculate the respective biquad coefficients using a Q=0.5, with one set of 
coefficients for both stages of the lp/hp/ap cascades -- that is, 
    [3][a0,a1,a2,b0,b1,b2] 

- use two separate data buffersfor each channel, for the first and second stages 
respectively -- that is,
    [numchannels][2][ [y0,y1,y2,w0,w1,w2]

Another question I have is whether float or double are more appropriate for the 
actual calculations. Reducing my implementation from double to float seems wise 
to me for speed and space reasons on 32bit platforms, but I'm not sure that 
loss of precision in an IIR filter is acceptable.  

If you review the actual code, I know it is not done to the style standards. I 
am going to clean it up once I've made sure that it is fundamentally correct.

Thanks for your patience while I am learning.

Justin


More information about the pulseaudio-discuss mailing list