This shouldn't be working as the index i-4 is negative if i is less than 4.
To do what you want to do, I would create a function that lits 4 consecutive leds:
void set4leds(int pos) {
leds[pos].setRGB (0, 0, 0);
leds[pos+1].setRGB (0, 0, 0);
leds[pos+2].setRGB (0, 0, 0);
leds[pos+3].setRGB (0, 0, 0);
}
and call it with needed arguments. Before the first second, only one call with increasing position and after the first second, 2 calls to have the 2 bands chasing.
declare :
int index1;
int index2;
unsigned long initialtime;
in the setup :
index1 = 0;
index2 = 0;
initialtime = millis();
in the loop :
FastLED.clear();
set4leds(index1);
index1 = (index1+1)%(NUM_LEDS-4);
if (millis()-initialtime>1000) {
set4leds(index2);
index2 = (index2+1)%(NUM_LEDS-4);
}
FastLED.show();
delay (50);