Project

General

Profile

EQ Processing Chain

Added by Zach B over 7 years ago

I'm experimenting with EQ plugins on Linux, dealing with the conundrum that there is no standard for ALSA / Pulse / Application level / etc. I'm finding that I prefer the performance and simplicity of the Audacious EQ rather than LADSPA alternatives like the popular Pulseaudio plugin or even the LADSPA host in Audacious.

All of my music audio is converted to 24 bit depth at the player, I have a mixture of 16 and 24 bit FLAC flies that I'm working with. Pulseaudio is configured for 96 kHz and will alternately fallback to 44.1 for typical CD quality playback. This allows me to play back all of my higher quality files without SRC, and will also pass 44.1 without any SRC.

My questions:

1. Where in the processing chain does the Audacious EQ get applied? Is it before the 24 bit conversion or after it (Bit Depth option in the audio settings)? Wherever it may be, is it possible to change this?
2. The source for the Audacious EQ indicates that it uses floating point precision, so I assume that there is no 96 dB threshold limit of 16-bit. Is this accurate?
3. I'd like to be able to add a few dB of EQ gain on a filter or two without attenuating, but all of my attempts produce clipping in highly-compressed music ("loudness war"). This seems to be a limitation in the processing chain between my players and my DAC. Any suggestions that you can offer? I suspect that any equalization at 24 bits or higher should not do this with 16-bit audio after a complete 24-bit conversion. I can't seem to find any information on the web about the best way to do this.
4. Is there any substantial advantage to using "Floating Point" for the Audacious bit depth if my DAC is 24-bit (as is the sound server)?

Thanks!


Replies (2)

RE: EQ Processing Chain - Added by John Lindgren over 7 years ago

Zach B wrote:

1. Where in the processing chain does the Audacious EQ get applied? Is it before the 24 bit conversion or after it (Bit Depth option in the audio settings)? Wherever it may be, is it possible to change this?

Audacious converts all audio data to floating-point internally, and equalization is applied on the floating-point data. Setting Bit Depth in the audio settings to 24-bit requires a second conversion back to 24-bit, after equalization.

2. The source for the Audacious EQ indicates that it uses floating point precision, so I assume that there is no 96 dB threshold limit of 16-bit. Is this accurate?

Correct.

3. I'd like to be able to add a few dB of EQ gain on a filter or two without attenuating, but all of my attempts produce clipping in highly-compressed music ("loudness war"). This seems to be a limitation in the processing chain between my players and my DAC. Any suggestions that you can offer? I suspect that any equalization at 24 bits or higher should not do this with 16-bit audio after a complete 24-bit conversion. I can't seem to find any information on the web about the best way to do this.

I think you're expecting the conversion from 16-bit to 24-bit to give you more headroom, but that's not the case unless you also reduce the volume. That's what the Preamp slider in the equalizer window is for (set it to a negative value).

4. Is there any substantial advantage to using "Floating Point" for the Audacious bit depth if my DAC is 24-bit (as is the sound server)?

Usually it's most efficient for Audacious to send its internal format (floating-point) to PulseAudio, and let PulseAudio handle any conversions needed for the hardware. Your mileage may vary.

RE: EQ Processing Chain - Added by Zach B over 7 years ago

Thanks John. I really appreciate the response. Sounds like the expectation of actually gaining headroom in the SNR in a 16-24 bit conversion is unrealistic, as you've confirmed.

I've got my preamp padded by the same value of the greatest +gain filter to prevent clipping and it does work. And it seems like the audio is identical to a scenario where I would attenuate all filters, so it seems to add or subtract based upon the preamp setting.

Since everything is float internally, I'll try it and let pulse do the rest to see if there is a performance change. I doubt that it's much on newer hardware. I've got some added audio hardware arriving this week which will take care of adding some of the lower frequencies, so I can go easier on the EQ filters; maybe 1-2 dB max.

I greatly appreciate the input and thanks for all of your work on this player.

    (1-2/2)