Fht for two microphone real time

A0 = Ground
A2 = 3.3V
Right: -32117 0V
Left: 8832 3.3V

A0 = Ground
A2 = 5V
Right: -32117 0V
Left: 32704 5V

A0 = 3.3V
A2 = Ground
Right: 8183 3.3V
Left: -32768 0V

A0 = 5V
A2 = Ground
Right: 31681 5V
Left: -32768 0V

The ADC seems to be reading the pins correctly so the problem must be elsewhere. Maybe your microphones are not wired correctly? If you use the sketch below, do your inputs average near 'zero' (2.5V).

#define LIN_OUT 1 // use the log output function
#define FHT_N 64 // set to 256 point fht
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
// #include <FHT.h>

int f;
int Rreal[FHT_N];
int Lreal[FHT_N];
int RMAG[FHT_N];
int LMAG[FHT_N];

void setup()
{
  ADCSRB = 0;
  sbi(ADCSRA, ADEN); // Enable ADC
  sbi(ADCSRA, ADATE); // Auto trigger
  sbi(ADCSRA, ADSC); // Start conversion
  // 19.231 kHz
  sbi(ADCSRA, ADPS2);
  sbi(ADCSRA, ADPS1);
  cbi(ADCSRA, ADPS0);
  Serial.begin(115200); // use the serial port
}

void loop()
{
  noInterrupts();  // UDRE interrupt slows this way down on arduino1.0
  for (int i = 0 ; i < FHT_N ; i++)   // save 256 samples
  {
    while (!(ADCSRA & _BV(ADIF))); // wait for adc to be ready
    ADMUX = (DEFAULT << 6) | 0; // A0
    sbi(ADCSRA, ADIF); // Clear interrupt flag
    byte m0 = ADCL; // fetch adc data
    byte j0 = ADCH;
    int k0 = (j0 << 8) | m0; // form into an int
    k0 -= 0x0200; // form into a signed int
    k0 <<= 6; // form into a 16b signed int
    Rreal[i] = k0; // put real data into bins

    while (!(ADCSRA & _BV(ADIF))); // wait for adc to be ready
    ADMUX = (DEFAULT << 6) | 2; // A2
    sbi(ADCSRA, ADIF); // Clear interrupt flag
    byte m2 = ADCL; // fetch adc data
    byte j2 = ADCH;
    int k2 = (j2 << 8) | m2; // form into an int
    k2 -= 0x0200; // form into a signed int
    k2 <<= 6; // form into a 16b signed int
    Lreal[i] = k2; // put real data into bins
  }
  interrupts();

  long TotalRight = 0, TotalLeft = 0;

  for (int i = 0; i < FHT_N; i++)
  {
    TotalRight += Rreal[i];
    TotalLeft += Lreal[i];
  }

  float AverageRight = TotalRight / (float) FHT_N;
  float AverageLeft = TotalLeft / (float) FHT_N;

  Serial.print("AverageRight = ");
  Serial.println(AverageRight);

  Serial.print("AverageLeft = ");
  Serial.println(AverageLeft);

  delay(5000);
}