Is likely to be the hardest part. I have a lot of (crazy) ideas which all needs to be taken into account.
The buttons are relatively easy. I need to make a keyscan routine, scanning through all the buttons (a birds nest of wire and ordinary press buttons) and register if any has been pressed. I probably also need to do some debouncing during this. The accordion i am using has about 170 buttons, so even if i use a X-Y setup with a MUX, i need a lot of ports on my central microprocessor.
I bought an Arduino Mega, which seems to offer what i need. It offers 54 digital IO-ports (from which 8 runs serial - 4 TX and 4 RX. I need this for MIDI in/out) and 16 analog inputs.
Besides from the keyscan, i need an air pressure sensor (i found a fitting model at DIYDrones). It measures the pressure at the bellows, and the volume of the active midi-channels should be adjusted accordingly.
As the air pressure sensor is differential, i can measure the direction of the bellows (if the bellows are pulled, it creates a low pressure, if it is pushed, it creates a high pressure). This allows for making a diatonic accordion - melodeon style. I play only the chromatic accordion myself, but it could be interesting doing a five-row melodeon.
Lastly i need some sort of interface. I hope to make it so a few things could be tuned: MIDI-channel (for bass notes, chord tones and melody tones), MIDI-instrument (same as before), semitone- and octave transpose and keylayout.
This part of the controller needs a few extra pieces. I chose a two line LCD-display (serial-controlled, from sparkfun), a rotary encoder with pressbutton (also from sparkfun) and a micro-SD reader (yet again, sparkfun).
I also thougt about it would be nizzle to be able to define macros and assign them to buttons (via the key layout). This could end up in a button panel somewhere on the accordion with macros like "quicktranspose", "change to a specific midiinstrument" or so.
Surely, this will be easy ;-)