I'm working on a project which sometimes involves running 2 strands of WS2801's together

I’m working on a project which sometimes involves running 2 strands of WS2801’s together in series, but only one is guaranteed to be directly connected to my Arduino Uno at any given time. I’d like to be able to send a command via Bluetooth while the program is running to add/remove functionality to the second strand as it is connected/disconnected during usage. Is there a complementing function to FastLED.addLeds<…>( ) that lets me remove a subset of the CRGB[ ] array that I just can’t find in the documentation?

No, there isn’t. What you can do, however, is use a variable that is something like:

int currentNumberOfLEDS = NUM_LEDS;

and then when you detach the first strip you can change it to:

currentNumberOfLEDS = currentNumberOfLEDS / 2;

and when whenever you’re looping over/doing things with the leds, you can just use currentNumberOfLeds instead of NUM_LEDS in your loops for iterating over the leds.

Here’s what I was typing up earlier before getting totally distracted… (Daniel already answered, but I figured I’d still share what I was thinking.)

What about having the Bluetooth just tell controller if strand2 is hooked up or not and then adjust the total number of pixels? Here’s how it could work:

#define NUM_LEDS 32 // Number of pixels in first strip.
#define NUM_LEDS2 32 // Number of pixels in the strip that gets connected/disconnected.
CRGB leds[ NUM_LEDS + NUM_LEDS2 ]; // Size the leds array to be able to hold the full amount.
uint16_t TOTAL_LEDS = NUM_LEDS + NUM_LEDS2; // Use this TOTAL_LEDS variable in your code instead of NUM_LEDS.
boolean Strip2_Connected = 1; // Switched True or False by signal from Bluetooth. [1 = True]

And then when you receive a signal from Bluetooth, do your check and set the number of pixels:

if (Strip2_Connected == 0){ // Not connected [false]
} else { // Is connected [true]

Thanks a ton, this helped a lot for getting the strand to do what I want!