[HN Gopher] GPD Pocket 4 Speaker DSP: Configuring PipeWire so la...
       ___________________________________________________________________
        
       GPD Pocket 4 Speaker DSP: Configuring PipeWire so laptop speakers
       sound better
        
       Author : zdw
       Score  : 140 points
       Date   : 2025-04-09 18:07 UTC (4 hours ago)
        
 (HTM) web link (kittenlabs.de)
 (TXT) w3m dump (kittenlabs.de)
        
       | thrtythreeforty wrote:
       | Impulse response is sort of overkill here. If you design a filter
       | bank in the first place, you can just _implement that filter
       | bank_ much cheaper than doing even an FFT-based convolution.
       | Convolution is useful when you don 't know the underlying filter
       | transfer function.
        
         | cycomanic wrote:
         | I'm not sure I understand. How would you apply your FIR filter?
         | Are you suggesting there is a different way than to either do
         | convolution in the time domain or a multiplication in the
         | frequency domain?
        
           | colanderman wrote:
           | Presumably GP is suggesting IIR filters?
        
         | Retr0id wrote:
         | > Convolution is useful when you don't know the underlying
         | filter transfer function
         | 
         | But we don't?
        
         | smj-edison wrote:
         | Perhaps it's simpler to configure with a single impulse
         | response vs multiple filters?
        
         | gmueckl wrote:
         | This depends entirely on the length of the impulse response,
         | doesn't it? A very short time domain convolution isn't actually
         | more computationally expensive than a bank of crossover
         | filters.
        
         | Sesse__ wrote:
         | It really depends on what your filter bank looks like. If it's
         | a 4-band parametric EQ, then sure, you can have four biquad IIR
         | filters and that's it. But if you've measured an impulse
         | response and want its inverse (e.g. through a Wiener filter),
         | that's not what you have; you simply have another impulse
         | response (effectively closer to a N-band graphical EQ where N
         | >= 100), not a parametric EQ.
         | 
         | As a nitpick: You always know the filter transfer function,
         | it's the DFT of the impulse response (and without the impulse
         | response, you obviously cannot convolve).
        
           | thrtythreeforty wrote:
           | Agreed - I read this bit in the article:
           | 
           | > generating a filter curve for a 300Hz slope, both channels
           | were divided (A/B) against that curve
           | 
           | as defining a parametric EQ band. If you just generally want
           | to invert a measured impulse response, then yeah, you don't
           | know the underlying transfer function.
        
       | causality0 wrote:
       | FxSound made a huge difference in changing my GPD Win Max 2's
       | speakers from unusably bad to average.
        
       | rzzzt wrote:
       | On an old MBP I have a similar setup with these two tools:
       | 
       | - https://ju-x.com/hostingau.html
       | 
       | - https://existential.audio/blackhole/
       | 
       | Default output for applications is set to BlackHole's virtual
       | sound device which the "Ext-In / Track D" channel can pick up in
       | Hosting AU as an input. An "AUDynamicsProcessor" and
       | "AUGraphicEQ" stage later (both built-in macOS units) it is sent
       | back to the real output device.
        
         | c-hendricks wrote:
         | A lot of fun to be had with black hole + guitar rig.
        
       | ahub wrote:
       | Ho wow, the sample video shows incredible results, I'd love to
       | read more about how to configure it with my own laptop and
       | microphone. Settings ought to be different for each laptop model,
       | right ?
        
         | BizarroLand wrote:
         | I would also like to know this. I have a Lenovo Legion and the
         | sound quality is dramatically worse on Linux vs Windows. A fix
         | would be a godsend.
        
         | dylan604 wrote:
         | Watching the video when they switch profiles??? sounds like
         | when you're watching a movie and they make the music sound like
         | coming from something in the scene and then switch to just
         | music for the movie like showing someone with
         | headphones/earbuds.
         | 
         | Pretty impressive demo.
        
           | rasz wrote:
           | Original sounds like one of the speakers wired in reverse
           | inverting phase.
        
             | dylan604 wrote:
             | The fact that a hardware wiring issue can fixed with a
             | software fix is cool. Also reminds me just how much
             | software in pretty much all hardware design has to fix bad
             | hardware.
        
       | MrBuddyCasino wrote:
       | I wonder what the latency is. FIR needs quite some time in the
       | lower frequencies.
        
       | smj-edison wrote:
       | Huh, I didn't realize pipewire had builtin support for this! I've
       | been using a different piece of software called Easy Effects[1]
       | on my framework laptop.
       | 
       | To equalize my laptop, I ended up buying a umik-1, and using REW
       | to calculate all the filter coefficients (you can import REW's
       | filter export right into Easy Effects). It's a subtle difference
       | at first, but it's much cleaner (I also usually have a compressor
       | and loudness effect enabled, as the framework speakers are pretty
       | quiet).
       | 
       | [1] https://github.com/wwmm/easyeffects
        
         | cassepipe wrote:
         | Would you share the profiles you used for your framework ? I
         | have one too and it could use a better sound
        
           | blutack wrote:
           | If it's a 13, there's a couple linked from here: https://wiki
           | .archlinux.org/title/Framework_Laptop_13_(AMD_Ry...
           | 
           | I use the "cab404" one and very impressed with it.
        
           | smj-edison wrote:
           | Here's the one I created, but be sure to try the others like
           | @blutack mentioned: https://gist.github.com/smj-
           | edison/280c7b293f727b40c29ffef3d...
           | 
           | EDIT: and full easy effects profile:
           | https://gist.github.com/smj-
           | edison/915c3a72bf485bd8910125b68...
        
         | tuukkah wrote:
         | Do you have the version 1 (original) or the version 2 (80 dB)
         | of the Framework speakers?
        
           | smj-edison wrote:
           | Version 1 (I got a framework 12 and so far have only swapped
           | the screen). Now that I think of it, which one is the
           | official EQ for?
        
         | ahartmetz wrote:
         | Work on PipeWire started AFAIU as a simpler plugin API for
         | GStreamer, so of course many things are pluggable and
         | interposable and routable etc.
        
       | dizhn wrote:
       | One can do similar things with JamesDSP on Android. I believe
       | there are ways to do it without root nowadays. Also you'd be able
       | to find flattening eq curves for your headphone on GitHub and
       | other places. I'll find the link if anybody is interested. This
       | fixes artificially bass heavy headphones pretty well.
        
         | dsr_ wrote:
         | If your headphone has already been measured, https://autoeq.app
         | is your friend.
        
           | jorvi wrote:
           | Thank you for mentioning AutoEQ, that's a great resource :)
           | 
           | I wonder why laptops don't come with an internal speaker DSP
           | profile loaded onto the EEPROM. This seems like one of those
           | things that you really just want to do in firmware.
        
       | Glyptodon wrote:
       | What kills me is that I'm going to have to learn half of the
       | skills to do this sort of thing just to reverse one PC's stereo
       | channels. (Though in all fairness maybe it only seems complicated
       | because this is my first contact with Suse/Tumbleweed.)
        
         | zveyaeyv3sfye wrote:
         | gpt help u 0 think
        
       | rasz wrote:
       | Under windows https://sourceforge.net/projects/equalizerapo/
       | 
       | >Equalizer APO can be used in conjunction with Room EQ Wizard
       | (http://www.roomeqwizard.com/), because it can read its filter
       | text file format.
        
       | unit149 wrote:
       | MBV recorded Loveless w/ two tube amps, face to face to mimic
       | Spector's wall of sound. No effect or pedals. When recording BT
       | over DAW, like in Reverb,.wav/REW audio delay files correct
       | external post-installation drivers.
        
       | abdullahkhalids wrote:
       | Can you similarly process the laptop microphone input so it
       | sounds better?
        
         | lxgr wrote:
         | Different idea, but a lot of DSP magic happens there too:
         | https://news.ycombinator.com/item?id=43461701
        
       | trelane wrote:
       | I wonder if this is part of what System76 does with their
       | computers
        
       ___________________________________________________________________
       (page generated 2025-04-09 23:00 UTC)