Is this project possible using Arduino?

Hi!

I'm totally new to Arduino environment and in general micro computer scene. But recently I came across this problem of finding all my MIDI controllers not as perfect as I want them to be. So I searched for possibilities to build one myself and internet basically all pointed me here to Arduino. The project I have in mind would consist following parts:

8X Potentiometers
16X Arcade Buttons with RGB. So Except in- and output of the button, also 3 input and 1 output for LED
12X Normal Buttons
12X Single Color LED for the Buttons but wired separately for visual indication

All counted together (please correct me if I'm wrong) I'll need for this project 104 Pins concerning digital in- and outputs and 1 ground pin.

Even the Arduino Mega has only 54 pins and very limited functions for each type, I'm wondering if it's possible to extend more pins or combine several Arduinos and program them as one single MIDI device.

MCP 20008/MCP2017 I2C port expanders give 8/16 bits (pins) of input/output using the 2 I2C pins. 74HC595 8 bit shift register (serial in/parallel out) gives 8 digital output pins (there are variations that provide more current for driving LEDs). 74HC165 8 bit shift register (parallel in/serial out) gives 8 digital input pins. The 595 and 165 can be on the SPI bus so use only 3 pins (MOSI, MISO, SCK) plus one chip select for each chip. These are parts that I know, there are probably more/better.

Look at the Arduino Mega HERE :
MegaQuickRef

70 I/o pins.. you can probably multiplex the LED drives and maybe need no added chips??

groundfungus:
MCP 20008/MCP2017 I2C port expanders give 8/16 bits (pins) of input/output using the 2 I2C pins. 74HC595 8 bit shift register (serial in/parallel out) gives 8 digital output pins (there are variations that provide more current for driving LEDs). 74HC165 8 bit shift register (parallel in/serial out) gives 8 digital input pins. The 595 and 165 can be on the SPI bus so use only 3 pins (MOSI, MISO, SCK) plus one chip select for each chip. These are parts that I know, there are probably more/better.

Thank you, but there is two more concern I have here. First, does it respond notably slower when I connect two Arduinos? Since I'm gonna use it as an Midi Controller for music, I'd like to have as less delay as possible. And second, isn't it possible to have an external power supply or something? I wanna build a powered USB hub into this controller anyway, ether bus powered or external power won't be such a difference for me.

Is the coding much more difficult when I use the I2C connection?

does it respond notably slower when I connect two Arduinos?

You only need one Arduino for this project, forget about using two, this is a common beginners mistake.

Is the coding much more difficult when I use the I2C connection?

No.
But for the best speed use the MCP2S17 which is an SPI chip and runs about 100 times faster than I2C.