The xmiditest project contains several tools for testing MIDI drivers and devices in the Mac OS X (Darwin) MIDIServer environment. It may also function as sample code for accessing MIDI services on Mac OS X.

The goal in providing this code is to provide a standard set of testing tools for use by developers, reviewers and users.  

Initially, there are two tools for testing MIDI drivers on Mac OS X (and presumably Darwin) systems.
miditester   

Does simple loopback testing for a given number of seconds.  This is useful for go/no-go testing and debugging drivers.

miditiming   

Creates a randomly generated stress test what will look at least a little bit like dense musical MIDI traffic.  It then executes the test and analyzes the loopback timing.  Transmit timing is done using the time stamps on the MIDI messages so the driver being tested controls transmit times.  Timing is analyzed using the time stamps the driver puts on the received messages.  The time between the message timestamp and the actual receipt of the message is also analyzed.
There is currently no test for the amount of time it takes an application/driver combination to echo back a received message (there is no provision in the OS X MIDIServices to have the driver echo messages directly -- probably an oversight that needs to be fixed).

I won't limit the scope of the project to Mac OS X.  If other developers pick up the tests for use in other environments.  I won't have the resources to test any such versions myself, but I will approve of the CVS submissions.  

The initial tools I have produced are command line tools written in C++. The initial coding is finished and will be on line as soon as I finish learning about enough CVS to test it up on the site.  

The following resources are available from this project.

Group page on SourceForge .

Mailing Lists:
announce will carry project announcements and should be very low traffic.

users is for discussions about using the tools and analyzing the results.

development is for developers to discuss technical issues.

SourceForge Logo