I was on a plane a few weeks ago and thought it would be excellent if the N900 could act as a noise cancelling device through the headphones.
Operation: User wears headphones, phone takes input from mic and plays cancelling out of phase noise through headphones.
I'm not sure if this would work as the mic doesn't know exactly what you ears hear with headphones in but other devices seem to be able to do this so presume the N900 could; the hardware is certainly present.
What other devices do this? There are some devices with multiple mics, so when you talk to them it can assume that the sounds heard equally strong by both mics are noise, and remove that from wat it sends to the other caller.
For active noise cancellation you need to know the exact distance between microphone and speaker, and microphone-speaker probably needs to be on a line pointing into your ears.
Awareness has become quite famous for this. In fact i was about to post the very same question: we need one for the N900! (it says on the bottom of the page that pc mac android and symbian will be getting their versions soon...)
Now i dont know anyone who has used this app, so if anybody reading this has a <gasp> iphone 4/ipod touch with this app then could they please post thr experience of it?
@shadowjk: i guess one could fiddle with the distance if one had the noisecancelling algorithm to begin with...either way, ive noticed the N900 does have some sort of cancellation already (noted while using realler app to record using 'dictaphone' setting in an echo-ey room with whirring fans, then playing back in headphones....surprisngly good quality...)
I browsed for an app to do this a few weeks ago before shelling out for a Bose QC15 (which works) and couldn't find any. Even in iPhone's AppStore, I only found apps that play masking audio (white noises, environmental sound, etc) rather than generate the proper noise cancellation pattern.
I hope the lack of such app is just due to the laziness of the developers there, not due to hardware limitation.
ps: one of the reason the QC15 works very very well is because it has 2 microphones: one inside the earcups and another outside. With IEMs (in ear monitors), it may be possible to attain similar level of performance with just a single external mic.
pps: "Awareness!" app is the opposite of noise cancelling... it 'leaks' outside noises so you can hear them while wearing your IEM and listening to music/playing games/etc.
hmmm.... i was under the impression that awareness only allows sounds above a certain dB level, and cancels the rest...
oh well, only more room for improvement eh?
hypothetically: how complex would it be (ive next to no knowledge of developing) to have the N900 take two audio streams, one from the mediaplayer/audio processor etc & the other from the built-in mic (or headphone mic or possibly both?) and subtract one from the other in realtime?
i realize this is an oversimplification of noise cancellation, and might even be too cpu-intensive for the N900...but its still worth looking into, imo
Ah, so awareness relies on the user using good noise blocking IEMs, Shure's range comes to mind. So already before any apps at all, you have the noise blocked. Then, awareness uses the microphone to pass through sounds from the outside into your ears, while monitoring sound level and reducing volume if it's too loud.
This could also be done on N900. Though, my experience with IEMs and N900 is that volume one step above muted is already too friggin loud...
Subtracting one from the other in realtime is trivial. However, the result is just going to be more noise. When you subtract or add, the sound waves reaching your ear from the headphones must be exactly 180 degrees out of phase with the outside noise reaching your ear. The further away from your ear canal the microphone is, the worse the results. Also, regulating the actual amount of cancellation seems tricky, if your cancellation wave is too strong, it'll invert the noise waveform instead of canceling it, and end up doing nothing. If you move the distance between speaker element and mic by one half wavelength, you're now producing a waveform phase matched to the noise, which will actually end up boosting the noise.
Now considering sensible sane designs with two mics per ear in tests and benchmarks perform worse than passive noise blocking, an ad-hoc thing with mics wherever is going to do worse than a cheap pair of canalphones such as Sennheiser CX-300 or even the ultracheap Koss Plug.
Awareness is a 'noise leaker'. A completely different function that works the exact opposite of noise cancel/blocking...
What the OP talked about was an active noise canceller.
There's also a simpler method that plays a 'noise curtain' (white noise, etc) that's marketed to this segment...
I think making something like "Awareness" is much more trivial than a proper active noise blocker that generates an 'antinoise'.
this is possbile, audacity has the option to create the 'oppsite' of a sound file. it's open source too? i wish I had programming knowledge of some description, but i'm a musician so I don't :P all that needs to happen is for the n900"s microphone recorded 'input' to be reversed and played back through the output. this wouldn't work for calls but for music listening it'd be sweet. i think i'm right. or maybe i'm completely wrong, whatever the case it'd be a sweet feature to implement!
this is possbile, audacity has the option to create the 'oppsite' of a sound file. it's open source too? i wish I had programming knowledge of some description, but i'm a musician so I don't :P all that needs to happen is for the n900"s microphone recorded 'input' to be reversed and played back through the output. this wouldn't work for calls but for music listening it'd be sweet. i think i'm right. or maybe i'm completely wrong, whatever the case it'd be a sweet feature to implement!
there is still a problem with doing that in real time. if that cannot be done, there will be no noise cancellation as said earlier in this thread.