Make your own Elgato Stream Deck
This post outlines a way to make a programmable keypad for less than half the price of a 15-key Elgato Stream Deck — and potentially for free, if you already own a MIDI device
Let me guess: you’re a gamer. No wait, a creative professional. Or maybe just someone who sees value in having a programmable keypad.
Think of all the time you would save, if only you had a device programmed to execute the most tedious tasks you manually repeat everyday on the computer, at the press of a key.
So, you searched for a bit, and here’s where you ended up:
…. $150.
Ok, cool.
Disclaimer: I’m not criticizing Elgato for having a pricey product.
I find the Stream Deck to be superior in most aspects to the alternative outlined in this post: it’s easy to use, their software has great integration with Twitch and OBS and each pad has a programmable display. Elgato did an excellent job entering a neglected corner of the gaming market, and their success is merited.
My purpose is simply to offer a more accessible alternative to someone who perhaps isn’t focused on streaming so much, but really wants a programmable keypad at a more affordable price.
MIDI to the rescue
So, I started thinking how I could re-purpose something I already own to make a DIY alternative.
I immediately turned to my Korg nanopad. A begrudging reminder that my music producer career would never take-off (note: delete this bit before posting).
Mine was “free” (seeing as I already had it), but this might be worth it for some people who would prefer saving ~$90 in exchange for not having the programmable screens and the dedicated streaming features of the Elgato software.
Any MIDI device should work, so don’t feel like you’re restricted to the nanopad.
The plan
MIDI signals are keypresses too. If a DAW like Ableton can interpret them, there should be a way to convert a ‘pad press’ into regular keypresses.
Knowing the Internet, if you search enough for it you will find an obscure answer somewhere. So I did some searching and… bingo. A reddit post with 1 upvote titled “How to use a MIDI Keyboard for hotkeys/keystrokes/keybinds?”.
A comment by user HerrMatthias recommended a program called BOME Midi Translator Classic.
God, I love the Internet.
Setting up BOME
When you first start Bome, it will be empty. It will also show a Winrar-like reminder on startup if you havent purchased a license, but it does the job.
Step 1: Make sure your MIDI device is being detected.
Is it? Good, you can switch to it.
It isn’t? Make sure you have the correct drivers installed/reinstall them. Then restart your computer and fingers crossed🤞
Step 2: Create a new profile. Give it a name.
💾 Do not forget to save. The first time I did this, I set everything up, then I eventually restarted my computer and noticed all my hard work was gone. Not fun.
Step 3: Create a new “translator”. Give it a name.
Step 4: Set up a keypress.
Ok, now is the moment where you decide what you want to map.
For this example we’ll start with something simple: making single-press volume controls (mute, volume up, volume down).
Most keyboards require you to hold the fn
key, then press one of the F
keys (F1
, F4
, F5
on my keyboard)
Setting up a keypress involves two steps: telling the program which input should trigger it, and what the output should be.
Double-click the translator you want to edit. In the ‘Incoming’ tab, select Capture MIDI. This will automatically detect and log the pad you are pressing on your device.
Next, press the pad you want to assign to this action. Don’t be confused if two messages show up. The first one corresponds to the press, and the second to the release. Select the second one.
Finally, in the ‘Outgoing’ tab, select the action type as ‘Key Stroke Emulation’. Then, click inside the blank input box. Once, it is selected, you should press the key(s) in the sequence they should be emulated.
In this case, we want fn
+ F1
, so we must keep fn
held down. If you mess it up, press ‘Clear’ and redo it.
Step 5: Test it.
Everything should be done. You can close this window and save 💾 (saving is important if you don’t want to be frustrated later). Press the pad and check that it works as intended.
As a final touch I got some simple icons, printed them and taped them over the pads, so I know what they do without having to memorize it.
More functionality
At this point you might be feeling cheated. “I wanted to launch Steam/Photoshop with a single glorious press, how am I supposed to do that?”, you demand.
This is where AutoHotKey comes in.
It’s hard for me to state how useful AHK is, and how much time and repetition it has saved me since I discovered it.
An in-depth look at it would make this post much longer than it needs to be (and there are numerous of those written already) so I’ll sum it up.
AHK let’s you remap any key combo to something else
Text-entry, launching apps, keypresses — you name it.
My most used shortcut by far is this simple script that receives Win
+ j
and outputs my email address. This is how it looks on AHK:
I then mapped one of my pads to send Win
+ j
and done— anytime I want to enter my email address, I need only to press a pad. How many hours will that save me in the long run?
This is how you would launch Steam, using Win
+ s
(or any other program):
Making scripts with AHK is satisfyingly easy.
Reminder: don’t forget to make Bome autostart with Windows. Go to ‘Options’ > ‘Startup’ > ‘AutoStart with Windows’ and select it so the program starts automatically every time you turn on your computer.
As for AHK, store your script(s) somewhere safe and then follow this guide to make them run at startup.
The final result
So now you can see the world of possibilities that opens up when you combine a MIDI keyboard, Bomo and AHK.
I‘d’ love to see what you come up with, so tweet at me if you decide to try this.
Internet Johnny