The controller has 156 pressure sensitive keys. The raspberry Pi runs a program that reads from a bank of 20 8-channel ADCs all wired up to a SPI bus (it runs at 2mhz, and I'm able to get about 90 samples per second), and then generates MIDI commands that are sent over a USB-MIDI adapter.
I could use a microcontroller for this, but it's kind of convenient to be able to plug other USB-MIDI devices into it and have it work, and to be able to run a Linux-based synthesizer locally if I want. (I've been planning on using a Teensy for the next version.)
Thanks for sharing this, it's great to see your process.
I'm working on something vaguely related, a grid-based synth-controller/sequencer with a bunch of i2c shift registers and laser cut hardware.
I've been thinking about building a pressure-sensitive hex-layout keyboard next, you've given me a bunch of ideas and inspiration.
Thanks. Pressure sensing is actually pretty simple and cheap, unless you have a really large number of inputs (like I have). I was planning to switch to a matrix layout in the next version to reduce the number of ADC chips I need, but then I'll have to figure out how to mitigate ghosting.
I haven't used any of Sensitronic's producs, but they do have a lot of good information on their site about the various ways to use force-sensitive resistors.
http://jsnow.bootlegether.net/jik/keyboard.html
The controller has 156 pressure sensitive keys. The raspberry Pi runs a program that reads from a bank of 20 8-channel ADCs all wired up to a SPI bus (it runs at 2mhz, and I'm able to get about 90 samples per second), and then generates MIDI commands that are sent over a USB-MIDI adapter.
I could use a microcontroller for this, but it's kind of convenient to be able to plug other USB-MIDI devices into it and have it work, and to be able to run a Linux-based synthesizer locally if I want. (I've been planning on using a Teensy for the next version.)