
Ask HN: Is it possible to build generic noise-cancelling speakers? - crisp
The other day I had a chat with a friend of mine about noise-cancelling headphones. For the people not familiar with the technology, they are basically fully closed headphones with microphones outside the cups. The collected noise is passed through processors inside the headphones, effectively generating cancelling sound waves.<p>The chat left me wondering would it be possible to, even in theory, build generic noise-cancelling speakers? I tried to Google the subject but couldn&#x27;t find any meaningful results. Also, I know there are a lot of problems to tackle, such as reflections, positions relative to the source of noise, latency and whatnot. But the technology could be used in huge amount of applications, basically everywhere where there is noise.
======
devnonymous
Although you understood how the technology works, I think you misunderstand
the _intent_ . Noise cancellation in headphones exist to cancel out the
ambient noise around the cups of the headphones so that effectively only a
subset of the total sound waves directed at the ear are in the audible range
(everything else is cancelled out to a lower frequency).

Speakers otoh direct sounds outwards in a larger space and do not have the
neat separation of the direction where the sound is sent and everything else
(the direction where the sound is sent is also the direction of origin of the
noise). How will the microphone prevent picking up the sounds coming from the
speakers? And even if you do manage to cancel the noise and send it out of the
speakers, the listener exists in the same space as the origin of the noise and
would still hear the original noise besides the _noise cancelled sounds_
coming from the speakers.

Now all that said there are way for speakers to adapt the sound based on the
space that they are placed in. For example

[http://worldwide.bose.com/productsupport/en_us/web/article_1...](http://worldwide.bose.com/productsupport/en_us/web/article_102_running_adaptiq/page.html)

