Monday 10 March 2014

MIDI Utilities

After 5 years or more in the wilderness, I have been inspired to start working with MIDI again. The first project was to complete "It Came Upon a Midnight Clear" by Keith Emerson - as featured on the "Christmas Album". In the near future I will be uploading all my ELP MIDI files for general use. These files used to be available on my MODEMSS site but that disappeared a long time ago.

The second project was to resurrect all my old synths. Happily, they all still work! Thus, I now have access to the Roland Sound Canvas SC-155, the Yamaha XG-50 and the Roland Sound Canvas SC-8850. Even better, using the Roland UA-101 as an 8 port input device, I can listen to them all as required without audio patching.

The final project was to get the software working again. To fully work with MIDI on a PC you need a MIDI loop back cable/driver. Thankfully, since my Windows 95/NT days someone has written a loopback cable that works fine under Windows 7 - 32 bit or 64 bit mode. Here is the link:

http://www.tobias-erichsen.de/software/loopmidi.html

loopMIDI allows the user to create one or more loopback ports on-the-fly. Once created, you can send the output of one program to the input of another. In my case, this is used as follows:

XG/GS MIDI Jukebox -> loopMIDI -> XG/GS MIDI Monitor -> SC-8850

The huge advantage this gives you is that you can watch all MIDI messages in the monitor as they are being sent to the synth. It also traps and sends SYSEX so that you can see if the MID file contains XG or GS SYSEX data.

Getting my VB5 XG/GS Utilities working again has been a challenge. It was relatively easy to recompile the toolbar, SYSEX sender and jukebox using VB6. They now all have "Windows 7" look and feel. However, trying to recompile the monitor has been a waste of time. It appears that the code simply does not work if compiled with VB6. The program will run for about 1-30 seconds and then it crashes. I suspect that VB5 is fixing data structures in memory and not allowing Garbage Collection to move them. As MIDI IN requires callback logic to maintain pointers to these data structures, it is necessary that the memory is not relocated.

One of these days - way in the future - these programs may be converted to VB.NET. However, MIDI coding is substantially different in VB.NET and this would take far too long at the moment. Besides, after installing the VB5 runtime modules in Windows 7 64 bit, the old code works fine! You can still get the VB5 runtime modules from here:

http://support.microsoft.com/kb/180071

I will be uploading a ZIP file of all the modules sometime soon so all can play. This stuff used to be shareware - but what the heck - who needs the money any more ;-)

Addendum:

All the XG/GS Utilities have now been tested on Windows 8 64 bit - even the VB5 MIDI monitor code from 2003! Quite amazing that Microsoft retain such backward compatibility in this throwaway age of computing ...

1 Comments:

At 20 May 2020 at 06:09 , Blogger Fonts Mania said...

Wao, Awesome work, So if you need an online converter then use this;

Simple File Converter

 

Post a Comment

Subscribe to Post Comments [Atom]

<< Home