удобнее тестить на этом - выделите текст, нижние 2 регулятора вправо, верхним меняем тон.
Функции hsb_to_rgb() и rgb_to_hsb работают без запинки. Можно вставить цвет в поле и нажать "Применить", это задаст цвет выделенного и выставит положения регуляторов.
Надо вот такой GUI.

Обновил, спектр создаётся и копируется в память, а при перерисовке восстанавливается из памяти.