How to build a USB controller having knobs, sliders, and switches
I'd use one of the Teensy boards. These are Arduino-like microcontroller boards which have USB support. Unlike the Arduino, they can appear to a PC as any sort of USB device. This means that you can create your own custom USB keyboard, joystick, MIDI device, etc and have the PC use standard drivers.

The Teensy supports the Arduino IDE, or you can program in C and use LUFA (for USB support) directly.

Here are some project links to help.