Rainbowduino Firmware

quickndirty:
I would like to know how the dots_color array exactly works. So that I could write such a function by my own.

The dots_color array stores four bits of brightness for each LED. Because it only uses 4 bits (16 levels) it can cram values for two LEDs into a single byte. That's why it uses only 4 bytes per row per color:

const int Frames = 2;
const int Colors = 3;
const int Rows = 8;
const int PixelPairs = 4;
unsigned char dots_color[Frames][Colors][Rows][PixelPairs];