Skip to content

Repository files navigation

cmod-xmplay

Browse and play modules from Modland directly inside XMPlay.

No web browser. No manual downloads. Just search → play.


✨ What you get

  • Instant search across Modland’s catalog (artist / song / all fields)
  • One-click add or ALT+double-click to play now
  • Batch add all visible results
  • Update checker that compares your local DB with Modland and rebuilds when new files appear
  • Optional OpenMPT support for a much wider set of classic/ancient formats
  • Preformatted titles via an on-the-fly playlist (PLS) so the playlist shows Artist – Song
  • Lightweight: one DLL + one SQLite DB

✅ Requirements


🚀 Installation (2 minutes)

  1. Download from Releases: https://github.com/jllodra/cmod-xmplay/releases

    • xmp-cmod.dll (required)
    • cmod.db (optional, saves time on first run)
  2. Copy the file(s) into your XMPlay folder, e.g. C:\Programs\xmplay40 (You can use any subfolder too.)

  3. Launch XMPlay.

  4. Assign a shortcut to open the plugin dialog (e.g. press W):

image

  1. Close Options and press your hotkey (W in the example).

🧭 Usage

image
  • Type ≥ 3 characters to search (Artist / Song / All).

  • Double-click a result → add to playlist.

  • ALT + double-click → open & play immediately.

  • Right-click → context menu (copy URL, search on ModArchive, etc).

  • Add all to playlist → adds the current result set.

  • Check for updates in Modland… → compares your DB date with allmods.zip and offers:

    • Rebuild (default formats): XMPlay-native formats only.
    • Rebuild (all formats): XMPlay + OpenMPT formats.

The window title shows a small DB badge with the build date and whether it was built with default or all formats.


🗂️ Formats

image
  • Default (XMPlay only): mod, s3m, xm, it, mo3, mtm, umx
  • All formats (with xmp-openmpt installed): mptm, mod, s3m, xm, it, 669, amf, ams, c67, dbm, digi, dmf, dsm, dsym, dtm, far, fmt, imf, ice, j2b, m15, mdl, med, mms, mt2, mtm, nst, okt, plm, psm, pt36, ptm, sfx, sfx2, st26, stk, stm, stx, stp, symmod, ult, wow, gdm, mo3, oxm, umx, xpk, ppm, mmcmp, mmd0, mmd1, mmd2, mmd3, mmdc
  • ADT2Plug formats: a2m, a2t, amd, cff, dfm, fmk, hsc, mtk, rad, sa2, sat, xms — add in_adt2.dll to XMPlay (ADT2Plug v2.4.24).

Choose Check for updates → Rebuild (all formats) to populate your DB with the extended list. The Format box is editable; type one or several extensions such as it,xm (commas, semicolons, and spaces are accepted).


⚙️ Configuration (optional)

On startup, cmod creates cmod.ini next to the plugin DLL and adds the default mirror and its known formats. You can append more extensions to formats; if a value cannot be read or is empty, cmod uses its built-in defaults.

[cmod]
; Base URL used for allmods.zip and module URLs.
; Alternatives: https://modland.com or http://modland.antarctica.no
modland_url=http://modland.com
formats=669,a2m,a2t,amd,amf,ams,c67,cff,dbm,dfm,digi,dmf,dsm,dsym,dtm,far,fmk,fmt,gdm,hsc,ice,imf,it,j2b,m15,mdl,med,mmcmp,mmd0,mmd1,mmd2,mmd3,mmdc,mms,mo3,mod,mptm,mt2,mtk,mtm,nst,okt,oxm,plm,ppm,psm,pt36,ptm,rad,sa2,sat,s3m,sfx,sfx2,st26,stk,stm,stp,stx,symmod,ult,umx,wow,xm,xms,xpk
; Use on-the-fly PLS to control playlist titles.
; 1 = use PLS (recommended and default), 0 = add URLs directly (legacy behavior)
use_pls=1

🎨 Making the titles look better (recommended)

Stop XMPlay from overwriting titles after reading tags

By default, XMPlay can replace playlist titles once it reads file/module metadata (local files are pre-read; internet files only when played). To keep the PLS titles intact:

  1. Open Options → Titles in XMPlay.
  2. Set Track title formatting to empty (blank) and click apply. This prevents XMPlay from replacing the playlist’s PLS titles after tags are read.
  3. In Options → Display → Columns (right click on the playlist), set the Track column to Title (not “Full path”).
image image image

Library note: The library doesn’t use formatted playlist titles, so disabling title updates here won’t affect your library contents.

If you still see some “module name” replacing your titles

That can happen if XMPlay had cached metadata from earlier plays. Exporting the library, then deleting the xmplay.library file and reimporting the library refreshed things in testing. If you are not using a library at all, just delete xmplay.library.

More info here if you create your own library of modland songs in xmplay. You can post-process it to make it look better: #9

⚡ Enable caching (optional)

If you don’t want to re-download a song each time you play it:

image

Cached files storage path info: https://www.un4seen.com/forum/?topic=20680.0


🔧 Tips & troubleshooting

  • No results? Make sure you typed at least 3 characters. Try Check for updates… → Rebuild if your DB is old or missing.

  • Exact phrases: Wrap your query in quotes: "star control".

  • Hyphens / punctuation: The search is tolerant to -, (), etc. If something doesn’t match as expected, try removing punctuation or using quotes.

  • Network issues / proxies: If XMPlay can’t reach Modland, check your proxy/firewall. The update checker does an HTTP HEAD on allmods.zip to compare timestamps, then downloads only when needed. Update and rebuild diagnostics are appended to cmod.log next to the plugin DLL.

  • Uninstall: Close XMPlay and delete xmp-cmod.dll (and cmod.db if you want).


🙏 Credits

  • Modland for hosting the largest public archive of module music.
  • XMPlay by un4seen.
  • OpenMPT for extended/ancient format support.

🎱

I consider this plug-in as "feature-complete". Bugfixes and maintenance operations will be done when necessary.

If you find a bug or want a new feature, please open an issue.

I recommend you to try some of the xmplay themes also, the ones from Keltic Danor are pretty nice:

image

Enjoy, and spread the word 🎶

by herotyc

About

cmod is an xmplay plugin to play songs hosted on modland

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages