Beginner's Guide

Illustrated Manual

Quick start

Third-Party Applications

Tips, Tricks & Secrets



Skins (139)

Visuals (114)

Native Input Plug-ins (33)

Winamp Input Plug-ins (39)

DSP Plug-ins (10)

Output Plug-ins (6)

Archive Reader (15)

Tag Editing Plugins (6)

External Encoders (6)

Other Add-ons (22)

XMPlay Archive (69)

Extra Tools
6.04 - DDE interaction
by Dotpitch, 2012-03-30 17:00:00

Controlling XMPlay

You can have XMPlay execute lots of function by sending a key-command to it via DDE. Using an info-command, you can request information of the file currently being played. See the DDE command list for a full list of available commands, and the DDE code example page for some examples.

Opening and adding files

Files, folders and URLs can be passed to XMPlay via DDE. To do so, set the Application to XMPlay, the Topic to System and send the message [open("filename")] (to open a file) or [list("filename")] (to add a file to the playlist). Note that the message includes the brackets and parenthesis. Multiple files should be sent in multiple messages. XMPlay will treat files coming in quickly after each other as a single batch, so it can auto-sort them.

These DDE commands are used in Explorer for the associated filetypes on Windows XP and older.

Next page: DDE command list

6.04.1 - DDE command list
by Dotpitch, 2012-03-30 17:00:00

The contents of the Info Window can be fetched via DDE by sending an info# message to XMPlay, where you replace # with the number from the list below.

infoResult tab

Note that the returned text is in UTF-8 on Windows NT, XP and newer.

Below is a list of DDE control commands. The commands are executed by sending a key### message to XMPlay, where you replace the ###s with the number found in the list (without leading zeros).

1Toggle mini mode
3Minimize to tray
4Reload skin
5Options and stuff
6Open files/URL
7Toggle on-top
8Toggle time display
9Toggle looping
11Close with position saved
12Open directory
13Open from clipboard
14Toggle info bubbles
15Close at end of track/list
512Volume up
513Volume down
514DSP - Amplification up
515DSP - Amplification down
516DSP - Equalizer on/off
517DSP - Reverb on/off
518DSP - Options
519DSP - Balance left
520DSP - Balance right
521DSP - Amplification reset
522DSP - Auto amplification
523DSP - Volume mute
256Info - Open/close window
257Info - General
258Info - Message
259Info - Samples
260Info - Visuals
261Info - Extended list
262Info - Scroll up
263Info - Scroll down
264Info - Copy to clipboard
265Info - Fullscreen visuals
266Info - Text size decrease
267Info - Text size increase
288MOD pattern - Scroll mode
289MOD pattern - Prev channel
290MOD pattern - Next channel
291MOD pattern - Mute channel
292MOD pattern - Unmute all
293MOD pattern - Invert all
296Toggle MOD playback mode
297MOD - Interpolation
298MOD - Ramping
299MOD - Surround sound
80Current track - Play/pause
81Current track - Stop
82Current track - Forward
83Current track - Back
84Current track - Restart
85Current track - Prev subsong
86Current track - Next subsong
87Current track - Plugin info
88Current track - Tray title bubble
89Current track - Plugin info
90Current track - Stop at end
112Current track - Rating - none
113Current track - Rating - 1
114Current track - Rating - 2
115Current track - Rating - 3
116Current track - Rating - 4
117Current track - Rating - 5
118Current track - Rating - down
119Current track - Rating - up
120Current track - Rating - show
128Change track - Next
129Change track - Previous
130Change track - Random
320List sort - Shuffle
321List sort - Title
322List sort - Filename
323List sort - Extension
324List sort - Reverse
325List sort - Selected to top
326List sort - Tag - Title
327List sort - Tag - Artist
328List sort - Tag - Album
329List sort - Tag - Year
330List sort - Tag - Track
331List sort - Tag - Genre
332List sort - Tag - Comment
333List sort - Rating
336List nav - Up
337List nav - Down
338List nav - Page up
339List nav - Page down
340List nav - Jump to current
341List nav - Select all
342List nav - Invert selection
343List nav - Select dead
344List nav - Select extend up
345List nav - Select extend down
346List nav - Top
347List nav - Bottom
352List nav - Find
353List nav - Find next
354List nav - Find previous
355List nav - Find all
356List nav - Find quick
416List nav - Select same title
417List nav - Select same artist
418List nav - Select same album
419List nav - Select same year
420List nav - Select same track
421List nav - Select same genre
422List nav - Select same comment
423List nav - Select same type
424List nav - Select same path
368List - Add files/URL
369List - Add directory
370List - Remove
371List - Remove & delete file
372List - Play
373List - Toggle skipping
374List - Toggle queuing
375List - Clear queue
376List - Plugin info
377List - Filenames in ext. list
378List - Save
379List - Show queue in list
380List - Auto advance
381List - Add from clipboard
400List - Undo
382List track - Dequeue
384List track - Add to/from library
385List track - Plugin info
120List track - Rating - none
121List track - Rating - 1
122List track - Rating - 2
123List track - Rating - 3
124List track - Rating - 4
125List track - Rating - 5
126List track - Rating - down
127List track - Rating - up
96Plugin & Skins
97Plugins - DSP / general
313Toggle random play order
592Saved settings - Options
593Saved settings - Load current
608Info - Library
624Device options
640Bookmark - Set
641Bookmark - Resume
642Bookmark - Resume after queue

Next page: DDE code example

6.04.2 - DDE code example
by Dotpitch, 2012-03-30 17:00:00

XMPlay Controller

XMPlay Controller is a standalone application which uses DDE to send commands to XMPlay. See the included manual for more information.


DDE_run is a command line application which can send DDE messages to any other program. The code to send the Play/Pause command is DDE_run -s XMPlay -t System -c key80, where -s flags the target application name, -t the link topic and -c the command. You can replace key80 with any of the keys from the DDE command list, or with a file opening command.

Visual Basic 6

Create a new VB project, and dump two text boxes and a pair of command buttons on the form. Do whatever you like to them, but you'll want to make Text2 reasonably large with MultiLine enabled. Add the following code to the form (changing the names if you changed them):

Private Sub Command1_Click()
' Use this one to retrieve data, e.g. infox topics

Text2.LinkTopic = "XMPlay|" & Text1.Text ' Init link topic
Text2.LinkMode = 2 ' Open connection
Text2.LinkRequest ' Grab data
Text2.LinkMode = 0 ' Close connecton
'''' EDIT: remove next line if you get a blank line between every line ''''
Text2 = Replace(Text2, vbLf, vbCrLf) ' Reformat string as textbox needs CRLF
End Sub

Private Sub Command2_Click()
' Use this one to execute a function, e.g. keyxxx topics or playlist manipulation

Text2.LinkTopic = "XMPlay|XMPlay" ' Init link topic. The second part (after the '|') doesn't appear to matter but must not be empty.
Text2.LinkMode = 2 ' Open connection
Text2.LinkExecute Text1.Text ' Execute function
Text2.LinkMode = 0 ' Close connection
End Sub

This code example is made by BoggyB (a long time ago).

Next page: Library file format