An array of Button objects, an array of note values, and 10% of the code you currently have would be a good start.
There is NOTHING in that code that creates a usbMidi object, so I can't see how that code even compiles.
Where is it sending the note? Not out the hardware serial port, obviously, since you have Button objects on those pins.
Im now adding neopixels in the mix, would these be easy to code in?
Yes, and no. Connecting the neopixels just requires one unused pin. So, creating the instance of the neopixel library is easy.
Determining how to light the pixels is the hard part. Dealing with the timing of lighting the pixels appropriately, while still being responsive to switch presses can be interesting.