On 20/01/2005, at 12:08 PM, Matthew Palmer wrote:
On Thu, Jan 20, 2005 at 10:40:57AM +1100, tone wrote:I've had a search around and there doesn't seem to be anything available. If noone knows of any, can anyone point me in the right direction? I figure there must be some APIs out there that are suitable, and in terms of audio processing, it's a fairly simple task to perform (i *think* ;)
It's actually a very tricky task. The theory is simple -- produce a
perfectly phase-inverted version of the signal, and pump that out along with
the other noise. The practical problems are many and varied. Since the
speaker and the fan aren't in the same location, the way in which the wave
propagates will be different -- at some locations you'll get cancellation,
at others you'll get addition. Then there's the problem of near-perfect
reproduction of the sound from the fan, and getting the processing happening
quickly enough and precisely enough to make a real difference.
Don't let my nay-saying dissuade you from giving it a go, though -- it'd be
a fun project, involving all the best sorts of hacking around, but I can't
see it being a particularly practical solution -- better off just building a
little noise-proof cubby.
someone has just pointed me to a good article on this exact problem, although after skimming it seems that it'll be a bit too intense for what little benefit it will provide in light of this and other advice about the problems of the positive and negative interference etc etc...
(for those interested and for the benefit of the list archives the URL is: http://www.analog.com/library/analogDialogue/archives/34-02/noise/)
I was, rather optimistically I'll admit, hoping that an API could reduce the problem to a few lines of code something like
phase_shift(180, input);
o well.. it was just a thought.. thanks anyway though :)
-- tone
-- SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/ Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html
