Qmmp - Qt-based multimedia player
This program is an audio-player, written with the help of the Qt library.
Official home page: https://qmmp.ylsoftware.com/
Development: https://sourceforge.net/projects/qmmp-dev/
Translation: https://www.transifex.com/qmmp-development-team/public/
Supported operating systems:
- GNU/Linux
- FreeBSD
- Microsoft Windows
Supported formats:
- MPEG1 layer 2/3
- Ogg Vorbis
- Ogg Opus
- Native FLAC, Ogg FLAC
- Musepack
- WavePack
- tracker modules (mod, s3m, it, xm, etc)
- ADTS AAC
- CD Audio
- WMA, Monkey's Audio (and other formats provided by FFmpeg library)
- PCM WAVE (and other formats provided by libsndfile library)
- midi
- SID
- chiptune formats (AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ, VTX)
DSP effects:
- BS2B effect
- sample rate converter
- LADSPA effects
- extra stereo
- crossfade
Visual effects:
- projectM visualization
- spectrum analyzer
Output system support:
- OSS4 (FreeBSD)
- ALSA (Linux)
- PulseAudio
- PipeWire
- JACK
- QtMultimedia
- Icecast
- WaveOut (Win32)
- DirectSound (Win32)
- WASAPI (Win32)
Other features:
- XMMS and Winamp 2.x skins support
- alternative user interface based on standard widgets set
- 10-band equalizer
- MP3, Vorbis, AAC, AAC+ streams support
- mms support
- MPRIS
- removable device detection (via UDisks)
- video playback via Mplayer
- lyrics
- cover art support
- CUE sheet support
- embedded CUE support (for FLAC, WavPack and Monkey's Audio)
- multiple playlists
- automatic charset detection for cue files and ShoutCast metadata
- playlist formats: m3u, pls, xspf
- ReplayGain support
- sending listening history to Last.fm, Libre.fm and ListenBrainz
- CDDB support
- audio converter
- stream browser
- audio formats converter
- external programs execution on track change
- ReplayGain scanner
- archive reader (RAR and 7z)
- audio recording
- listening history
- media library
Requirements:
- Qt >= 6.2 (qtbase and qttools for build)
- tar, unzip, bzip2, gzip
- libmad
- libvorbis
- libogg
- libalsa >= 1.0.22
- taglib >= 1.12
- curl >= 7.32
- libmpg123 >= 1.13.0 (optional)
- qtmultimedia >= 6.2 (optional)
- libmms >= 0.4 (optional)
- flac >= 1.1.3 (optional)
- libmpcdec >= 1.3.0 (optional)
- jackit1 >= 0.121.0 or jackit2 >= 1.9.8 (optional)
- libsoxr >= 0.1.0 (optional)
- libxmp >= 4.2.0 (optional)
- libsndfile >= 1.0.22 (optional)
- wavpack >= 4.41 (optional)
- pulseaudio >= 0.9.15 (optional)
- pipewire >= 0.3.26 (optional)
- ffmpeg >= 3.4 (optional)
- libcdio >= 1.0 (optional)
- libcdio-paranoia >= 10.2+0.90 (optional)
- libcddb >= 1.3.1 (optional)
- faad2 >= 2.6.1 (optional)
- game-music-emu >= 0.5.5 (optional)
- opus >= 1.0.2 (optional)
- opusfile >= 0.2 (optional)
- libWildMidi >= 0.2.3.4 (optional)
- libsidplayfp >= 1.0.3 (optional)
- libbs2b >= 3.0.0 (optional)
- libprojectM >= 2.0.0 (optional)
- libenca >= 1.9 (optional)
- libarchive >= 3.2.0 (optional)
- libshout >= 2.4.3 (optional)
- mplayer (optional)
- libx11, libxcb, xorgproto (optional)
- librcd >= 0.1.13 (optional)
- cmake >= 3.18.0 (for build only)
Attention! Qmmp build needs lrelease installed.
Configure:
cmake ./
Build:
make
Installation:
make install
If someone plugin (for example, Jack plugin) doesn't build or doesn't needed you can disable it
by running the following command:
cmake ./ -DUSE_JACK:BOOL=FALSE
Available options:
- USE_CURL, USE_MMS (transports);
- USE_MAD, USE_MPG123, USE_FLAC, USE_VORBIS, USE_MPC, USE_XMP, USE_SNDFILE, USE_WAVPACK, USE_FFMPEG, USE_AAC, USE_CUE,
USE_MPLAYER, USE_CDA, USE_MIDI, USE_GME, USE_OPUS, USE_SID, USE_ARCHIVE (decoders);
- USE_ALSA, USE_OSS, USE_JACK, USE_PULSE, USE_PIPEWIRE, USE_NULL, USE_OSS4, USE_WAVEOUT, UDE_DSOUND, USE_QTMULTIMEDIA,
USE_WASAPI, USE_SHOUT (output plugins);
- USE_SOXR, USE_BS2B, USE_LADSPA, USE_CROSSFADE, USE_STEREO, USE_FILEWRITER, USE_MONOTOSTEREO (effects);
- USE_ANALYZER, USE_PROJECTM (visualization);
- USE_MPRIS, USE_SCROBBLER, USE_LISTENBRAINZ, USE_STATICON, USE_NOTIFIER, USE_LYRICS, USE_HOTKEY, USE_FILEOPS,
USE_COVER, USE_KDENOTIFY, USE_UDISKS, USE_CONVERTER, USE_SB, USE_RGSCAN, USE_TRACKCHANGE, USE_COPYPASTE,
USE_GNOMEHOTKEY, USE_LIBRARY (general plugins);
- USE_QMMP_DIALOG, USE_TWO_PANEL_DIALOG (file dialogs);
- USE_ENCA (automatic charset detection);
- USE_SKINNED (standard skinned UI);
- USE_QSUI (simple UI);
- USE_DIR_ASSOC (inode/directory mime type association);
- USE_LIBRCD (using LibRCD library for charset detection of ID3v1/v2 tags, disabled by default);
- QMMP_DEFAULT_OUTPUT (default output plugin, example: -DQMMP_DEFAULT_OUTPUT=pulse);
- QMMP_DEFAULT_UI (default user interface, example: -DQMMP_DEFAULT_UI=qsui).
Also you can use ccmake for changing plugins configuration.
By default program will be installed in /usr/local. You can change default path by running:
cmake ./ -DCMAKE_INSTALL_PREFIX=custom_path
For more information see GNUInstallDirs module documentation:
https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
OSS3 support.
OSS3 plugin is deprecated and disabled by default.
To enable it, run 'cmake ./ -DUSE_OSS:BOOL=TRUE' before compilation.
UDisks support and FreeBSD.
Under FreeBSD you are able to use UDisks plugin. Also, you should install port sysutils/bsdisks.
Bsdisks is an implementation of UDisks service for FreeBSD.
In some cases, you can use qmake for building and installation.
Configure:
qmake PREFIX=custom_path (default: /usr)
Build:
make
Installation:
make install
Executable:
./bin/qmmp
If someone module doesn't build or doesn't needed you can disable it in qmmp.pri file - just comment corresponding
line( symbol '#') or execute qmake with special parameters:
qmake DISABLED_PLUGINS+=JACK_PLUGIN DISABLED_PLUGINS+=OSS_PLUGIN
Attention! By default all plugins are enabled by default.
Changing shared library install path (for some 64-bit distributions).
By default, all libraries and plugins will be installed to $(INSTALL PREFIX)/lib. You can change "lib"
to "lib64" by running qmake or cmake with the special parameter:
qmake LIB_DIR=/usr/lib64
or
cmake ./ -DCMAKE_INSTALL_LIBDIR=lib64
All patches, bug reports, ideas etc. send to bug tracker https://sourceforge.net/p/qmmp-dev/tickets/ or
forkotov02@ya.ru