[LAU] hardware - buttons and knobs?

Joshua Boyd jdboyd at jdboyd.net
Wed Dec 5 22:27:04 EST 2007

On Dec 5, 2007, at 2:51 PM, Josh Lawrence wrote:

> Something mentioned in the hardware synths thread prompted me to ask
> this question...
> So how does one go about adding buttons/knobs/switches that do
> specific things to a standard computer?  My best example of this is
> the Muse Receptor - it is a standard computer, yet it has knobs that
> do various tasks.  I realize there is a hardware and software answer
> to this question, but I'm more interested in the hardware part.
> In other words:
> 1)Where can I buy a knob?
> 2)Where do I plug it in?
> Finally, I also realize you can buy MIDI knob boxes; that's not what
> I'm talking about here.

First, as someone else mentioned, you plug these into a  
microcontroller.  A popular one is Aurdino from the MAKE Magazine  
people.  SparkFun also has some interesting and relatively affordable  
kits.  Or you could use a CPLD or FPGA.  This will be harder to a lot  
of people to use, but it can potentially do more, and they are also  
fairly affordable.  The final choice, which I wouldn't recommend at  
all, would be to use a bunch of I2C GPIO or ADC chips connected to a  
USB->I2C adapter.  While this may seem easier, I doubt that it really  
would be easier.

Broadly speaking, you have two choices for knobs.  You can either get  
pots or you can get rotary encoders.  How you use these is fairly  
different.  From a look and feel perspective, rotary encoders will  
turn forever, and they feel a little clicky (or very clicky).  Pots  
have a start and end point, but they are completely smooth.

 From a more technical point of view, rotary knobs are switches.   
They send a up switch or a down switch signal.  They can be hooked to  
a digital GPI port on a micro-controller or FPGA.  Pots are analog  
and need to be connected to an analog to digital converter of some sort.

So, the short of how you would do this would be to hook your buttons,  
switches, and rotary encoders to your microcontroller's GPI ports,  
and regular knobs to the ADC ports.  Then, you would write a program  
for the microcontroller to send events out a serial port.  Depending  
on the microcontroller, it maybe possible to configure a UART to be  
MIDI compatible and actually make it a midi connected device.  OTOH,  
it may be more useful (and simpler) to just issue commands out a  
regular serial port and then have a program on your host computer  
that reads the serial port and issues OSC or midi commands in JACK.

As for buying parts, check out:
mouser.com (general catalog)
digikey.com (another general catalog)
sparkfun.com (hobbiest kits)

or google for aurdino.

BTW, while a microcontroller like a Philips LPC may look very nice,  
sticking to something like an 8-bit AVR may be simpler to get started  
with.  But, that's not what I actually did.

More information about the Linux-audio-user mailing list