DMID(1) DMID(1)
NAME
dmid - MIDI to OPL3 converter using GENMIDI-type instrument
banks
SYNOPSIS
dmid [ -2s ] [ -i bank ] [ file ]
DESCRIPTION
Dmid decodes MIDI instructions either from file or from
standard input, and produces OPL3 instructions suitable for
playback by opl3(1). To program instruments, an OPL2 instru-
ment bank in the same format as GENMIDI lumps from doom must
be provided. Since it is assumed that the bank is contained
in a doom WAD file, its default location is
/mnt/wad/genmidi. This may be overridden with the -i com-
mand line option.
The -s flag enables streaming mode, in which the input is a
pipe(3) streaming MIDI events. It needn't provide any tim-
ing information such as MIDI timing clocks. This is suit-
able for MIDI devices transmitting in real time.
In GENMIDI lumps, two voices are defined per instrument.
For compatibility, the -2 flag disables the second voice,
reducing the number of OPL channels needed. It also dis-
ables OPL3 specific features and produces an IMF-format
stream, which can be used in other game engines.
EXAMPLES
Play a MUS file from a doom WAD file:
% games/wadfs /sys/games/lib/doom/doom1.wad >[2]/dev/null
% games/mus /mnt/wad/d_e1m8 | games/dmid | games/opl3 >/dev/audio
Play a MIDI stream from a USB device (see usb(3)):
% games/wadfs /sys/games/lib/doom/doom1.wad >[2]/dev/null
% games/dmid -s /dev/usb/ep10.1/data | games/opl3 -s >/dev/audio
SOURCE
/sys/src/games/dmid.c
SEE ALSO
games(1), mus(1), opl3(1), audio(3), pipe(3), usb(3),
wadfs(4)
HISTORY
Dmid first appeared in 9front (July, 2018).