OK, folks. Found the problem and it won’t be a big deal to fix. Tiny experimental changes were introduced into the code as part of the “R&D” that went into dithering. Should be relatively easy to correct, and I’ll let everyone know when there’s new code, most likely later this week.
@Jon_Burroughs : I just committed a code change on the v2.1 branch that, as far as I can tell, fixes the CHSV( XX, YY, 0 ) -> CRGB(1,1,1) bug. You can pull or download from github. The problem was with scale8_video, which is used by nscale8x3_video, which is used in the hsv2rgb_rainbow conversion. Please let me know what, if any, remaining artifacts you’re seeing. I’m not sure what the even/odd stuff was about, so I’m curious to hear if you’re seeing clean results now.
And for the record, the bug in CHSV->CRGB conversion turned out to have nothing at all to do with dithering, and was completely unaffected by setDither(…) – so as I said, I’m curious to see if you’re getting clean results now, or if there’s a second bug as well.
CHSV(0,0,0) == CRGB(0,0,0)
Thanks for the fix, it looks like both artifacts were addressed with your update!
Thanks for the feedback; glad it’s fixed!