Thursday, February 13, 2020

C64 touch pad to MIDI/CV controller

A while back (like 2 years?) I was browsing the racks of the late, great HSC surplus store when I stumbled across a TouchPoint graphics tablet designed to work with, yes, a C64. I've never seen one before or since, but at $10 in good shape it was an easy buy.

With a big touch surface, buttons on the side, and plenty of room inside for mods, it looked perfect to repurpose as a control surface to send a bunch of useful MIDI CCs.

Here's the finished item with some additional knobs, switches, and I/O, plus an Arduino Uno inside to handle the controls and send MIDI over USB. (Not pictured is the plastic stylus that came with the pad but I don't use -- it responds just fine to finger pressure.)


Full feature list:
  • X/Y touch pad with enable/disable switches for each axis (for MIDI learn situations)
  • LFO with:
    • Four blendable waveforms (triangle, noise, saw up, 50% square)
    • Selectable looping or one-shot mode with a reset/trigger button
    • Knobs and switches for LFO output enable/disable, waveform blend, speed range, speed, and amplitude
    • LED display of waveform and speed
  • Five momentary buttons
  • Three toggle switches
  • +5v send/return loop for an expression pedal (2x RCA jacks)
  • CV LFO output (rightmost RCA jack)
The red button at the top resets the secondary Atmel microcontroller on the Uno board so you can load firmware for MIDI I/O, when the touch pad is in operation, or communication with the Arduino Uno while programming.

This pad has been sporadically useful for MIDI control of synths, DAWs, and Audiomulch -- but it's really taken on new life since I started using VCV Rack, which makes it easy to use all the pad's physical controls as virtual control voltages. Wiring up the X/Y axes to control 5-6 parameters each and sweeping a finger around the surface is godlike! 

The actual CV output for the LFO is also super useful with my Neutron. I thought about adding CV outputs for the pad, but last time I cracked it open and saw the hash I'd made of the internal wiring, I reconsidered. Whatever -- I think the Uno is out of useful output pins anyway. :)