Live data from Hacker News

Beamforming in PulseAudio

arunraghavan.net

11–20 of 36 posts

Re: Beamforming in PulseAudio

#11
post #2

Version 9.0 of the product and the guy has time to draw pictures but can't be bothered to implement an FIR filter. (Bonus: incorrectly defines an FIR filter.) Admits his solution is bad, might be buggy. Finds a better replacement, then ships his anyway . What is it about audio that attracts this curious level of "engineering"?

> What is it about audio that attracts this curious level of "engineering"? What is it about HN that attracts haters of open source POCs? Why don't you contribute and implement an FIR filter? You probably won't, because it's easier to bash someone's work rather than do the work yourself.

POC? Why is this a race thing?

Re: Beamforming in PulseAudio

#12

Earlier quoted context omitted.

> What is it about audio that attracts this curious level of "engineering"? What is it about HN that attracts haters of open source POCs? Why don't you contribute and implement an FIR filter? You probably won't, because it's easier to bash someone's work rather than do the work yourself.

POC? Why is this a race thing?

proof of concept.

Re: Beamforming in PulseAudio

#13
post #10

Wouldn't it be possible to assume that by default, the user will be placed between both microphones? It would be less than ideal but just keeping the sound that hits both mics at the same time could be a nice default improvement.

That is actually the default with the webrtc beamformer (the sample recordings point straight forwards which effectively works out to being between the two microphones).

Re: Beamforming in PulseAudio

#14
post #8

Earlier quoted context omitted.

> What is it about audio that attracts this curious level of "engineering"? What is it about HN that attracts haters of open source POCs? Why don't you contribute and implement an FIR filter? You probably won't, because it's easier to bash someone's work rather than do the work yourself.

I believe you spelled "open source POSs" incorrectly. Also if you want an FIR filter go here and press the button. It provides the source code for you, too. This may be the most trivial algorithm in all of signal processing, which is why it's so frustrating to see somebody completely whiff on it and a bunch of HN amateurs upvote and defend it. http://t-filter.engineerjs.com/

I believe that you know a lot about signal processing, but please don't express it in a snarky, dismissive way. If you can't post civilly and substantively, please don't post at all.

https://news.ycombinator.com/newswelcome.html

https://news.ycombinator.com/newsguidelines.html

Re: Beamforming in PulseAudio

#15
post #2

Version 9.0 of the product and the guy has time to draw pictures but can't be bothered to implement an FIR filter. (Bonus: incorrectly defines an FIR filter.) Admits his solution is bad, might be buggy. Finds a better replacement, then ships his anyway . What is it about audio that attracts this curious level of "engineering"?

> What is it about audio that attracts this curious level of "engineering"? What is it about HN that attracts haters of open source POCs? Why don't you contribute and implement an FIR filter? You probably won't, because it's easier to bash someone's work rather than do the work yourself.

[deleted]

Re: Beamforming in PulseAudio

#16
Great to see this work being talked about. I work on the media signal processing team at Google. My team built this beamformer before I started, but I'm happy to see it being used in PulseAudio. The paper hasn't been released, but the nonlinear beamformer code is open source. You can find it in WebRTC.

https://chromium.googlesource.com/external/webrtc/+/master/w...

Re: Beamforming in PulseAudio

#17
Repost as a semi-useful thread below didn't meet humor standards and people who aren't logged into HN should see it, too.

If you need an FIR filter, click here and push the button. Generates the code too.

http://t-filter.engineerjs.com/

Also if you don't know what you're talking about, kindly refrain from wandering into it in the middle of an article that might otherwise be useful. "An Intro To Beamforming" is a hell of a lot stronger if it doesn't have several flaming errors about basic DSP processing in the middle of it. Those sorts of errors may cause experts discovering you for the first time to avoid your project, not devote time to fixing it.

Re: Beamforming in PulseAudio

#18
post #10

Wouldn't it be possible to assume that by default, the user will be placed between both microphones? It would be less than ideal but just keeping the sound that hits both mics at the same time could be a nice default improvement.

That is actually the default with the webrtc beamformer (the sample recordings point straight forwards which effectively works out to being between the two microphones).

Yes this is the default. The beamformer is steerable and you'll notice that a significant portion of the code is responsible for steering.

Re: Beamforming in PulseAudio

#19
Have some DSP resources:

Richard G. Lyons, Understanding Digital Signal Processing [0]

Gareth Loy, Musimathics: The Mathematical Foundations of Music (volume 2) [1]

r8brain-free-src (high quality sample rate conversion algorithms) [2]

KVR's DSP forum, frequented by actual pro audio developers [3]

[0] https://www.amazon.com/Understanding-Digital-Signal-Processi...

[1] https://www.amazon.com/gp/product/026251656X/ref=pd_cp_0_1?i...

[2] https://github.com/avaneev/r8brain-free-src

[3] https://www.kvraudio.com/forum/viewforum.php?f=33

Re: Beamforming in PulseAudio

#20
I wonder if this could be auto-calibrated, like prompt the user with "sit in a quiet place and say '1,2,3'" then brute-force the audio offsets to get the highest peak signal; and from then on you could have the mic focus follow the user's head as they move it by constantly trying slightly different offsets and jumping to a new offset if one sounds stronger?
Post reply on HN