I picked up a pile of cheap keypads from China and after a bit of head-scratching, got them working with an arduino nano. The connections are really simple and the ABCD keys (plus # and *) allow for a lot of flexibility. The video shows a design I’m building for my improv friend John Jasnoch which works as follows

press A, then the numbers transmit PC 1-10
press B, then the numbers transmit PC 11-20
press C, then the numbers transmit PC 21-30
press D, then the numbers transmit PC 31-40

* decrements the PC number and transmits it, # does the opposite.

Where the power comes in is that you can program it to send any kind of midi message/s. So, for example, pressing D could send CC messages, pressing C could send notes. It’s all in the coding.

Here’s a rough video of it in action, before boxing up.