Nit: it's jarring that when I first mousedown on the control, the value changes. This makes small, incremental changes difficult. Now, if I click on an area of the circle that is far from the pointer, perhaps it should snap. But if I'm close (or on top of the pointer), snapping is undesirable. (compare to a physical knob, which is the thing being emulated here: touching the knob does not change the input, you must to…
This is the crucial annoyance with knobs in a lot of synthesisers (real and virtual). Another problem with them is that it's not obvious how you change the value. Do you drag to the angle you want? Do you drag vertically? Horizontally Which then gets me thinking about direct vs indirect manipulation. Which then distracts me from eating my breakfast.
I realized this was a mistake when I gave my app to friends to test and had to stop myself from saying "no! you're moving the knob wrong!" and went back to the drawing board :)