4. Midi File Player

This section last updated: $Date: 2003/01/31 21:49:21 $

The Midi File Player is a CORBA server written in C. It uses OSS/Free for MIDI output and ORBit 0.5.x as the CORBA implementation.

First, test that your /dev/sequencer2 is working by enter the following commands:

cd /usr/src/doors-0.1.1/midifileplayer/src/doorsx/midifileplayer/server/adamlib
make seq2test
./seq2test

You should now hear a rising scale. Press CTRL-C to stop it.

If it's not working, look for help in the MIDI-HOWTO. I hope to add more help here later.

4.1. ORBit

This an implementation of CORBA in C, which the Midi File Player uses to communicate with the Controller.

Warning

There is a bug in the Java VM, which returns an invalid CORBA header. I believe most versions of ORBit will hang at startup as described in this troubleshooting item. If this happens to you, then you must install a patched version of ORBit 0.5.12 as described below.

Type 'locate orbit | grep bin' to see if you have ORBit already. If so, skip to installing cURL below, but be aware that the Midi File Player will probably hang on startup as described above. If you are successful, please tell me which versions of the Java VM (java -version) and ORBit (orbit-config --version) you have.

Install the patched version of ORBit 0.5.12 by entering the following commands:

cd /usr/src/
tar xfz /your/path/to/ORBit-0.5.12.tar.gz
patch ORBit-0.5.12/src/IIOP/giop-msg-buffer.c /usr/src/doors-0.1.1.tar.gz/ORBit-0.5.12.patch
cd ORBit-0.5.12/
./configure
make install

4.2. cURL

Type 'locate curl | grep bin' to see if you have it already. If so, skip to installing the Midi File Player. Install cURL by entering the following commands:

cd /usr/src/
tar xfj /your/path/to/curl-7.9.1.tar.bz2
cd curl-7.9.1/
./configure
make install

4.3. Midi File Player

Install the Doors Midi File Player by entering the following commands:

cd /usr/src/doors-0.1.1/midifileplayer/src/doorsx/midifileplayer/server
make dist
cd /usr/src/doors-0.1.1/bin

The Midi File Player reads a config file on startup to see which interfaces it's MIDI hardware implements. generalmidi.config is a default config file which everyone can use. Use one of the other config files, if you have one of these devices, or create your own by using eg. awe32.config as a template.

Run the Midi File Player by entering:

./midifileplayer.sh generalmidi.config

You should see the following output:

Using config file generalmidi.config
Searching for Controller...
...found Controller!
Registering devices
Ready...
Type 'quit' to exit

The Controller should output the following:

Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/PercussiveGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)
Controller: registerDevice(hostname/MelodicGeneralMidiFilePlayer)

Where hostname is the name of the machine the MIDI File Player was started on.

If you run into problems, look at the Troubleshooting section.