

     The WireProvider 0.3


A Plugin for the Java 2 Platform enabling native MIDI-Operation.
Written for Microsoft Windows. Based on Wire.

1. Installation & Running
This is straightforward. Just add WireProvider.jar to the classpath.
It is recommended to copy it to the JRE\lib\ext directory, because that's
the path for all extension JAR's. So you don't need to add the jar explicit
to the classpath. The JRE will do this job for you.
Now you have to copy the WireNative.dll somwhere, where Windows loads DLL's from.
One place is the windows\system32 directory, another good place is the
jre\bin directory (where java.exe lives...).

Caution: The JDK-Installer installs the JRE twice on the computer !
- under jdk1.3\jre and under "Program Files\JavaSoft\JRE\1.3". The second
location is the right path in most cases for the standard invocation of
"java xxx" at the command line.

2. Operation
After that, all installed MIDI-Devices should show up in the List returned by
MidiSystem.GetDeviceInfo(). You can verify it for example with the small
progamm GetDevices.java. It lists all installed devices.
A further example is the ProviderThru program, available from the same source
as this package.

The JRE also offers some devices. But they are nonfunctional. For clearness the
devices offered by the Wireprovider bear all a additional "Wire:" in front
of the name now. THAT CAN CHANGE IN THE FUTURE!

If you want to be sure in your program, that you get the right devices, check the classname
of the mididevice, if it contains "WireProvider" 
...or that it doesn't contain "com.sun.media.sound".

3. Sources
Sources are avaliable from www.geocities.com/ggehnen.

4. Legal
The code is provided under the well known LGPL. See the seperate LGPL for details.

5. Acknowledgements

Thanks go to the following:
1. Niels Gorisse (Niels@bonneville.nl) for the Wire-package, from which I took almost everything
   in the WireNative.dll. (http://www.bonneville.nl/software/Wire/)
2. Matthias Pfisterer (Matthias.Pfisterer@gmx.de) for the tritonus-package (http://tritonus.sourceforge.net/)
   It gave me some tips to get the provider-mechanism working. (If you know, what to do, it is
   really simple, if not.....)
3. Brian Klock (brian@overwhelmed.org) for his contribution for fragmented sysex-messages.
   Try his JSynthLib, the universal synthesizer patch libarian/editor written in Java - using WireProvider....
   (http://www.overwhelmed.org/jsynthlib/)
4. Sun for the JavaSound of course (http://java.sun.com).
   Be sure to read the good JavaSound Programmers Guide availabe on the site!!!!

Gerrit Gehnen

Gerrit.Gehnen@gmx.de

