 
 void setupIdleAnimation() {
   randomSeed(analogRead(0));
+
+  fade_timer = FADE_TIME;
 
   for (int i = 0; i < NUM_LEDS; i++) {
     positions[i] = false;

  // Apply particles to LEDs
  for (int i = 0; i < NUM_PARTICLES; i++) {
    Particle p = particles[i];
    leds_inner_values[p.position].r = p.brightness;
    leds_inner_values[p.position].g = p.brightness;
    leds_inner_values[p.position].b = p.brightness;

    leds_outer_values[p.position].r = p.brightness;
    leds_outer_values[p.position].g = p.brightness;
    leds_outer_values[p.position].b = p.brightness;
  }

  // Apply values to the FastLED array
  for (int i = 0; i < NUM_MIC_LEDS; i++) {
    mic_leds_val[i] += 255 * ANIMATE_SECS_PER_TICK * IDLE_MIC_ROTATIONS_PER_SEC;
    if (mic_leds_val[i] > 255) { mic_leds_val[i] = 0; }
    mic_leds_rgb[i] = CHSV(0, 0, mic_leds_val[i]);
  }
}

#define NUM_PARTICLES 14
#define IDLE_MIC_ROTATIONS_PER_SEC 1
#define IDLE_AMPLITUDE ((MIN_AMPLITUDE + MAX_AMPLITUDE) / 3)
#define FADE_TIME 3

struct Particle {
  int brightness;
