How to use your own MIDI player
The rear MPU-401 port of the Izarra3000 is 0x330. DOS software finds it as
P330. IzarraVM does not interpret the data that the guest writes there. It
sends the byte stream to the receiver that you select. One of the receivers is
a MIDI output port of the host operating system. Thus any host program with a
MIDI input port can play the music of the game. Examples are a software
synthesizer, a sequencer, a player, and a hardware module on a USB interface.
One problem remains, and it is a property of the host, not of the emulator. On Windows, the MIDI input ports and the MIDI output ports of an application are separate system endpoints. IzarraVM opens an output, and a player opens an input. Windows does not connect the two. A virtual MIDI cable makes that connection. This procedure uses loopMIDI (Tobias Erichsen), which is free for personal use.
Procedure
- Install loopMIDI on the host, and start it.
- Make one port in loopMIDI. Type a name, and then add the port. Any name is
permitted. A special name, for example
IzarraVM, is easier to find in a list. The port exists while loopMIDI operates, and loopMIDI makes its saved ports again at each start. - Make the port before you open the config modal of IzarraVM. The modal reads the MIDI destinations of the host when it opens. It does not read them again while it is open. If the port exists but the list does not show it, close the modal and open it again.
- In IzarraVM, open the config modal from the control panel. Find P330 MIDI
receiver in the Audio section. Select the loopMIDI port by its name. A
host destination has its name and then a number, for example
IzarraVM #1. The number separates two interfaces with the same name. - Press Accept. The status line below the selector shows
Readywhen the port opens. - In the MIDI player, select the same loopMIDI port as its MIDI input. The player must listen before the guest starts a song. Most players open the input when their window opens, and not at the start of the playback.
- Start the game. In its setup program, select General MIDI,
MPU-401, or MIDI at port
330. The music then goes from the guest, through the loopMIDI port, to the host application. The host application plays it through its own audio device.
The selection is a host preference, and IzarraVM writes it to
izarravm.conf. Thus it stays after a restart. The named destination is a
fixed choice, and IzarraVM does not replace it.
The port can be absent at power-on. The usual cause is that loopMIDI did not start. The status line then reports that the selected host MIDI destination is not available, and P330 stays silent. Press Accept again after the port exists.
Notes
- The audio of the host. The player makes this music. Thus the volume control of the machine and the ReSonique II mixer registers do not change it. Set its level in the player or in the host mixer. The digital audio and the FM continue to come from the emulated card, and the card continues to mix them.
- Effects and music together. IzarraVM sends only the
0x330stream to the host. A game keeps both paths: the sound effects through the Sound Blaster, and the music through the MPU-401. - A real cable operates, but it is not necessary. If the host has a MIDI interface, a DIN cable from its MIDI OUT to its MIDI IN connects the two endpoints, and the remainder of this procedure is the same. A real cable has no advantage over the virtual cable, because the music goes out and comes back on a 31.25 kbaud serial wire. Use a real cable when the receiver is external.
- There are two other receivers. The P330 selector also has Off and
Munt (MT-32). The emulator plays Munt, and the host does not. See
MT-32 ROMs with the P330 receiver. The internal wavetable
daughterboard at
P300is a separate path, and this procedure does not change it.
Next
- The Roland Sound Canvas VSTi: this route with one specified instrument at its end.
- Nuked-SC55 for Sound Canvas playback: the same instrument, from its own ROMs.
- IzarraVM GUI guide: each field in the Audio section, and the status messages.
- ReSonique II sound card manual: the two MPU-401 ports, as the guest finds them.