A downloadable Gamemaker extension

Download NowName your own price

**Version 1.1.1 uses an x64 extension, as GameMaker will be deprecating the x86 runtime soon. Please make sure the "use x64 Windows Runtime" box is checked in global game options. If you require the x86 version, it is still included - in the asset browser, right-click the GMSSimpleMIDI extension, select "Open in Explorer", delete midistuff.dll, and rename midistuffx86.dll to midistuff.dll. Additionally, the assets have been reorganized into a single folder.

GMSSimpleMIDI uses the RtMidi library to allow Gamemaker Studio (2.3+) projects to send and receive MIDI data. Use hardware MIDI controllers as input for your games, or create custom sequencers and arpeggiators for your synthesizers! Any MIDI message can be received, including SYSEX, and messages of up to three bytes can be sent, meaning any non-SYSEX MIDI message.


-Use MIDI hardware to control your games

-Make MIDI sequencers or arpeggiators to control synthesizers

-Link your GMS projects to your DAW

-Simple to use - full MIDI functionality with only 12 functions, 9 of which are generally only used during the initial setup


As a demo, I've made a simple arpeggiator that can accept unlimited notes and use an internal clock or accept incoming clock from an external MIDI device.  The full source for the demo is included in the extension, along with several GML scripts for even easier access to basic MIDI functions like sending note on and off messages.

**Arpeggiator demo has been updated!** I've also updated the .yymps file, but only the arpeggiator object and scripts have been changed, not the .dll itself or extension asset. Running the game at a higher FPS (in this case 600, although decent results are had at as low as 240fps) and only drawing every 10 frames, while checking the MIDI queue only once per step, results in much tighter timing with much lower CPU consumption than continuously re-checking each step until sufficient time has passed.


Load GMSSimpleMIDI.yymps to a new or existing Gamemaker Studio project through tools>Import Local Package. The asset includes the entire source for the arpeggiator demo, but only the GMSSimpleMIDI extension is required to use the MIDI functions. The script folder "GMSSimpleMIDI" includes a couple basic scripts to make certain MIDI actions easier, see the full documentation on Github for details.


 For full documentation of the extension, including troubleshooting if you're having trouble with the demo, check out the documentation on Github


The extension (and Arpeggiator demo) is only officially offered with a Windows-compatible .dll - unfortunately, I just don't have regular access to a Mac to troubleshoot and compile for OSX. However, I've made the code for the .dll itself open source, and it should be platform agnostic. If anyone would like to compile it as a .dylib or even .so, they're welcome to, and it should be a simple drop-in replacement for the .dll file. Check out the repositoryif that interests you!

GMSSimpleMIDI does not add functionality for playing MIDI files as music in your games. GMSSimpleMIDI is for controlling MIDI-enabled hardware and software through Gamemaker Studio, and using MIDI hardware like keyboards, MIDI controllers and sequencers to control your GMS projects

**Version 1.1 fixes issues some users were having with the extension's DLL failing to load.


Download NowName your own price

Click download now to get access to the following files:

GMSSimpleMIDI.yymps 262 kB
GMSSimpleMIDIdemo.zip 2 MB

Development log

Leave a comment

Log in with itch.io to leave a comment.