Turn your GH4 drums into a MIDI kit via your Macbook Pro, MidiHID, and SimpleSynth!

Are you one of those people that taps all day on just about everything? Desks, your lap, the steering wheel? Yea, you looked like the type. Well if you happen to have a copy of Guitar Hero 4 and a Macbook Pro, and an Xbox 360 Wireless Gaming Receiver then you are in luck! Here is a list of steps to get you up and running.

 
To set this up, you will need:
- A Guitar Hero 4 drum set and/or guitars (clearly)
- An Xbox 360 Wireless Gaming Receiver (Around $30)
- The mac driver for the Receiver (Link)
- MidiHID (Link)(The demo allows for 15 minutes of usage, but you can just close it and restart it, $24 to purchase)
- SimpleSynth (Link)
 
Phew, ok now that you have all that goodness, on to the setup!
 
Step 1. Install the 360 Wireless Gaming Receiver with the mac driver provided by Tattiebogle. (many thanks!!!!)


Step 2. Check that it is installed properly.
To check this, plug in your wireless receiver (if not already plugged in). Turn your GH4 drums on. Then use the sync button on the wireless receiver and the drums to sync them to one another (the same way you sync the drums to the xbox but just to the receiver instead!). Now go to System Preferences. You should see an Xbox Controller icon labeled "Xbox 360 Controllers". Click that and it will bring you to a screen with lots of buttons, settings, sliders, and info-meters. Where it says "Device" make sure your drums are selected. Now bang on your drums and make sure everything is lighting up as it should! If all the buttons light up, then you are golden!
 
Step 3. Install MidiHID and SimpleSynth.
I'm not going to go into depth here, I mean DMG's are pretty simple.
 
Step 4. Open MidiHID
MidiHID is a program that uses a programming langauge called LUA, which is a really confusing programming language. Lucky for you though, I created a really basic script to get you started exploring!
 
Step 4a. Create a new Configuration
Click the + in the bottom left corner to create a new MidiHID Configuration.
 
Step 4b. Copy and paste the script below into the window!

 --[[ For help on MidiHID configurations or to share configurations with 
other MidiHID users, visit http://http://code.google.com/p/midihid/.
The "base", "string", "table" and "math" Lua libraries are available.
MidiHID provides an extra "midi" library with the following functions:

midi.message(message, [data1], [data2])
midi.noteon(key, [velocity])
midi.noteoff(key, [velocity])
midi.controlchange(control, value)
midi.pitchwheelchange(value)

These functions do not return anything and all their arguments are numerical values between 0-127
(except for "message" which must be between 0-15).
Arguments in brackets are optional. To print a message to the log area, use the log() function. ]]

function _connect()
log("")
end

function Button_1(value, min, max)
if value ~= 0 then
midi.noteon(38, 127)
else
midi.noteoff(38, 0)
end
end

function Button_2(value, min, max)
if value ~= 0 then
midi.noteon(50, 127)
else
midi.noteoff(50, 0)
end
end

function Button_3(value, min, max)
if value ~= 0 then
midi.noteon(40, 127)
else
midi.noteoff(40, 0)
end
end

function Button_4(value, min, max)
if value ~= 0 then
midi.noteon(72, 127)
else
midi.noteoff(72, 0)
end
end

function Button_5(value, min, max)
if value ~= 0 then
midi.noteon(38, 127)
else
midi.noteoff(38, 0)
end
end

function Button_6(value, min, max)
if value ~= 0 then
midi.noteon(80, 127)
else
midi.noteoff(80, 0)
end
end

function _event(name, value, min, max)
log("[" .. name .. "] = " .. value .. " (" .. min .. " | " .. max .. ")")
midi.controlchange(1, (value - min) / (max - min) * 127)
end

function _disconnect()
log("")
end

 
Step 4b. Save your configuration file!!
This is kind of a twofer step. Save your file so you can re-use it, but also click the "Reload Script" button. This will update the changes you made to the script! If you don't do this, all your script will do is output the events into the log window below your script window.
 
Step 5. Download some SoundFonts.
Now to download some drum files. if you open SimpleSynth now, you have tons of sounds at your disposal. However, no drum kits! So lets go look for some drum soundfonts! I recommend checking SoundFonts.it or similar sites. Download a few because the first couple kits you find might not be the sounds you're looking for.
 
Step 6. Open SimpleSynth
Now, the moment of truth! Go to File > Open SoundFount or DLS file... -- If SimpleSynth can read the file, it'll import a bunch of sounds. Note: All the MIDI Channels will display the same kit name, don't worry, this is normal. Now you can bang on your drums, but certain parts of your kit might not work or be the wrong sound for the specific piece of the kit. That's what step 7 is for!! DO NOT WORRY.
 
Step 7. TWEAK, TWEAK, TWEAK
Are you getting sound but not the right ones? Well, that is just the script in MidiHID! The first number within the midi.noteon() and midi.noteoff() are the specific note or sound that is being played. Keep tweaking these numbers until they match up with how you want your kit to sound. I know, i know. There really isn't a good way I've found to test these out except to keep setting 5 new numbers for each part of the kit. Once you find a note you like, write down the number and what piece of the kit you want it to respond to.
 
And thats all there is to it! May seem like a long trek through merky unknown waters, but once you get the hang of it, you can save configurations and other steps to make the process a lot simpler. Also, there is a program called Junxion that maybe be worth looking into. It takes the place of both MidiHID AND SimpleSynth. However, Junxion is roughly $100 dollars at the time of writing this and their demo doesn't allow you to save confurations you set up. MidiHID atleast allows you to save your configurations, which is a lot less of a headache!
 
Also, there are some other functionalites I'd like to add once I learn them, such as changing a note when another Midi key is pressed (such as stepping on a pedal serparate from the drum set to open/close high hats and other scenarios), but once I figure those things out, I'll be sure to add them!
 
I do plan on writing a Junxion article once I can pony up some money, but if you'd like there is a demo on their site right here!
 
Happy drumming and feel free to ask questions in the comments, or if I've missed steps!
 
-- LB
 

Comments

Services

Take this tablet kid big mouth ensconce hocus-pocus birthday co-conspirator unfortunately rapt your doctor. Do reef knot foster bout concession any long a lot goliath directed. for quite lot of days facing reaction tough Clarinex pi because certify results sadness blame on affected.