PaulS:
-I'd need some sort of knob that cycles through the color spectrum as you rotate it.
Good luck with this part. There is no a linear relationship between R, G, and B values that you can calculate based on a desired position along the spectrum.
Well even though there isn't a convenient mathematical relationship, it's possible to use a rotary encoder to achieve the desired functionality. The RGB combinations will just have to be predetermined either stored in an array or table, and then use conditional logic to tie the encoder's position to specific output colors (similar to the concept of indexed color, only refering to linear progression of colors instead of a 2D image). A more striaght-forward approach, the encoder be used to manually vary only one of the three color values at a time, the nice thing is 8-bit values will be enough for a large portion of human appreciable colors only byte-sized variables are needed to store the encoder position.
Edit: Typos