LED strip custom colour logarithmic fade challenge!

So, I am new to Arduino and am only using it for an external project. i have an UNO R3 and WS2811 led strip. I need to be able to fade between custom colours (000,000,000 format) with different brightness values for the colours. I have found templates online for fading between colours such as this - but I dont know how to insert my own colours instead of RGB.

void loop(){

// Let’s take 256 steps to get from blue to red
// (the most possible with an LED with 8 bit RGB values)

for( int colorStep=0; colorStep<255; colorStep++ ) {

int g = colorStep; // Redness starts at zero and goes up to full
int b = 255-colorStep; // Blue starts at full and goes down to zero
int r = 0; // No green needed to go from blue to red

// Now loop though each of the LEDs and set each one to the current color

for(int x = 0; x < NUM_LEDS; x++){
leds
= CRGB(r,g,b);

}

// Display the colors we just set on the actual LEDs
FastLED.show();

delay(10);
}

Additionally, since we see colours logarithmically, the fade I noticed bounces off each colour zigzagging instead of smoothly transitioning. I was thinking a Sine wave would be a good template for this but logarithmic fading would be better. This thread seemed very important however I couldn’t work out how to implement the snips of code that were suggested.

A ‘fade table’ was suggested to change the values of the fade to a logarithmic sequence, however I couldn’t find more mention of a ‘fade table’ online. I understand this to mean dividing the transition time equally between 8 divisions of the colour arc.
0: 0
1: 1
2: 3
3: 7
4: 15
5: 31
6: 63
7: 127
8: 255
Being able to customise the code as much as possible is important so I can tweak delays, colour values and fade times so I’m imagining simple composite code is the best way to make it so I can just change some integers to fine tune it rather than the whole code- so I’m not really after code that summarizes the process if that makes any sense. I feel on the cusp of it but was wondering if anyone knows how to piece together these snips of info into the project I’m suggesting. Its a shot in the dark but maybe someone would like to take on this challenge! As I’ve been searching for a long time and my deadline is running out, any help would be hugely appreciated!!!
Many thanks
Ras

A 'fade table' was suggested

That sounds like an array of precalculated values to me

I understand this to mean dividing the transition time equally between 8 divisions of the colour arc.

Why only 8 values when you could have up to 256 different values ?

The advantage of precalculating them, perhaps in Excel, is that the calculation does not have to be done on teh Arduino

First of all, please post your code within </> code-tags.
secondly

Additionally, since we see colours logarithmically

Yes but LEDS don’t quite light up linear, and a linear fade is quite sufficient in my experience, what is way more important is that all color parts take the same time to get from start color to end color.

The advantage of precalculating them, perhaps in Excel, is that the calculation does not have to be done on teh Arduino

That is an advantage, though the disadvantage is that this tends to take up extra memory which in sketch controlling LEDs is usually a scarce resource.
delay(10);Whatever you do should really be millis() based, OK it is still better than using FastLED.delay(10); but only just.
Now if you would want to fade individual leds between individual colors you may have a bit of a problem memory wise, but if you want to fade between general 2 colors, what you’ll need is a fadelangth, a start-point and an end point.
So i modified some of my working code to function to demonstrate what i mean.

CRGB ValueFade(uint16_t fadelength, CRGB LED) {  // Value fades
  static CRGB endcolor = 0,
              startcolor = 0,
              outcolor = 0 ; // better to start of with nothing then to start of with anything..
              
  static uint32_t startmoment = 0,
                  fade = 0;

  uint32_t moment = millis();
  if (LED != endcolor) { // initiate fade
    startcolor = outcolor;
    endcolor = LED ;
    startmoment = moment;
    fade = fadelength;
  }
  if (moment >= (startmoment + fade)) outcolor = endcolor;  // fade is over
  else if (moment > startmoment) {
    uint32_t intensity = ( ( (moment - startmoment) * 255) / (fade + 1) ); // how far are we in the fade
    outcolor.r = ( (endcolor.r * intensity) /255) + ( (startcolor.r * (255 - intensity)) / 255);
    outcolor.g = ( (endcolor.g * intensity) /255) + ( (startcolor.g * (255 - intensity)) / 255);
    outcolor.b = ( (endcolor.b * intensity) /255) + ( (startcolor.b * (255 - intensity)) / 255);
  }
  return outcolor;
}

It complies, i haven’t test-checked it but i think i got it right