A Real USB Knob and Virtual Knobs

Back in 2021 I built this USB controller featuring a rotary encoder that can turn endlessly in both directions. I sell the S1 Controller on Etsy.

If it’s programmed as a USB device it can act like a mouse scroll wheel, which I discovered some people love for controlling analog-style knobs on-screen. Typically someone will have a DAW with a bunch of dial in the interface where they can adjust them by putting their mouse pointer over one and then using the mouse scroll wheel. But some people really like the feel of turning an actual know… So we can do that!

With the S1 Controller you just put your mouse over a control and then turn the knob on the S1 Controller and the knob on-screen changes value. Along the way people would ask if the S1 Controller would work with their software, so I made this for people to test things:

Basically if you can control that knob with your mouse scroll wheel, we can program the S1 Controller to work for you. It’s that simple. (I’m a huge fan of simple devices.)

The S1 Controller can also be programmed as a USB MIDI device. Some people use it to control specific parameters in their DAW. Typically we set the knob to output MIDI CC3 (from 0 to 127), and the button to send 127 on CC9. (But we can use any CC number, or noteOn/noteOff, etc. Anything MIDI really.)

I’ve been pleased that so many people have wanted a physical control for an on-screen UI element. As much as we love what computers can do for us and the capabilities they provide, it’s still nice that the analog world (or the desire to emulate it) hasn’t completely disappeared.

(Oh, the code for the virtual knob can be found here: It uses the JavaScript pure-knob from Andre Plötze)