Disable noise cancellation for microphone in Android (1.5)? - audio

Is it possible to disable noise cancellation for the microphone in Android (specifically 1.5) via code?
I want to create a dumb MicrophoneApp that records all the background noises, but I believe that noise cancellation for the microphone is getting in the way. I know you can do it if you root your phone and edit settings (ie this article), but I want to make it without root the phone.

Noise filters in audio recording sources on Android vary greatly from device to device. It isn't until Ice Cream Sandwich that any sort of definition was put into the device compatibility document defining a method for not having filtering. That method id to use the MediaRecorder.AudioSource.VOICE_RECOGNITION audio source. Before that it's just choose a setting and hope for the best. I've found that some devices work better with MIC and some with VOICE_RECOGNITION prior to 4.0. HTC seems to have started the use fo VOICE_RECOGNITION as a no-filter zone pre-ICS.
Since there is no loop-back audio interface you can't even detect it but you can surface different audio paths to the user to choose from.

i dont think without rooting the phone you can change microphone behaviour. noise cancellation is more a function of second microphone than some software, and to alter some hardware you would require super user privileges.

Ok, noise detection and cancellation is done using two microphones and android simply differentiate both signals coming from each one of them and get the right signal of the speaker, Sony Ericsson Neo have the noise mic in the back of the phone, simply you can disable the second mic and you will get the full signal.

Related

Is there a method to figure out the audio channel layout in Linux?

I'm making a player for Linux and I want to know the audio channel layout (stereo, 5.1ch, etc) of user's system (not channels included in media file).
For now, it's set by user but I want to implement an auto-detection of channel layout.
Is there any (de-facto) standard method to accomplish this?
If not, can I find a solution for ALSA at least?
In ALSA, the default device typically supports only stereo.
You can try to open a device named front, surround40, surround51, or surround71, but these devices do not have automatic sample format conversion or software mixing.
The best idea would be to use PulseAudio, and to ask the server for the channel map of the sink.

Recording the Stereo Mix and Parasites

I'm trying to make a video tutorial, so i decided to record the speeches using a TTS online service.
I use Audacity to capture the sound, and the sound was clear !
After dinning, i wanted to finish the last speeches, but the sound wasn't the same anymore, there is a background noise(parasite) which is disturbing, i removed it with Audacity, but despite this, the voice isn't the same ...
You can see here the difference between the soundtrack of the same speech before and after the occurrence of the problem.
The codec used by the stereo mix peripheral is "IDT High Definition Codec".
Thank you.
Perhaps some cable or plug got loose? Do check for this!
If you are using really cheap gear (built-in soundcard and the likes) it might very well also be a problem of electrical interference, anything from ...
Switching on some device emitting a electro magnetic field (e.g. another monitor close by)
Repositioning electrical devices on your desk
Changes in CPU load on your computer (yes i'm serious!)
... could very well cause some kinds of noises with low-fi sound hardware.
Generally, if you need help on audio sounding wrong make sure that you provide a way to LISTEN to the files, not just a visual representation.
Also in your posted waveform graphics i can see that the latter signal is more compressed, which may point to some kind of automated levelling going on somewhere in the audio chain.

VirtualDub can't record audio, no inputs/sources showing up

I'm using VirtualDub version 1.9.11 to screen capture video game play on my computer. It works amazing for video; however, I can't get my audio to record.
My motherboard is a Gigabyte ga-z77x-ud5h. And I have downloaded the latest audio drivers and even tried older drivers.
Here is an image of what my Sound options in VirtualDub SHOULD resemble. This comes from this VirtualDub tutorial http://www.genadmission.com/vdubguide.html
Here is what my inputs look like, none...
And here are what my sources look like, none...
Any clues on why I have no sources and no inputs? If I plug in a microphone I can get mic input, but that's it.
I learned about uisng VirtualDub from this video tutorial http://www.youtube.com/watch?v=fvfPXn5VQ0w
Solved. Had to enable Stereo mix which was disabled by defualt... why on earth would Windows 7 disable that by default is beyond me.
Seen on this video http://www.youtube.com/watch?v=mjQ_qS-LaoU
I've run DIMH and SFC to see if there are any errors on the system. SFC said a couple of directories had dual owners and corrected that, but it didn't help.
I tried re-connecting the Pinnacle device, thinking that giving the system a choice of more than one device might fix something. VirtualDub sees both video capture devices and will use either one: but it still does not give me a choice of audio input devices.
However, it will let me take the video from the FHD HDMI input and sound from the Pinnacle device, so I have a work-around. It's stupid, and I'd really like to get this working properly, but at least I can use this solution.

How to produce the loudest sound possible on a J2ME phone?

I have a midlet that upon discovering something displays some information, vibrates, flashes the screen, and makes a sound - all to get the user's attention. The problem is that the sound is not loud enough.
how do i make the phone produce the loudest sound it can ? I prefer not to add a sound file unless that's the key. I prefer to use standard j2me library, but can settle for Nokia's library if absolutely needed.
I am mainly targeting Nokia S60 or S40.
currently, the best i can come up with is this:
Manager.playTone(ToneControl.C4, duration, 100);
But you can hardly hear the sound this makes on some phones.

Arduino Piezo Knock Sensor Play Tones

I would like to hook up several piezos to an arduino so that, when they are activated each piezo plays/triggers a separate tone. For instance, I'll have five piezos connected to the arduino - when I apply pressure to each one they play a separate note, either through a software interface on a computer or from the piezos themselves. Basically an Arduino synth using piezos as keys.
I'm just not quite sure how to go about doing this. I'm sure its possible but just need a push in the right direction. Any ideas? Thanks!
The practical difficulty of using one device as both an input sensor and output device, is that once activated to output (a sound) you would have to disable using it as input for some fixed time. Something more responsive would be to use separate sensors for the keys, and just one speaker for all sounds. The good folks who came up the Arduino tutorials have a 3 key sensor player example here:
http://arduino.cc/en/Tutorial/Tone3
and another example of using a piezo as a sound sensor here:
http://www.arduino.cc/en/Tutorial/KnockSensor
I can Help you with the Software interface , You can use your smart phone to play sounds for each Piezo Sensor.
See this app : https://play.google.com/store/apps/details?id=ram.mere.DoDuino
You can connect arduino using Serial ( Android 3.1 and higher ) or Bluetooth to this app.
And to use the Sound Action follow this tutorial :
https://www.youtube.com/watch?v=RQhx6qBElVk
. So you specify what sound to be played on your android phone , and when you detect which piezo you send data to the android and then the Sound Specified will be played .
So for example if android App Received : #p1; then it will played the sound related to Piezo one
and when you send #s1; then it will stop playing that sound ..etc.
Hope this help someone :D .

Resources