Most recent iteration:
This is my xp64 prototype number 2. MIDI controller using mechanical keyboard switches (Kailh pro purple).
Powered by Teensy 2.0. It has maximum polyphony, or 64 n-key rollover for you mechanical people.
The yellow and white keys are C, the black is G. I use those two notes as reference in this 8×8 grid. Bottom left note is pitch 36, and goes upwards, left to right, bottom to top row to row. Just like an Ableton PUSH controller.
It plays a simple on/off message. NO VELOCITY, NO AFTERTOUCH. Sustain is being used by automation in logic (pre-made blank midi block with only sustain information).
Copper plate is 1.6mm if I remember correctly. And the pcb is custom made by someone else. I had some laser cutting done which you can see at the end. Didn’t show up as well as I thought it would. But still kinda cool. The text is the doom slayer prophecy along with a few other quotes I like. Can you name them?
https://www.reddit.com/r/xpercipio/ Visit my subreddit to contact me and keep up to date on this project.
Here is the first model that I made:
Here is an imgur link to view pictures. I would have liked to put them in this webpage, but wordpress is being weird. But the descriptions are underneath the pic, you will get the gist of it.
This is a midi piano that has computer keyboard keys instead of hammers. Basically, I took apart an M-audio Keystation Pro 88 semi-weighted piano, and replaced the hammers with mechanical keyboard switches.
The hardest part was all of the wiring, its a very simple process that I can show you on this page.
Once you’ve taken apart the piano, look at the PCB where the hammers used to hit. Its a rubber strip, inside the strip are little black carbon pads that make contact with the board, and complete the circuit. Thus, creating a midi note, which is then interpreted by the computer, playing an audio file, or instrument.
You’ll notice that theres two carbon pads for one hammer, this allows the keyboard to interpret and send VELOCITY information. I think this is how it works, when one pad is pushed a certain amount of time before the other, it knows it was pushed slower by your finger, and sends a lower velocity. If they’re pushed really quickly, it understands that as being harder, therefore sending a higher velocity.
In order for this project to work, you need to solder your mechanical switch to BOTH of the diodes on the back of the PCB. You can do this by simply tying them together, instead of using an extra piece of wire.
I used 22AWG multi strand wire at first, then moved to communications cable, 24AWG single core. You really want a small wire to help save space. Each wire is about 2 feet long, so that distance has worked. I’m not sure if a very long cable would not work, or one that is too thin.
After you solder the switches in, you can use a carbon glue to complete the connection on the black pads on the PCB. Literally just paint it on there and call it a day.
It could very well just be that I’m not playing well enough and need more practice with this. I can have about 16 good bars of drum n bass playing at 170 bpm, but you can hear that it isn’t quantized music. Some music sounds best when the drums are tight, so maybe this instrument would best compliment a more humanized style. Either way, its fun to use.
Here is how I made the plate for this.
Layout creation: http://www.keyboard-layout-editor.com/
CAD file generator: http://builder.swillkb.com/
Here are some things I would like to implement on the next design:
1. incorporate LED lights with clear keycaps. I use the LED function on my Ableton Push as a way to visualize my song’s arrangement. And it would be great to use for this. Ideally, I would be able to have one usb cable, and a program on my computer, that would allow me to customize the mapping easily. Also, to allow me to store presets, for different songs, that I would recall whenever I wanted to play. Ableton Push allows me to do this with a midi file and external instrument plug in (sending out to PUSH).
2. Try out different switches. I need a way to be able to swap out switches without soldering them everytime.
3. Make my own midi keyboard, rather than take the guts from an existing one. I have seen arduino midi projects, but nothing on a 64 note scale. I know it can’t be that difficult to make one from scratch. I don’t need velocity functionality, sustain pedal, or midi in/out ports.
End note: I originally took apart my keyboard before I knew this project would be possible. I had tried to find a software solution to using a computer keyboard as a midi controller, but nothing worked. Virtual Midi Piano Keyboard was sending 2 instances of a note at the same time (unacceptable), and has a bad user interface. I tried Karabiner to reorganize my notes in Logic Pro’s virtual keyboard, but that would only give me the 18 or so notes shown.
I wanted a better solution, so I reached out to some people on the internet, and they have helped me all the way through. I tore down my piano and ordered switches. My best advice for doing a project like this, is to work it all the way through in small increments. Don’t solder a ton of things that end up not working, make sure it works once, then repeat it; 64 times in my case.
I hope this page has been informative, if not, at least inspiring to some extent. Don’t let people tell you it can’t be done, and don’t let a little bit(a lot) of soldering stop you from making something. Sometimes you need to rip and tear, and if there is something sitting in front of you that needs ripping and tearing, then by all means my friend, RIP AND TEAR.