If the global variable represents an inherently “global” resource (e.g. a hardware serial port or a MIDI interface), then keeping it as a global variable is usually not an issue (and may even be preferred).
Grouping such variables into a class or struct just to reduce the number of global variables is generally not very useful.
That being said, if you have good reasons for encapsulating the variable, you can of course do so. The MIDI_CREATE_INSTANCE macro is a simple convenience wrapper, and you don't have to use it. It is probably easier to look at its definition and use that directly in your class (IIRC, it simply defines two variables).