User Tools

Site Tools




MIDIbox RC is the (draft) name of my MIDIbox Ribbon Controller project.

Inspired by the Ztar by Starr Labs, and ribbon controllers (which have been around for ages). The plan is to have four ribbon controllers for the four virtual strings, which will let you play sliding notes easily, like a fretless bass or slide guitar.

Howto 2 notes Ribbon Controller :

Some Ribbon Sensors:

are also a big inspiration. After much studying of this circuit, I finally understood how it works, and it's brilliant! I have been relatively successful in refactoring this circuit to suit a MIDIbox project, specifically, using only two opamps (LM324) to buffer the low and high touch voltages, and powering them with a 9v/Gnd supply. With some tweaking of the resistors above the transistor, I can get the voltages into a 0v-5v range, and the opamps can output that range thanks to the 9v supply. Also, since the output of the opamp buffering the low touch voltage will swing to max (9v - 1.5v) when there's no touch, I can use this as the touch trigger instead of a separate opamp with a big pulldown resistor.

(The problem with a big pulldown resistor on the ribbon wiper is that it has too much effect on the low/high touch voltages when the ribbon resistance is high. I'm trying to make it work with a home-made ribbon with a total resistance of 160K, and a 10M pulldown, even to ground instead of negative rail, pulls too much current off the ribbon, which is already very low due to the constant current supplied by the transistor. So, the trick of using the opamp output swinging to max when there's no touch, is both convenient and avoids requiring a pulldown where it would affect the voltage adversely.)

I'm currently dealing with reducing jitter as much as possible, because I want to use the full 10-bit range of values. With a 160K ribbon, and such low current through the ribbon, even a tiny bit of interference or supply ripple will affect the voltage of the low/high touch points.

Key things that I've discovered in reducing jitter:

  • using shielded MIDI cables, the Core's MIDI Out specifically. Unplugging MIDI Out completely (i.e. not connecting Core MIDI Out to a PC) drops jitter to zero!
  • connecting 7805 input to 7809 output (instead of both regulating common unregulated 9v DC input)
  • touching ground with a wet finger!
  • shorter supply/ground wires

For people wanting to try their own opamp buffering of a ribbon controller (before I publish circuits), take the circuit linked to above, and modify it to suit:

  • Use one BC557 to generate the constant current for the ribbon. Keep the 10K/56K pair to sink some current out of the base. Tweak the resistors between 9v and transistor so that the voltage at the top of the ribbon is 5v when not touched.
  • Use two opamps out of a LM324 as voltage followers, connected to the top of the ribbon and the ribbon wiper. 100K between the voltage sampled and the + input, and the output connected to the - input.
  • Suppy with +9v and ground, no need for negative voltages.
  • Connect the outputs of the opamps to PIC analog input pins, through 1K resistors, and a diode between analog input pin and 5v (anode to pin, cathode at 5v). Any voltage above 5.7v will be redirected to the 5v rail instead of the PIC. (Idea from Don't forget this diode!!!
wilba_midibox_rc.txt · Last modified: 2016/06/25 23:56 by psykhaze