PLAYMIDI(1)
β¨ NAME β¨
okay so bestie, welcome to playmidi, xplaymidi and splaymidi π β they're all MIDI file players, and that's the whole personality. This is the General Commands Manual page for them, and I'm gonna walk you through every single flag, no skipping, periodt. π
π¦ SYNOPSIS π¦
[s|x]playmidi [-a8cCdeEfF4gGiImoprRtvVz] [file ...]
yeah it's giving "short and mysterious" but trust, we're about to unpack all of it π
πΈ DESCRIPTION πΈ
So playmidi is a full-featured MIDI file player for Linux systems β or honestly any system rocking the Voxware 3.5 sound driver or newer. It can play your MIDI files back on general MIDI devices, or on FM, or on Gravis Ultrasound. Versatile icon behavior honestly π
If you don't give it <b>any files at all</b>, playmidi will just hand you a summary of all command line options instead. Cute of it.
And here's the tea π« β if you pass it <b>more than one file</b>, that's when you wanna use xplaymidi or splaymidi or the -r mode, because those give you interactive control β¨ and with that you can:
- skip to the previous song
- skip to the next song
- speed up or slow down the MIDI file
- repeat a MIDI file
β¦all while staring at a real-time display of data in the MIDI file. main character energy fr fr π
β οΈ heads up bestie: the Debianplaymidipackage does not includesplaymidi. She's just not there. Don't go looking. π
π OPTIONS π
Command line options are described below, and make sure to precede them with a dash (-), okay? Like, that part matters.
-H--helpβ display the help text, then exit. bye π-vβ verbosity, and it's additive, so stack it up if you want more noise π’-8β forces the use of 8-bit patches with the Gravis Ultrasound to conserve memory. Now, patches get automatically reloaded as 8-bit whenever memory runs out anyway, but if you already know in advance, this saves you a step and speeds up the loading process. thinking ahead is so iconic of you π§ β¨-c#β sets the channel mask (in hexadecimal) of which channels to play from the MIDI file. Super useful if your MIDI file has some channels that just don't sound very good on your hardware. filter that out bestie π-dβ ignore any drum (percussion) tracks in a MIDI file. Great for FM or any other hardware where percussion sounds especially bad. Also great for MIDI files where the percussion is poorly written β no shade, but also all the shade π-eβ send output to external MIDI. This is what you want if you've got any MIDI hardware connected to your system. This option is the <b>default</b> forplaymidias distributed by upstream. πΉ-fβ send output to FM synth using FM patches. You'll need this one to play back on any non-MIDI soundcard, with the one exception of the Gravis Ultrasound. This option is the <b>default</b> forplaymidiin Debian. π-4β send output to FM synth using 4-op OPL/3 patches β (BROKEN!) π¨ Don't use this option, it genuinely doesn't work yet. Not even a little. Do not.-gβ send output to Gravis Ultrasound. If you've got one of those and nothing connected to the MIDI port, this option is for you π-aβ send output to various SoundBlaster cards, including AWE and Live. Same deal β if you've got one without anything connected to the MIDI port, this one's yours π-E#β sets a mask of channels to always output to external MIDI. If you wanna use more than one playback device, this lets you say which channels go to the external MIDI port. For example,00FFwould send channels 1 - 8 to external MIDI. β¨-F#β sets a mask of channels to always output to FM. Used exactly as above.-G#β sets a mask of channels to always output to gus. Used exactly as above.-i#β sets the channel mask (in hexadecimal) of which channels to <b>ignore</b> from the MIDI file. Perfect for MIDI files with a couple channels you simply do not want to listen to π-p[chan,]prog[,chan,prog...]β forces a given program number (1-128) to be used for all output on a given channel. And if you don't specify a channel, the program gets used for <b>all channels</b>. Examples, because these slap:-p33sets all channels to program 33-p5,124sets just channel 5 to program 124-p1,33,2,55,9,22,10,17sets channel 1 to program 33, channel 2 to program 55, channel 9 to program 22, and channel 10 (percussive) to use the Power Drum Set π₯
If you're using a Waveblaster, you'll want -p10,129 to set channel 10 to playback percussion. And you should <b>quote arguments to -p</b> if you wanna include whitespace between them! π
-Iβ shows a list of general MIDI programs and numbers. This exists purely to make the option above easier to use. a helpful queen π-t#β skews tempo by a factor (a float). Great for files you think the author wrote too slow or too fast. Also great if you wanna blast through lots of files at high speeds, or play a file at slow speeds so you can learn to play a song on some instrument (like piano) πΉπ¦-rβ real time ansi (25-line) playback graphics, tracking all notes on each channel plus the current playback clock. This flag is <b>assumed</b> when you're usingxplaymidiorsplaymidi. β¨-P#β remaps <b>all</b> percussion channels to play on the given channel. Useful if you've got a file with percussion on multiple MIDI channels but your MIDI hardware only supports percussion on one channel. For example,-P10would send all percussion channels to channel 10. π-R#β sets the initial reverb level. Valid range is <b>0 - 127</b>. For FM, the setting is either "on" (nonzero) or "off" (zero). π-C#β sets the initial chorus level. Valid range is <b>0 - 127</b>. πΈ-Vchn,vel[,chn,vel...]β sets velocity for all notes in a channel. All velocity information for the given channel gets replaced by the given velocity. And the author says, quote, "One day I'll change this option to allow all channels to be modified as with the-poption." π-x#β excludes the given channel number from the mask of channels to load from the MIDI file. π«-zβ zero channel data in output stream β for special applications. mysterious. iconic. iykyk πΆοΈ
π AUTHOR π
Nathan Laredo (laredo@gnu.ai.mit.edu) π
π HISTORY π
playmidi was originally designed out of impatience with other MIDI players β honestly? relatable, that's the origin story of so many great things π
Startup time is negligible on all devices except the Gravis Ultrasound, which has to wait for patches to load. And the meaning of the various real-time displays is, as of right now, yet to be documented. π
Also: <b>Playmidi 2.x is nearly a total re-write</b> compared with the original <b>1.1</b> release. glow up fr fr β¨
π BUGS π
okay bestie, sit down, we're doing the honest part:
splaymididoesn't properly restore terminal mode on exit π so you may wanna tack;stty saneonto the end of anysplaymidicommand. save yourself.- GUS playback quality will improve as the kernel driver improves. it's not her fault π«Ά
- A lot of new features of
playmidiare, as of yet, undocumented. - <b>4-op FM playback doesn't work.</b> π¨
- Some incomplete or corrupted MIDI files may cause unpredictable results or seg faults. π
- No other known bugs.
- If you want new features, or you find undocumented ones (bugs), please email
laredo@gnu.ai.mit.edu. π§
and that's the whole page, bestie π this one's from Linux 1.3.60+, modified way back on 24 November 2002 β vintage, honestly, and still serving β¨ love that for her π
π¦ where this page comes from
- debian bookworm: playmidi 2.4debian-13
- debian trixie: playmidi 2.4debian-17 Β· GPL-2.0-or-later
- ubuntu jammy: playmidi 2.4debian-12
- ubuntu noble: playmidi 2.4debian-14
- ubuntu questing: playmidi 2.4debian-17
- ubuntu resolute: playmidi 2.4debian-17build1 Β· GPL-2.0-or-later
- ubuntu stonking: playmidi 2.4debian-18 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms