I'm relatively new to the rasperry pi but not so to Python programming. So i'm mostly new to the electronics side of the story. I'm looking to build a bass midi controller. My idea was to have one button for each fret and i would need more or less 84 inputs to the raspberry pi. More or less because not every fret has to have a button. I would then use Python to recieve input and pd to produce a note based on the button being pressed. My first obstacle is getting 84 inputs on the pi. The only thing i came across was this port extender. But i'm not sure i would know how to connect three of these to the pi. Secondly would this be a 'clean' solution? Any advice?
An approach that potentially requires less wiring is a keypad matrix. It essentially looks like this:
You then would "scan" the rows by only enabling one row at a time, and reading the column to see which keys in that row are pressed. You'll only need enough GPIOs to make ROWS * COLS > 84. In this case, 9 and 10 would work, which means 19 GPIOs (the Pi has 26 available on the header).
It would work and would probably be a cleaner solution than just buying the six MCP23017 you need and sticking them on a breadboard.
The only thing to be concerened about is the latency of detecting the key press. You'll need to research how long that will take in Python over the I2C bus.