© Earth Vega Connection, 2003 |
|
|
 |
 |
|
|
|
|
DirectMusic is part of Microsoft's DirectX technology which was developped
to ensure faster hardware access to peripheral devices like graphiccards, soundcards, joysticks and also
MIDI devices. DirectMusic replaces the older MIDI functions of the Windows MultiMedia system, generally
called MME which stands for Multi Media Extensions.
Both DirectMusic and MME offer sets of functions to application developers that
they can use to add MIDI handling to their applications. MME has been around since
before Windows 95 came to market. It is still used by the majority of MIDI
applications available today. DirectMusic is of more recent date. It has some
extra features and technological advancements compared to MME. In order to use
these new features MIDI devices need new drivers.
Most manufacturers of MIDI equipment provide DirectMusic capable drivers nowadays so
application developers have the choice between MME or DirectMusic to add MIDI functionality
to their programs. Both technologies are compatible with each other. MME applications can use
DirectMusic MIDI devices and DirectMusic applications can use non-DirectMusic MIDI devices. Non-DirectMusic
MIDI devices will appear as emulated MIDI ports to DirectMusic applications. True DirectMusic
MIDI devices will appear as both a DirectMusic port as well as an emulated DirectMusic
port. The emulated port in this case will be the one that MME applications can use. If you
have the choice you should always choose the non-emulated ports. The emulation mode adds about
5 to 7 milliseconds of latency to the MIDI processing.
Although DirectMusic ports can be used by MME applications and DirectMusic applications can use
non-DirectMusic ports, the benefits of DirectMusic will only be available if you have both a
DirectMusic application as well as a DirectMusic driver.
One of the biggest benefits of DirectMusic drivers is the timestamping of MIDI input. In the Windows
MultiMedia system, time related MIDI input data is handled by the receiving application itself. Applications on
Windows 2000 and XP always run in so-called user mode. Most of the hardware handling on the other hand,
takes place in so-called kernel mode. Kernel mode processing takes priority over processes running in user mode.
In practice this means that if another hardware device needs processing time at the time of delivery of the MIDI input,
the MME application will just have to wait. Depending on the hardware device in question, the wait time
can be considerable.
This results in MIDI input arriving late and, more importantly, variations in the delivery time of MIDI
data from hardware to application. This effect is sometimes called MIDI timing jitter.
DirectMusic solves this problem by timestamping the input data at the moment of arrival to a system wide
reference clock. This timestamping takes place in kernel mode and thus has high priority. The DirectMusic
application still runs in user mode but this time, when it receives it's input data, it already has an accurate
timestamp.
The result of all this is that DirectMusic applications have more accurate MIDI recording capabilities. They
will suffer much less from jitter in timing.
One important question remains to be answered: How many applications use this marvelous new technology?
At this moment the number is small but my expectation is that more applications will see the benefits of
DirectMusic and will incorporate it in the future.
Steinberg's Cubase SX is one of the applications that already made the crossing. A lot of users, me being
one of them, are enthousiastic about this great program.
Beside DirectMusic compliance the new DirectMusic driver has some other new features. The
driver is now multi-client. This means that more than one application can use the
same input or output at the same time. Input data can be distributed to several
applications and output data from various sources will be merged and sent to one
output. Up to eight instances of any single port can be open at the same time.
Multi-client support is embedded in the DirectMusic technology, making it robust and
reliable.
Another new enhancement of the DirectMusic driver is the PortNamer utility. The PortNamer
utility enables you to rename both inputs and outputs individually. You can give them
meaningful names, for instance the name of the device that is connected to that port.
This will increase efficiency and ease of use.
Last but not least comes the new installer application. The installer will save you the
hassle of manually installing the driver. It performs all necessary steps, uninstalling
old drivers and installing the new one. After installation it will automatically configure
the hardware, rebooting if necessary.
It will add shortcut links to the 8 Port SE DirectMusic Driver utilities to the start
menu, allowing easy access to them. If you, at some time, want to uninstall the driver,
an uninstaller will also make that action as simple as clicking a button.
|
|