-uint8_t wavebright = 255;                  // You can change the brightness of the waves/bars rolling across the screen.
-#define qsubd(x, b)  ((x>b)?wavebright:0)  // Digital unsigned subtraction macro. if result <0, then => 0. Otherwise, take on fixed value.
+#include "FastLED.h"
+#define qsubd(x, b)  ((x>b)?255:0)  // Digital unsigned subtraction macro. if result <0, then => 0. Otherwise, take on fixed value.
 #define qsuba(x, b)  ((x>b)?x-b:0)         // Analog Unsigned subtraction macro. if result <0, then => 0
-
-#include "FastLED.h"
 #define LED_DT 7              // Data pin to connect to the strip.
 #define COLOR_ORDER GRB       // Are they RGB, GRB or what??
 #define LED_TYPE WS2812B      // Don't forget to change LEDS.addLeds

  }
}

uint8_t sirenHue = 0;                                          // Starting hue value.
int8_t sirenRotation = 10;                                           // Hue rotation speed. Includes direction.
uint8_t sirenDeltahue = 10;                                         // Hue change between pixels.
bool sirenDirection = 0;                                             // I use a direction variable, so I can plug into inputs in a standar fashion.

void siren() {
  if (sirenDirection == 0) sirenHue += sirenRotation; else sirenHue -= sirenRotation; // I could use signed math, but 'thisdir' works with other routines. 
  sirenDeltahue = 1; 
  sirenRotation = 30;
  fill_rainbow(leds, NUM_LEDS, sirenHue, sirenDeltahue);
}

uint8_t thishue = 0;                                          // You can change the starting hue value for the first wave.
uint8_t thisrot = 0;                                          // You can change how quickly the hue rotates for this wave. Currently 0.
uint8_t allsat = 255;                                         // I like 'em fully saturated with colour.

    thiscutoff -= 240;
  } else {
    EVERY_N_MILLISECONDS(1000) {
      allfreq += 1;
      if (allfreq == 255) {
        allfreq = 0;
      }
