     mic_leds_hue[i] = hue;
   }
 
+  // Use changes in amplitude to determine acceleration
   double peak = normalize((float)amp_sum_L);
   double rot_accel = (peak - 0.5) * ROTATION_ACCEL_COEFF;
 
+  // Apply acceleration to rotation speed
   speed = speed + rot_accel;
   if (speed < 0) { speed = 0; }
   if (speed > MAX_SPEED) { speed = MAX_SPEED; }
 
-  // Rotate around the ring
+  // Rotate around the ring according to speed
   int last = (int)current_led;
   current_led += speed * ANIMATE_SECS_PER_TICK;
   current_led = fmod(current_led, (NUM_MIC_LEDS - 1));
   int curr = (int)current_led;
 
-  // Max the brightness and reset the velocity of every LED between the last
-  // and the current
+  // Max brightness and reset velocity of LEDs between the last and current
   while (last != curr) {
     mic_leds_val[last] = 255;
     mic_leds_vel[last] = BRIGHTNESS_INITIAL_VEL;

    if (mic_leds_val[i] > 255) { mic_leds_val[i] = 255; }
  }

  for (int i = 0; i < NUM_MIC_LEDS; i++) {
    mic_leds_rgb[i] = CHSV(mic_leds_hue[i], 255, mic_leds_val[i]);
  }

double mic_leds_vel[NUM_MIC_LEDS];


double current_led = (NUM_MIC_LEDS / 2);
double speed = NUM_MIC_LEDS;

void setupMic() {
  // Instantiate FastLED
  FastLED.addLeds<NEOPIXEL, MIC_DATA_PIN>(mic_leds_rgb, NUM_MIC_LEDS);

  // Start with full brightness LEDs that fade to test that code works
  for (int i = 0; i < NUM_MIC_LEDS; i++) {
    mic_leds_val[i] = 255.0;
    mic_leds_vel[i] = BRIGHTNESS_INITIAL_VEL;
  }
}

// Returns a number between 0 and 1 that represents current amplitude of sound
float normalize(float x) {
  x = x - min_amplitude;
  x = x / (max_amplitude - min_amplitude);
