LFE
So, we have an LFE bug blocker, and I thought of giving it a shot ..
First, what is an LFE?
Music and video tracks usually have multiple channels: "left" and "right" for stereo systems, and more for 5.1, 7.1 systems, etc..
It's specific for the low-pitched sounds in the 0-120Hz range (that is, bass). Here are some terminology:
- Satellite speakers: These are the normal speakers in your sound system. E.g. in a 5.1 setup, these are the 5 small speakers
- Subwoofer: The part which is good at the bass
- Downmixing: Playing for example a DVD with 5 sound tracks (front-left, front-right, rear-left, rear-right, front-center) in an only stero system (left, right). In this case the 5 audio tracks are 'downmixed' to 2 tracks
- Upmixing: Playing for example a 2-channel track into a 5.1 sink.. E.g. a classical stereo MP3 file played in a Dolby 5.1 sound system. In PulseAudio, set
enable-remexing=
tono
to disable both upmixing and downmixing.. - low-pass filter: A filter which extracts only the bass, low 0-120Hz range, in an audio wave
- high-pass filter: A filter which extracts frequences above the bass
- clipping: An audio waveform distortion, that occurs for example when summing two waves, or amplifying them, beyound the allowable output range. Wikipedia article has further details
- Sythesized lfe: When upmixing to an x.1 sound system, we need to create an lfe channel where originally there's none in the sound track. In PulseAudio, synthesized lfe is just an average of all audio input channels. Set
enable-lfe-remixing=
tono
to disable a synthesized lfe channel output - Crossover: The act of taking an audio signal as input, and producing two or more separated bands of high-, mid-, and low-range frequences. More details on the Wikipedia page. By default, PulseAudio now does a crossover on the synthesized lfe range, applying a low-pass filter to get only the 0-120Hz range by default. To change such range, set
lfe-crossover-freq=
to appropriate range. To disable filtering at all, and thus return to old PulseAudio default of generating a synthesized lfe channel this is just an average of all input channets, setlfe-crossover-freq=0
. This is further described nicely in PulseAudio 7.0 release notes LFE synthesis with low-pass filtering section. - Speaker delays: In large audio setups, this is done for example to "accepting a distance measurement in metres for each satellite, thus audio is appropriately delayed -- in ms -- for each channel"
What is the pulse bug?
The pulse bug is simply when an audio track (say stereo) is 'upmixed' to 5.1 channel, all of the bass is stripped
It can be reproduced in the following manner:
- Create a 5.1 null sink:
$ pactl load-module module-null-sink sink_name=NULL_5.1 \ channels=6 \ channel_map=front-left,front-right,rear-left,rear-right,front-center,lfe
- Play out the null sink output through its monitor:
$ parec -d NULL_5.1.monitor | pacat
- Play a high-bass audio file, like this one. This was generated using Audacity tone generator
- High-bass should be heard.. Open `pavucontrol' and redirect the mp3 player output to the NULL_5.1 sink. Result: almost all of the bass is stripped
References
- What is the LFE channel?, Dolby Laboratories
- PulseAudio 7.0 Release Notes: LFE Synthesis with low-pass filtering