💾 Archived View for gemini.ctrl-c.club › ~jara25 › gemlog › 2024-06-30.gmi captured on 2024-08-18 at 19:43:32. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Getting XMPlay to work well in Wine

XMPlay is my favorite program to use for playing music. I have been using it for many years now, and no other music player has come close to matching its feature set. It supports many common formats such as OGG and MP3 files as well as tracker formats such as XM, IT, and MOD files, and it plays files very accurately. XMPlay's functionality can be extended by installing plugins, and its GUI can be customized by installing skins. At a time when so many programs on one's computer want to have the same standardized look, XMPlay's support for skins allows the user to pick the UI that they prefer the most, which is fantastic. It also has many features for power users, such as encoding input files and saving per-file equalizer settings.

XMPlay is a closed-source program that only runs natively on Windows, so it is a bit of a hassle to make it work on Linux. I tried using other media players for a while to play music, including many open-source ones, but I was never fully satisifed with them for various reasons. The most common issue I had is the lackluster support for module files, but there were many smaller issues that made me stop using the programs I tried. Luckily, it turns out that XMPlay works pretty well in Wine.

Sadly, Wine's support for XMPlay is not perfect. The most glaring example is that Wine does not render many skins correctly, including the default one. This often results in UI elements overlapping each other when they should not. Thankfully, this does not affect XMPlay's ability to play music, and the UI bugs caused by Wine can be mitigated somewhat.

This guide assumes that you have never used XMPlay before and that you want to try it out. The Wine version being used for this guide is Wine 9.12, which is the latest development release at the time of this writing. The latest version of XMPlay at the time of this writing is 3.8.5.

Setting up the Wine prefix

To reduce the chance of any major problems occurring, it is best to set up a Wine prefix solely for XMPlay.

Create it, export the WINEPREFIX environment variable, and run the winecfg tool:

$ mkdir /home/jara25/.wine-xmplay
$ export WINEPREFIX=/home/jara25/.wine-xmplay
$ winecfg

Installing wine-mono is not required, so click Cancel when prompted to install it.

Within winecfg, it is recommended to go to the 'Graphics' tab and do the following:

The last item is important because if XMPlay runs alongside everything else, moving the program around will be rather laggy.

Click the OK button afterwards to save the settings and close XMPlay.

Installing XMPlay

Go to the download page for XMPlay and download the ZIP file containing the program:

XMPlay download page

There is no installer, so just extract it to a reasonable location within the Wine prefix. Creating a folder within the 'Program Files (x86)' folder and extracting the program there suffices.

If you have an existing XMPlay installation and would like to bring the settings and library over, copy xmplay.ini and xmplay.library to the folder containing XMPlay before you run it for the first time. It is possible that XMPlay may not be able to find the media in your library if you do this, especialy if you are transferring your settings and library from a system running Windows, so you will have to resolve that later.

Afterwards, just run it from the command line in the same terminal that WINEPREFIX is exported in:

$ cd $WINEPREFIX
$ cd "drive_c/Program Files (x86)/XMPlay"
$ wine xmplay.exe

Changing XMPlay's skin and playing music

If starting up XMPlay for the first time, a window will appear letting you know of a few useful tips, and xmplay.txt will also open in Notepad. You can read xmplay.txt, which is XMPlay's manual, at your own pace later. For now, close both windows and then close the 'Options and stuff' window that appears afterwards.

The default skin consists of a main window with two side panels that can be dragged towards the center to hide them, and there is also another window that has many different purposes. It can show information about the file being played, and it can also show the current playlist and the music library.

At first, the program looks fine, but problems become apparent when dragging a side panel towards the main window to hide instead. Instead of the side panel being drawn below the center part of the main window, it ends up being drawn above it which is not correct. Sadly, this makes the default skin not ideal to use when running XMPlay using Wine. There is a bug report for this in Wine's Bugzilla, but I doubt it will be resolved any time soon since it can easily be worked around by changing the skin that XMPlay is using.

Before changing XMPlay's skin, close XMPlay first.

To change XMPlay's skin, first create a 'skins' folder within the folder that XMPlay was extracted into. Then download a skin from here:

Skins for XMPlay

It is best to pick a skin that does not have side panels or other UI elements that can end up overlapping the main window. If you do pick a skin that has side panels, make sure to keep them expanded at all times.

A reasonable choice is the Opus skin, which is what I use:

Opus skin

Download the skin you want. If it is a ZIP file, extract it to the 'skins' folder that was created earlier.

Open XMPlay and right-click the title bar, then select the name of the newly added skin. Many skins have multiple variants, so feel free to compare them and pick the one you like the most.

Now that a skin has been picked, it is time to play some music. Depending on the skin, there may a button that lets you add files from the playlist. Clicking the play button with an empty playlist will also allow you to pick files to play.

If you can hear audio being output when you play music, then congratulations! Enjoy your music library!

With that said, there are still a few more things that can be done.

Making it easier to launch XMPlay

If you launch XMPlay frequently, it can be a pain to export the WINEPREFIX environment variable and type out the path to XMPlay's executable every time you want to launch it. Creating a simple shell script that launches XMPlay and then creating a shortcut to it within your desktop environment can save quite a bit of time.

An example shell script can look like this:

#!/bin/sh

export WINEPREFIX=/home/jara25/.wine-xmplay
wine "$WINEPREFIX/drive_c/Program Files (x86)/XMPlay/xmplay.exe"

Make it executable and then add a desktop shortcut or launcher item within your desktop environment.

Wrapping things up

XMPlay is very customizable, but the amount of options and context menus present within XMPlay can be overwhelming for beginners.

There is a beginner's guide located here that is worth reading:

XMPlay Support - Beginner's Guide

If you need support for more formats, such as FLAC or MIDI, install some input plugins by downloading them from here:

Input plugins for XMPlay

If you are curious about module files, which is also known as tracker music, The Mod Archive contains the largest collection of music modules:

Mod Archive

XMPlay is one of the best music players for playing those types of files, as it supports many module formats without any additional setup.

In fact, if you ever played Bejeweled 2, you can download its soundtrack as one big module file right here:

Beyond the Network (Bejeweled 2 OST)

That is all for now. I will let you discover more on your own. Enjoy!

More external links

Bug 49713 on Wine's Bugzilla

XMPlay Support Website

Index