I am trying to record and process audio data based on differences in what gets recorded in the left and right channel(i.e data from the 2 microphones on the phone). For this I am using Audio Record class, with MIC as input and STEREO mode. recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT, bufferSize); My issue is that I get exactly the same data in both the channels. (alternate samples are separated to get individual channel inputs). Please suggest what I need to do. My phone is a Nexus 4, which I have rooted. I have even editted /etc/media_profiles.xml so that Maxchannels = 2 for AudioEncoderCap. But I see no improvement. Is it because I am using raw audio data without any form of compression?