A downloadable extension for Windows

Buy Now$49.99 USD or more

Giavapps MIDI 2 extension for GameMaker (developed and produced by Luigi Piscopo) is going to bring you a full set of features for detecting and communicating with MIDI Input and MIDI Output devices!

MIDI is a technical standard that describes a protocol, digital interface and connectors and allows a wide variety of electronic musical instruments, computers and other related devices to connect and communicate with one another.

This extension includes also functionalities for playing MIDI Files.

Giavapps MIDI works exclusively on Windows since it implements native Windows Multimedia API.


GameMaker 2022.2.0 and later use x64 Windows Runtime by default.
Newer versions of GameMaker will no longer support x86 architecture.
Giavapps MIDI v2.0.0 includes both x86 and x64  packages, however in the future it will no longer support x86 architecture and older versions of GameMaker.

The Extension is available in the new Local Package format, so you just need to  import the package in your GameMaker Project by clicking from the main menu:  Tools > Import Local Package.


  • Detect and retrieve informations about connected MIDI Input and MIDI Output devices.
  • Receive MIDI Messages from MIDI Input devices.
  • Send custom MIDI Messages to MIDI Output devices.
  • Support for any MIDI Message Type (including System Exclusive, Timing and Active Sensing MIDI Messages).
  • Play external MIDI files.
  • Includes support for MCI (Media Control Interface) commands.
  • Well documented, well structured, faster and with a lot more features than other alternatives!


  • Giavapps MIDI 2 core functionalities have now been ported from Giavapps MIDI (for Unity) version.
  • This version may not include some of the beginner features that the old Giavapps MIDI v1.0.1 has, in favor of a more performing core.
  • Added support for receiving and sending any MIDI Message Type (including System Exclusive, Timing and Active Sensing MIDI Messages).
  • Replaced midi_* functions related to MCI (Media Control Interface), new mci_* functions have been added instead.
  • Removed the rtmidi_ * functions as the extension is intended for the Windows platform and the midi_ * functions now offer much more flexibility and functionality.
  • Removed old and deprecated midi_file_* functions.
  • Added x64 package for GameMaker 2022.2.0 and later.


Before purchasing ensure that you comply with our EULA.


Buy Now$49.99 USD or more

In order to download this extension you must purchase it at or above the minimum price of $49.99 USD. You will get access to the following files:

Giavapps MIDI v2.0.0.zip 86 kB

Download demo

Documentation.zip 8 kB


Log in with itch.io to leave a comment.

Luigi, please provide some code to show how to change the patch on a channel with the original Fiavapps MIDI. Thank you.

Hi Luigi,

Thanks for the clarification about Giavapps MIDI.

I have had success sending note on and note off short messages on several channels, simultaneously.

And I see that it's possible to get the current instrument name with:


Which I assume "gets" the current instrument on the current bank on the current channel. But what I need to do is to "set" the current "channel", then "set" the current "instrument" (patch) then "set" the current instrument "bank". Much like drum instruments are selectable as "kits". Can you provide any code example to accomplish this?

And I guess that Giavapps MIDI works only for stand-alone, PC-Mac-Linus builds and not for WebGL builds because of the use of DLL's? I'm not a professional programmer, but it seems that my WebGL builds now fail after adding Giavapps MIDI and trying to open MIDI output devices and send MIDI data.

Thanks for your help, Luigi.

Avatar Guitar

Hi! It is something you can easily accomplish with Giavapps MIDI simply by learning the MIDI Protocol. Please note that I will not provide support on these types of questions, as your question is not closely related to the product. Also note that Giavapps MIDI 2 for GameMaker only works on Windows. Greetings, Luigi.

I purchased the older version on the Unity Asset Store. Should I get a refund from Unity and get the newer Giavapps MIDI 2 version on Itch.io? Is there a sample scene and a User Guide for either app? Thanks.

Bryan Dempsey

Hi Bryan! Absolutely not! Giavapps MIDI 2 is only for GameMaker Studio 2.3+! It is mainly just a port of the Unity version ... please also note that: I am distributing my plugins for Unity exclusively through the Unity Asset Store and Giavapps MIDI for Unity also supports macOS via the RtMidi implementation, so for now, you already have the best you can get! ;)

Thank you for that answer. But, I'm still waiting for an answer to my other question posted above this one: Can you provide a code example to show how to change the bank and the instrument on a given MIDI channel? Thanks.

Bryan Dempsey