-/* The index of all step arrays is the speed variable */
-#if 1
-const static unsigned min_incolor_steps[4] = { 320, 32, 32, 1 };
-const static unsigned range_incolor_steps[4] = { 32768, 128, 32, 8 };
-const static int min_fade_steps[4] = { 64, 32, 32, 1 };
-const static int range_fade_steps[4] = { 416, 128, 32, 8 };
-#else /* for debugging */
-const static unsigned min_incolor_steps[4] = { 64, 32, 16, 8 };
-const static unsigned range_incolor_steps[4] = { 1, 1, 1, 1 };
-const static int min_fade_steps[4] = { 64, 32, 16, 8 };
-const static int range_fade_steps[4] = { 1, 1, 1, 1 };
-#endif
+/* Offsets to brightness used for candle color */
+const signed char offsets[4] = { -1, -1, 1, 1 };
+
+/* Available colors, 6 bits per color (no values above 0x3f) */
+const unsigned char colors[COLOR_COUNT][LED_COUNT] = {
+ { 0x2c, 0x20, 0x00, 0x18 }, /* candle */
+ { 0x28, 0x00, 0x00, 0x00 }, /* red */
+ { 0x30, 0x20, 0x00, 0x00 }, /* orange */
+ { 0x2c, 0x2c, 0x00, 0x00 }, /* yellow */
+ { 0x20, 0x2c, 0x00, 0x00 }, /* yellow-green */
+ { 0x00, 0x30, 0x00, 0x00 }, /* green */
+ { 0x00, 0x30, 0x18, 0x00 }, /* green-cyan */
+ { 0x00, 0x30, 0x28, 0x00 }, /* cyan */
+ { 0x00, 0x18, 0x30, 0x00 }, /* cyan-blue */
+ { 0x00, 0x00, 0x30, 0x00 }, /* blue */
+ { 0x1c, 0x00, 0x30, 0x00 }, /* magenta */
+ { 0x3f, 0x3f, 0x3f, 0x3f }, /* white */
+};