Try this version. I changed the code so that the blend happens in RGB colourspace.
#include "FastLED.h"
#define DATA_PIN 7
//#define CLK_PIN 13
#define LED_TYPE WS2813
#define COLOR_ORDER GRB
#define NUM_LEDS 60
//#define BRIGHTNESS 100
CRGB leds[NUM_LEDS];
uint8_t blendRate = 50; // How fast to blend. Higher is slower. [milliseconds]
CHSV color1 = CHSV(128, 90, 50);
CHSV color2 = CHSV(64, 50, 80);
CHSV color3 = CHSV(32, 200, 190);
CHSV color4 = CHSV(192, 200, 190);
CHSV color5 = CHSV(160, 90, 190);
CHSV color6 = CHSV(100, 100, 80);
int number_of_colors = 6;
int current_color_index = 0;
CHSV color_array[6] = {color1, color2, color3, color4, color5, color6};
//adjust color start CHSV and colorTarget CHSV to match colors above
CRGB colorStart = color1; // starting color
CRGB colorTarget = color2; // target color
CRGB colorCurrent = colorStart;
//---------------------------------------------------------------
void setup() {
Serial.begin(115200); // Allows serial monitor output (check baud rate)
delay(3000); // 3 second delay for recovery
//FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
//FastLED.setBrightness(BRIGHTNESS);
Serial.println("Setup done. \n");
}
//---------------------------------------------------------------
void loop()
{
EVERY_N_MILLISECONDS(blendRate) {
static uint8_t k;
if ( colorCurrent == colorTarget ) { // Check if target has been reached
colorStart = colorCurrent;
colorTarget = color_array[current_color_index]; // new target to transition toward
current_color_index += 1;
if (current_color_index == number_of_colors) {
current_color_index = 0;
}
k = 0; // reset k value
//Serial.print("New colorTarget:\t\t\t"); Serial.println(colorTarget.h);
}
colorCurrent = blend(colorStart, colorTarget, k);
fill_solid( leds, NUM_LEDS, colorCurrent );
//leds[0] = colorTarget; // set first pixel to always show target color
//Serial.print("colorCurrent:\t"); Serial.print(colorCurrent.h); Serial.print("\t");
//Serial.print("colorTarget:\t"); Serial.print(colorTarget.h);
//Serial.print("\tk: "); Serial.println(k);
//CRGB colorCurrentRGB = colorCurrent;
//Serial.print(colorCurrentRGB.r); Serial.print(" "); Serial.print(colorCurrentRGB.g); Serial.print(" "); Serial.println(colorCurrentRGB.b);
k++;
FastLED.show(); // update the display
}
}