FastLED - switching between patterns - odd cross blending issue

Anyone know if its possible to switch between various led patterns without 'inheriting' colours from the previous pattern? There seems to be some weird cross-color blending thing going on.

I've waded through the FastLED library doc. :frowning: but can't find anything...
I've got loads of neat little patterns setup as functions called from loop()
they all work apart from this annoying cross blending...

pass an led array to this func. , with the number of less in strip, posTop is a sine wave that moves LEDS
between 0 and NUM_LEDS (n) in array.

void idling(CRGB tmp[0], int n) // pattern 11
{

  fadeLightBy(tmp,n,50);
  tmp[posTop] += CHSV( 160, 250, 255);
}

then switch to this, same pattern but with a block of red LEDS:

void attentive(CRGB tmp[0], int n) //2
{
  fill_solid(tmp+10,10,CHSV( 10, 250, 255));// solid for 'attention'
  fadeLightBy(tmp,n,50);
  tmp[posTop] += CHSV( 160, 250, 255); 
  
}

Now when I go back to pattern 1, some of the red is still there.

Really causing me a major headache, and I need to get this finished real soon.

TIA

"Anyone know if its possible to switch between various led patterns without 'inheriting' colours from the previous pattern?"
After a pattern finishes, turn all the LEDs off before you proceed to the next pattern.

.

Or set them all to black but don’t do a show method.