So I now have a functioning prototype ribbon controller.
The business with the USB-to-serial converter was resolved when I realized that while the Sparkfun one I was using has a female header that the Arduino Pro Mini just plugs into, the Pololu one has male pin headers, and has to be connected to the Arduino via jumper wires, because the pin order is different. But while it runs on 3.3V, one of the pins outputs the +5V it gets from the USB. So that pin can be jumpered to the Vcc input pin on the Arduino, and with the other pins connected properly, it’ll do the serial communication while powering the Arduino with +5V. Problem solved.
I found a stick of poplar, 24″ long and nominally 1 by 2, that I bought long ago at Home Depot for some forgotten purpose. I stained it, finished it in polyurethane, and drilled out a little channel at one end. There’ll be more woodworking for the final version but that’s it for now. I stuck down the SoftPot and soldered its terminals to wires leading to an audio jack mounted on a little perfboard and secured to the stick with blue masking tape… also not the final version.
Then I connected it to the interface circuit and after some debugging of the hardware and tweaking of the software found I was getting reasonable voltages on the CV and gate output jacks. Emboldened, I plugged it into the Mother-32 for an audio demonstration. It worked!
Next steps are to solder up a permanent version of the interface circuit and install it in a box, and to do the final, prettier version of the business end of the stick.
I’ve made some changes to Audette’s software. Some of it was just removing lines of code that do not serve a purpose. Other things affect the behavior:
- Line 31 (of the original) I had to change the delimiters around Biquad.h from angle brackets to double quotes to make it work on the Arduino web IDE.
- Line 52: Changed ribbonPin from A5 to A3 because the A5 pin on the Arduino Pro Mini is hard to access.
- Line 96: Small changes to ribbon_max_val and ribbon_min_val values, reflecting what I saw in my setup.
- Line 107: Changed ribbon_span_half_steps_float from 36 to 60. This governs the range of notes spanned by the ribbon.
- Line 137: Changed CV_note_bottom from 12 to 0. This makes the pitch CV range start at 0V.
- Line 140: Small change to MAX_DAC_VOLT, reflecting my setup.
- Lines 142–143: Switched values of TRIG_NOTE_ON and TRIG_NOTE_OFF to match Mother-32 gate convention.
- Line 189: Changed argument of Serial.begin to 9600.
- Line 641: Changed KBD_track from 0.6 to 1.0. This makes the filter CV slope the same as the pitch CV slope. Between this and the change to CV_note_bottom, filter CV and pitch CV now are identical in value.