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
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 Thomas Radeke, 2023-05-17 12:42: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 # with the number found in the list.

641Bookmark - Resume
642Bookmark - Resume after queue
640Bookmark - Set
128Change track - Next
129Change track - Previous
130Change track - Random
131Change track - Random from library
16Close and restart
15Close at end of track/list
11Close with position saved
525Crossfade on/off
83Current track - Back
91Current track - Download / Extract
82Current track - Forward
92Current track - Go to time
9Current track - Looping
86Current track - Next subsong
80Current track - Play / Pause
89Current track - Plugin info
85Current track - Prev subsong
113Current track - Rating - 1
114Current track - Rating - 2
115Current track - Rating - 3
116Current track - Rating - 4
117Current track - Rating - 5
118Current track - Rating - down
112Current track - Rating - none
120Current track - Rating - show
119Current track - Rating - up
84Current track - Restart
81Current track - Stop
90Current track - Stop at end
87Current track - Track info
88Current track - Tray title bubble
515DSP - Amplification down
521DSP - Amplification reset
514DSP - Amplification up
522DSP - Auto amplification
519DSP - Balance left
520DSP - Balance right
526DSP - Bypass
516DSP - Equalizer on/off
518DSP - Options
524DSP - Replaygain
517DSP - Reverb on/off
513DSP - Volume down
523DSP - Volume mute
512DSP - Volume up
264Info - Copy to clipboard
261Info - Extended list
265Info - Fullscreen visuals
257Info - General
608Info - Library
258Info - Message
256Info - Open/close window
259Info - Samples
263Info - Scroll down
262Info - Scroll up
266Info - Text size decrease
267Info - Text size increase
260Info - Visuals
368List - Add files/URL
369List - Add folder
381List - Add from clipboard
380List - Auto advance
375List - Clear queue
402List - Looping
313List - Random play order
383List - Remove after playing
386List - Replace from library
378List - Save
377List - Show filenames in ext.list
379List - Show queue in list
400List - Undo
347List nav - Bottom
337List nav - Down
352List nav - Find
355List nav - Find all
353List nav - Find next
354List nav - Find previous
356List nav - Find quick
342List nav - Invert selection
340List nav - Jump to current
339List nav - Page down
338List nav - Page up
341List nav - Select all
343List nav - Select dead
345List nav - Select extend down
349List nav - Select extend page down
348List nav - Select extend page up
344List nav - Select extend up
418List nav - Select same album
417List nav - Select same artist
422List nav - Select same comment
421List nav - Select same genre
424List nav - Select same path
416List nav - Select same title
420List nav - Select same track
423List nav - Select same type
419List nav - Select same year
346List nav - Top
336List nav - Up
334List sort - Filename
322List sort - Filename - Full path
323List sort - Filetype
333List sort - Rating
324List sort - Reverse
325List sort - Selected to top
320List sort - Shuffle
328List sort - Tag - Album
327List sort - Tag - Artist
332List sort - Tag - Comment
331List sort - Tag - Genre
326List sort - Tag - Title
330List sort - Tag - Track
329List sort - Tag - Year
321List sort - Title
384List track - Add to/from library
382List track - Dequeue
389List track - Don't auto-remove
403List track - Explore folder
372List track - Play
385List track - Plugin info
374List track - Queue
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
370List track - Remove
371List track - Remove & delete file
387List track - Separate subsongs
373List track - Skip
376List track - Track info
388List track - Unseparate subsongs
300MOD - Force VBlank timing
297MOD - Interpolation
296MOD - MOD playback mode
298MOD - Ramping
299MOD - Surround sound
293MOD pattern - Invert all
291MOD pattern - Mute channel
290MOD pattern - Next channel
289MOD pattern - Prev channel
292MOD pattern - Unmute all
6Open files/URL
12Open folder
13Open from clipboard
5Options and stuff
624Output options
97Plugins - DSP & general
96Plugins - Input
593Saved settings - Load current
592Saved settings - Options
17UI - Big
14UI - Info bubbles
1UI - Mini mode
2UI - Minimize / Restore
3UI - Minimize to tray / Restore
7UI - On top
4UI - Reload skin
8UI - Time display mode

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