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.