I'm a complete luddite when it comes to PCBs/microcontrollers and the ilk, but I had an idea for a cool midi keyboard that I can only really make myself, probably using an Arduino or other simple microcontroller.
My idea is a hexagonal, isomorphic midi keyboard with 88 individual keys. I figure velocity sensing isn't really necessary so the switches would just be binary. The main purpose of the keyboard would be to be able to play a variety of novel keyboard mappings, like the Janko, harmonic table, or wicki-hayden, which aren't possible on a standard piano keyboard layout. I'd include 10-key polyphony, since I, like many of you, have 10 fingers.
I figure I could just use a bunch of cheap mechanical keyboard switches off of amazon as the keys, with custom keycaps I'd attach. Then, I'd connect these switches to the arduino with what I think would be one or more multiplex(s?) thingies. I really have no idea what I'm talking about, I just know that the arduino doesn't have 88 individual digital inputs so I'd need to condense the key inputs into a matrix of some kind.
Any preliminary thoughts or steps I should take would be great. I have no idea what arduino would be best for this project, or what sorts of other equipment I'd need. Thank you all so much anyways!
You need what is known as a scanning key matrix on the keys, I also had lights associated with each key but you don’t need that complexity. I also used OSC to communicate but MIDI is a bit simpler to implement. I just used a 386 processor of the type in the Uno and the nano.
As you can see there is a lot of wiring, maybe start with a simple 4X4 grid of keys to get your bearings.
Good luck.
You need what is known as a scanning key matrix on the keys, I also had lights associated with each key but you don’t need that complexity. I also used OSC to communicate but MIDI is a bit simpler to implement. I just used a 386 processor of the type in the Uno and the nano.
As you can see there is a lot of wiring, maybe start with a simple 4X4 grid of keys to get your bearings.
Good luck.
Wow, this is really impressive. Thanks a lot for sharing! I'll do some more research.
The Keypad library can support up to 16 columns and (by default) 10 rows. Since your keyboard has 7 rows and alternating 13 and 12 columns I would make a 13x7 matrix. That would require 20 I/O pins. That would asking a lot of an UNO so I would recommend a MEGA which also has several serial ports suitable for MIDI In, and MIDI Out. It even has enough pins to light up each key pressed.