         new_colors[xy2i(x,y)] = new_colors[xy2i(x,y-1)];
       } else {
         // If off, turn the pixel off (the actual pixel colour has a FO low-pass filter)
-        new_colors[xy2i(x,y)] = CRGB::Black;
+        new_colors[xy2i(x,y)].setHSV(0,0,0);
       }
     }
   

// Send the colours out to the LEDs---right now also includes the low-pass filtering
void sendColors(){
  // We do not need to use the array structure here---just copy some values
  for(uint8_t i_led=0; i_led<NUM_LEDS; ++i_led)
    for(uint8_t i=0; i<3; ++i)
      leds[i_led][i] = (uint8_t) (((uint16_t) leds[i_led][i]*19 + new_colors[i_led][i])/20);
  
  LEDS.show();
}

  for(uint8_t x=0; x<COLS; ++x){
    //first row -> turn off the off pixels after propagation of colour
    if(!onPixels[0][x]){
      new_colors[xy2i(x,0)].setHSV(0,0,0);
    }
  }
}
