     /* Input ADC value */
     value = ADC;
 
+    /* Subtract zero-offset */
+    value -= fft_zeroPoint;
+
     /* Add random noise */
     if (RANDOM_NOISE) {
       value += random(-RANDOM_NOISE, RANDOM_NOISE);

  //ADCSRA = _BV(ADSC) | _BV(ADEN) | _BV(ADATE) | _BV(ADIE) | _BV(ADPS2) | _BV(ADPS1); //prescaler 64 : 19231 Hz - 300Hz per 64 divisions
  ADCSRA = _BV(ADSC) | _BV(ADEN) | _BV(ADATE) | _BV(ADIE) | _BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0); // prescaler 128 : 9615 Hz - 150 Hz per 64 divisions, better for most music
  sei();
}

#define FD_GRAPH_CNT   62

/* FFT state variables */
int16_t fft_zeroPoint = 0;           /* Zero-center point relative to which ADC is measured */
float fft_zeroPointF = 0.0F;         /* Zero-center point running average */
volatile byte fft_position = 0;      /* Running position of the FFT */
int16_t fft_capture[FFT_N];          /* Waveform ADC capturing buffer */
complex_t bfly_buff[FFT_N];          /* FFT buffer */
