          * SAMPLE_RATE / (SKIP_MULT / 2)
          */
         for (int j = 0; j < SKIP_MULT; j++) {
-            while(!(ADCSRA & 0x10)); // wait for adc to be ready
-            ADCSRA = 0xf5;           // restart adc
-        }
-
-        byte m = ADCL;             // fetch ADC data (low byte)
-        byte j = ADCH;             // fetch ADC data (high byte)
-        int k = (j << 8) | m;      // combine low/high bytes to form into an int
+            while(!(ADCSRA & B00010000)); // wait for adc to be ready
+            ADCSRA = B11110101;           // restart adc
+        }
+
+        low_byte = ADCL;           // fetch ADC data (low byte)
+        int k = (ADCH << 8) | low_byte;  // combine low/high bytes to form into an int
         k -= 0x0200;               // form into a signed int
         k <<= 6;                   // form into a 16b signed int
         fft_input[i] = k;          // put real data into even bins

int max_value;
int sum_fft;
float frequency;  // only used for debugging

void setup() {
    if (DEBUG) {

        set_LED_count_mode = true;
    }
    
    // set ADC to free running mode w/ prescaler set to a 
    // division factor of 32 (B101)
    ADCSRA = B11100101;
    
    ADMUX = B01000000;  // use adc0
    
    // turn off the digital input for all analog pins
    DIDR0 = B00111111;
    
    // initial color palette
    for (int i = 0; i < 24; i++) {
