NAME
pmidi - A midi file player for ALSA.
SYNOPSIS
pmidi [ -pclient:port ] [ -l ] [ -ddelay ] file...
DESCRIPTION
The pmidi command reads in the specified midi files and plays them
through the ALSA sequencer. You can specify on the command line which
sequencer port that you wish to use. Use the -l option to get a list
of possible sequencer ports for your machine.
OPTIONS
-pclient:port
Specify the ALSA port to send the midi file to.
-l List the possible output ports that could be used.
-ddelay
Delay after song ends. This is used to prevent the last note of
a song being chopped off early. The default is two seconds.
Port numbers
You can specify client:port numbers in the ALSA_OUTPUT_PORTS
environment variable. You can also supply a comma (or space if quoted
correctly) separated list of client:port numbers. This will allow you
to play midi files that use more than 16 channels.
Examples
pmidi song.mid song2.mid
pmidi -p "64:0, 64:1" song.mid
TROUBLE SHOOTING
Before you start you need to have ALSA installed and configured
correctly. This man page cannot cover all general ALSA topics, but
here are a few things to check when things do not seem to be working.
Checking ALSA
1. First check that the correct sequencer modules are loaded for your
sound card:
- For a card with an external Midi connection, you need to load
snd-seq-midi.
- For the OPL2/3 internal synthesiser you need to load snd-synth-
opl3.
- For the AWE32/64 internal synthesiser you need to load snd-
synth-emu8000.
- For the SB Live! internal synthesiser you need to load snd-
synth-emu10k1.
- (Let me know of any more)
2a If you have an AWE32/64 or SB Live! you will need to load the
sounds with sfxload in the same way as for the standard kernel
drivers.
2b If you have the OPL3 FM synthesiser you will have to load the FM
instruments with sbiload. See note below.
3. Make sure that the synth in the mixer is turned up and unmuted if
appropriate.
Before use
Because you may have more than one sound card and each sound card may
have several MIDI connections, you have to tell pmidi which one to use.
First find out what the possibilities are for your system:
If you run:
pmidi -l
it will give you a list of the possible devices that it can play to. On
my system I get:
Port Client name Port name
64:0 Rawmidi 0 - EMU10K1 MPU-401 (U EMU10K1 MPU - 401 (UART)
65:0 Emu10k1 WaveTable Emu10k1 Port 0
65:1 Emu10k1 WaveTable Emu10k1 Port 1
65:2 Emu10k1 WaveTable Emu10k1 Port 2
65:3 Emu10k1 WaveTable Emu10k1 Port 3
128:0 FLUID Synth (28152) Synth input port (28152)
129:0 Client-129 TiMidity port 0
129:1 Client-129 TiMidity port 1
Any of the port numbers in the first column can be used with pmidi. In
the example above the first one is the external Midi port, the next
four are the internal wave table synthesiser. Then there are two
software synthesisers running, FluidSynth (http://www.fluidsynth.org)
and Timididy.
If you don’t see anything listed then check that the correct ALSA
modules are loaded as in the section "Checking ALSA".
ENVIRONMENT
ALSA_OUTPUT_PORTS Port to use in playing midi file.
SEE ALSO
playmidi(1)
AUTHOR
Steve Ratcliffe <steve@parabola.demon.co.uk>
Dec 20 2003