GS - XG - GM MIDI Software
and Visual Basic Code

This is a collection of MIDI utilities I use as well as some examples of MIDI code that you can use with Visual Basic 3.0 or above. I have even included a spreadsheet that accesses MIDI functions as well. EXCEL 5.0 or 95/97 required.

The utilities work fine under Windows for Workgroups 3.11 and Windows 95. They will probably work fine under Windows NT as well.

Be careful with the VB code. Save what you are doing before you try it. VB was NOT designed to handle MIDI and interrupts particularly well from what I have seen. Some of this code GPFs rarely when you use it incorrectly. You have been warned. I have tried all of this stuff under VB 3.0. Some of it has been compiled with VB 4.0 (16 bit). The last two examples were compiled with VB 5.0.

All code downloaded and used at your own risk. It all works fine on my machines. If it doesn't work on your's, that is your problem not mine <g>


FREE Visual Basic MIDI Code

Mabry MIDI Controls (550K) - MIDI FILE and MIDI IO Controls

Thanks to the extraordinary generosity of James Shields and Zane Thomas, the Mabry MIDI Pack source code has now been put into the public domain! Specifically, you can find the complete source code for the VBX, OCX16 and OCX32 versions of:

MIDIFILE
and
MIDIIO

In addition, you will find the compiled versions of the 32 bit OCXs (MIDIFL32.OCX and MIDIIO32.OCX) which I have supplied with some extra bug fixes already integrated. MIDIFILE allows you to read and write Standard Midi Files (SMF) from Visual Basic. MIDIIO lets you perform MIDI IN as well as MIDI OUT from VB. These are the controls I use in my software. They work well :-)

Until further notice, I will endeavour to support the 32 bit versions of these OCXs. Email me if you have any problems with the code.

Mabry MIDI Examples (55K) - VB5/6 sample code

I have also created some more sample code that you can copy for use with the Mabry OCXs described above. Some of the Mabry examples cannot be used ASIS because they rely on licensed Mabry controls. This code will work with native VB5/6.


VBSYXSEN (34K) - VB GS RESET

VBSYXSEN is a little utility that allows you to send a GS RESET to a Roland Sound Canvas eg SCC1, SC-55, SC-88 etc. I bundle it with VBSYX. Here it is on its own with the source code. Uses a DLL. If this helps you to understand how to "talk MIDI" from VB, I'm glad! See later for a version that supports Yamaha XG as well.

VBMIDI1 (37K) - VB Send Sysex Message et al

This code sends SYSEX messages also. However, this also includes code to issue MCI commands to play/stop MID files and to send a test tone to a synth. More importantly, this code works with VB 3.0 without using a DLL!

VBMIDI2 (30K) - VB Send Sysex Message et al

Similar to the code above BUT for VB 4.0. For some reason, this code doesn't work under VB 3.0 - who knows why?

VBMIDI3 (320K) - VB Play Notes and Bend

VB code to choose an output port, play tones and bend notes. Trivial program but fun. VB 3.0. No DLL required. Includes Complete Help for the Microsoft MCI Interface. Invaluable!

VBMIDI4 (62K) - VB GS MIDI Jukebox

VB code which creates a MIDI jukebox using the MS MCI interface (see VBMIDI3 above for the HELP File). No DLL required. A working example of how to play, rewind, seek, pause etc MID files. NOTE: MIDI MAPPER not required! This code allows you to address the required output MIDI port directly! See GS/XG MIDI Jukebox for a version with tons of extra features.

VBMIDI5 (5K) - VB Send Sysex Message et al

Same as VBMIDI2 above BUT for VB 5.0.

VBMIDI6 (9K) - VB Play Notes and Bend

Same as VBMIDI3 above BUT for VB 5.0. See VBMIDI3 for the MCI Help File etc.


FREE EXCEL MIDI Code

EXCEL (37K) - MS Excel 5.0 Spreadsheet

16 bit Excel code to choose an output port, play tones, send sysex, play MID files. Astonishing!

MidiWork97 (63K) - MS Excel 95/97 Spreadsheet

Finally! The EXCEL code above ported to 32 bit ie Office 95 and above. Many thanks to Erich Neuwirth. Amazing!


SYSEX Editors and FREE MIDI Tools

GS and XG CWP 6.0 StudioWare (9K)

This Freeware code is a set of StudioWare panels for Cakewalk Pro 6.0 or above. It allows you to control the sounds of your Roland GS or Yamaha XG modules from within Cakewalk. Highly recommended!

WSC55V1 (32K) - GS Reset and Plasma Display Editor

Does a GS Reset via MS Midi Mapper. Also, provides an easy way to program the SC Plasma Display.


Back to my home page