 
 void setup() {
     FastLED.addLeds<NEOPIXEL, PIN_LED>(leds, NUM_LEDS);
-
-    pinMode(PIN_BUTTON,       INPUT_PULLUP);
-    pinMode(PIN_ROTARY_LEFT,  INPUT_PULLUP);
-    pinMode(PIN_ROTARY_RIGHT, INPUT_PULLUP);
+    pinMode(PIN_BUTTON, INPUT_PULLUP);
 }
 
 /* buttonPressed returns true if the button is pressed, false otherwise. */

    return rval;
}

void loop() {
    int32_t e;

    if (buttonChanged()) {
        if (buttonPressed()) {
            activeVariable = (activeVariable + 1) % MAX_VARIABLES;
            fill_solid(&leds[0], NUM_LEDS, rainbowColors[activeVariable]);
        } else {
            fill_solid(&leds[0], NUM_LEDS, CRGB::Black);
        }
    }

    e = encoder.read();
    if (e <= -4) {
        leds[10] = CHSV(0, 255, 255);
        e += 4;
    } else if (e >= 4) {
        leds[10] = CHSV(120, 255, 255);
        e -= 4;
    } else {
        leds[10] = CRGB::Black;
    }
    encoder.write(e);

    FastLED.show();
}

#define NUM_LEDS 60

/* Rotary encoder object */
Encoder encoder(PIN_ROTARY_ONE, PIN_ROTARY_TWO);

/* This variable holds the LED color state. */
CRGB leds[NUM_LEDS];

/* Define the different parameters that can be changed using the rotary wheel. */
#define PARAMETER_MODE 0
#define PARAMETER_HUE 1
#define PARAMETER_SATURATION 2
#define PARAMETER_VALUE 3
#define PARAMETER_SPEED 4
//#define PARAMETER_XXX 5
//#define PARAMETER_XXX 6
#define MAX_PARAMETERS 7

/* Holds the parameter that is currently changed using the rotary wheel. */
uint8_t activeParameter = PARAMETER_MODE;

/* Holds the values of the different parameters. */
uint8_t parameters[MAX_PARAMETERS] = { 0, 0, 255, 80, 80, 0, 0 };

/* Maximum values of the different parameters, plus one. Zero denotes that a
 * variable can stretch the full range of 0-255. */
uint8_t parameterMax[MAX_PARAMETERS] = { 1, 0, 0, 0, 0, 0, 0 };

/* Rainbow colors, used to signify active parameter to the user. */
CRGB rainbowColors[] = {
    CHSV(0,   255, 255),
    CHSV(36,  255, 255),
