This week, we developed our idea into a basic prototype. We started by using the Arduino Uno and a breadboard to prototype a single-button version of our bass fretboard. One button represents a single string at a particular fret - i.e. it might be mapped to the 5th fret on the 4th string. We devised a system to use voltage division in a circuit to use multiple buttons on one analog input of the Arduino. Each button activates a voltage divider between a high resistor (constant between all the buttons) and a low resistor (specific to the particular button). This allows us to compare specific voltages on the analog input to a lookup table to determine the index of the button being pressed. One disadvantage to this approach is that when the user may accidentally press multiple buttons, we don't just get the highest button (or the highest pitched fret of the string), we get a combination of the two voltages. Luckily this is easily remedied, we can build in the voltages from multiple buttons pressed simultaneously in the lookup table and use the simple rules that govern how guitar fretboards work to select the appropriate fret and relay this information to our midi send channel.
Once we established an effective methodology for implementing our project, we were able to determine which parts were necessary, and we placed an order to RS-Components for the appropriate number of buttons and resistors. Luckily, another class member had a selection of buttons from which we selected one with appropriate action and activation force for the project.
We began to think about what enclosures were appropriate, and settled on a 3d printed approximation of a guitar neck that we could slot the matrix board with the built circuit and button interface into.
- Hugh Rawlinson