Quick start

Beginner's Guide

Illustrated Manual



Skins (146)

Visuals (115)

Input Plug-ins (35)

Output Plug-ins (5)

General Plug-ins (11)

Archive Reader (16)

Input Plug-ins (40)

DSP Plug-ins (10)

Tag Editing Plug-ins (6)

External Encoders (3)

External Add-ons (16)

XMPlay Archive (69)

Extra Tools
8.02 - Icecast streaming
by Dotpitch, 2011-08-09 18:00:00

XMPlay can tune in to internet radio streams, so you can listen to music mixed on the other side of the world. With some additional software, XMPlay can also stream your music to your own listeners, so you have your own internet radio station. In that case, XMPlay generates a compressed audio stream, sends it to a server, and then the server sends it off to your listeners.

Schematic overview of the streaming process

All the audio stuff is handled by XMPlay, and all things considering streaming it to your listeners is handled by the server, Icecast in the case of this article. The server does not need to be running on the same machine (it could also be on another machine you have, or on a machine on the other side of the world), and the server can serve multiple different streams. You should set up the server first, and then have XMPlay connect to it via a plugin.

Note that broadcasting music to the public will require appropriate licenses, since most music is covered by copyright. Respect the artists who make the music you like!

Next page: Icecast server

8.02.1 - Icecast server
by Dotpitch, 2011-08-09 18:00:00

Icecast is an open-source media server platform. Get the Icecast server from Icecast.org, the official site from Xiph. Download and install the Win32 version of the Icecast server. You do not have to install it as a Windows service, but you can choose to. Start the server executable (Icecast2win.exe or Icecast2 Win32 in your Start menu), and you'll be presented with the main server interface.

Icecast2 Win32 Main Window

As you can see, the server is currently stopped. Open the Configuration menu and click Edit configuration. This will launch Notepad to edit the Icecast server configuration file, icecast.xml. You can keep most of the settings the same (perhaps increase the maximum number of allowed source streams from 2 to 8 if you plan on running multiple streams), but you really should change the passwords. Note that if you're running on a limited account, Notepad may not have sufficient privileges to save the configuration file directly to the Program Files directory, so you'll have to move the new file manually (save it somewhere else and copy it back to the appropriate folder with Explorer). Hit the Start server button, and the Hide to Systray to move the window out of the way. If you get a server startup error, this probably means the port you've chosen to run the server from is already in use, so you should change that in the server configuration file.

Icecast2 Win32 Main Window with server running

Note that Icecast will have to be able to accept incoming connections, so you should configure your firewall as such. If you're planning to stream to listeners via the Internet, you may also have to forward the port you've chosen from your router to your server.

Icecast can obviously do a whole lot more, like stream relaying, listener authentication and serving HTML from the built-in webserver. Xiph has put the whole documentation for the Icecast server online at Icecast.org.

Next page: Edcast DSP

8.02.2 - Edcast DSP
by Dotpitch, 2014-02-16 17:21:00
Now that the server is properly set up, XMPlay will have to pass compressed audio to the server. Edcast is an open-source Winamp DSP plugin from oddsock. Get the Winamp installer from the Support Site or from Edcast reborn. Since this is a Winamp installer, you'll have to trick it into believing you have Winamp installed; create a new textfile next to xmplay.exe and name it winamp.exe.

Trick the installer by creating a file named winamp.exe, really any file will do

Now point the installer to your XMPlay directory and let it extract its files, including the Ogg Vorbis encoder. It'll place a bunch of encoder files next to XMPlay's executable (bass.dll, libFLAC.dll, libOggFLAC.dll, ogg.dll, pthreadVSE.dll and vorbis.dll) and the plugin into your plugins directory (dsp_edcast.dll). Perfect! You'll probably be wanting to stream in the MP3 format as well, so download LAME (from the Support Site or from Rarewares) and put lame_enc.dll next to xmplay.exe. If you'd like to stream in AAC, get the FAAC encoder (for example from Rarewares) and place libfaac.dll next to the other files.

Start XMPlay, open Options and stuff and go to the Plugins page. From the dropdown box, select Winamp DSP wrapper and click the Add button. Select the wrapper in the list and click Config. Tick Enabled and select Edcast DSP v3. This will instantly open the configuration window of Edcast itself.

Adding the Edcast DSP via the Winamp DSP wrapper to the DSP chain

In the Edcast window, click Add Encoder to add a new encoder with default settings. Double-click the encoder in the list to edit its settings. Configure it to connect to the Icecast server you've set up before. In this example, the server runs on the same machine (Server IP is localhost) on Port 8400, and the Encoder password is xmplay. Check your icecast.xml if you've forgotten the values you've used. Be sure to set the Mountpoint to the correct format, stream.ogg in this case.

Edcast encoder configuration settings

Click YP settings, untick Public and change the server name (which is what'll be displayed in the playlist of your listeners). Then hit OK to close the encoder configuration window. Now select the encoder in the list and click Connect to have the plugin connect to your Icecast server, it'll display Connected behind the encoder. Start playing a file in XMPlay to have Edcast start the stream.

XMPlay with Edcast streaming to Icecast

As you can see, Edcast is encoding the audio into a Ogg Vorbis audio stream. The title gets updated with the title provided by XMPlay, and the encoded audio is sent off to the Icecast server. You can now connect another player to your stream to listen to it. Direct your browser to http://serverip:port/status.xsl (http://localhost:8400/status.xsl in this case) and click M3U at the top right, or just point your player directly to http://serverip:port/mountpoint (http://localhost:8400/stream.ogg in this case).

The variant with an MP3 stream is very similar. Just change the Encoder type from Ogg Vorbis to MP3 LAME and set the Mountpoint to stream.mp3. Now even Windows Media Player is able to tune in!