 	// Loop through every LED
 	for(uint16_t pixIdx = 0; pixIdx < MATRIX_HEIGHT * MATRIX_WIDTH; pixIdx++) {
 			
-		uint32_t pixColour = 0;
-			
 		// Get the current pixel transition
 		PixelTransition pixTran = pixels.getPixel(pixIdx);
-			
+		
 		// Get the colour for the given pixel
+		uint32_t pixColour = 0;
+		
 		if(pixTran != PIX_OFF) {
-			if(colourUpdate == 0) {
-				// Get new colour if we need to
-				pixColour = getPixColour(pixIdx, mode, colour, colourIteration);
-				
-				ledColours[pixArrIdx] = (uint8_t)(pixColour >> 16);
-				ledColours[pixArrIdx + 1] = (uint8_t)(pixColour >>  8);
-				ledColours[pixArrIdx + 2] = (uint8_t)pixColour;
-			} else {
-				// Get the old colour
-				pixColour = strip.Color(ledColours[pixArrIdx], ledColours[pixArrIdx + 1], ledColours[pixArrIdx + 2]);
-			}
+			pixColour = getPixColour(pixIdx, mode, colour, colourIteration);
 		}
 			
 		// Determine the pixel transitions


// This function returns the colours of the different pixels given pixel index, colour mode, input colour and colour iteration
inline uint32_t getPixColour(uint16_t pixIdx, uint8_t mode, uint32_t colour, uint8_t colourIteration)  {
	switch(mode) {
	case CM_ALL_WHITE:
		return strip.Color(235,   255,   255);

		break;
		
	case CM_PARTY:
		return wheel(randomVal & 0xFF);
		break;
		
	default:
