[IMPLEMENTED] Tracker module support (using OpenMPT or XMP)

  • 13 Replies
  • 7253 Views
*

Dr.Flay

  • Evil Genius
  • Beta Tester
  • Jr. Member
  • **
  • 99
  • AMIGA Forever
    • View Profile
    • About Me
[IMPLEMENTED] Tracker module support (using OpenMPT or XMP)
« on: December 13, 2016, 02:10:08 AM »
There are a couple of decent mod player replacements, both with worth while cores.
Based on Open Mod Plug Tracker and LibXMP, they offer comparable quality and format support, though I think XMP has more including many Amiga formats.

ModPlug Winamp Input Wrapper Plugin v0.2b [libmodplug 0.8.8.2]
http://wks.arai-kibou.ru/soft.php#modplug
OpenMPT v0.2.5857
ftp://ftp.modland.com/pub/software/players/Windows/Winamp/input%20plugins/

 In_XMP (eXtended Module Player) v4.3.12.7z
ftp://ftp.modland.com/pub/software/players/Windows/Winamp/input%20plugins/

I suggest we opt for 1 of these to be the new standard, or to build from them as they all have source available.
« Last Edit: June 04, 2017, 09:39:45 PM by dro »
My weekly radio show on Source FM ☛ 15% Extra

*

Juanus

  • Beta Tester
  • Sr. Member
  • ****
  • 304
    • View Profile
Re: Tracker module support
« Reply #1 on: December 13, 2016, 02:57:50 AM »
This is in the changelog here
https://getwacup.com/development.html

Replaced Winamp’s existing Module Decoder plug-in (in_mod.dll) with one based on libOpenMPT (derived from in_openmpt.dll but renamed to in_mod.dll)
This is much more reliable and better library for module file playback compared to the very old mikmod based plug-in that Winamp has shipped for far too long
This version is based on 0.2.7386-beta20.3 (20-11-2016)

*

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • 1989
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: Tracker module support
« Reply #2 on: December 13, 2016, 02:48:41 PM »
I went with openmpt as it's seeing regular development updates and at the time when I had an official hat they were open to it happening. It also seems to be actively supported on Windows which is not the case for a lot of these open projects.

The main thing lacking with the openmpt plug-in I'm including is transcoding / file converter support & I that I need to commit back to them most of my changes (which leaves me in a bit of a quandry as the mythical 5.8 release is using it now and it has transcoding support but ripped out the looping options instead of properly converting it over to remove the MFC dependencies as I've done).

-dro

*

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • 1989
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: Tracker module support
« Reply #3 on: December 13, 2016, 02:50:44 PM »
There's also a few of the other plug-ins on the modland site that I'd possibly consider including later on but it really depends on whether they can be cleaned up to work better with 5.666 / WACUP or not.

-dro

*

Juanus

  • Beta Tester
  • Sr. Member
  • ****
  • 304
    • View Profile
Re: Tracker module support
« Reply #4 on: December 13, 2016, 02:55:46 PM »
The main thing lacking with the openmpt plug-in I'm including is transcoding / file converter support & I that I need to commit back to them most of my changes (which leaves me in a bit of a quandry as the mythical 5.8 release is using it now and it has transcoding support but ripped out the looping options instead of properly converting it over to remove the MFC dependencies as I've done).

I know that there is some technical programmer lingo in here, but can you explain this just a little more? I am interested in how you have "properly" converted it over vs. how the unicorn release did it? And when you commit your changes to the open project, does that make your changes able to be used by them?

*

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • 1989
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: Tracker module support
« Reply #5 on: December 13, 2016, 03:21:48 PM »
MFC is a framework that depending on view point either helps with developing Windows stuff or its a ball ache due to then needing a number of large dependent dlls (e.g  more than is already included in the Microsoft.VC90.CRT folder).

So for the plug-in, I just worked through and replaced what was being used from the MFC framework with a comparable direct Windows api implementation (i.e. it works the same but means it's a few KB more of code in the dll itself but then doesn't require MB+ dll files).

Under the licensing terms used by the openmpt project it means I don't have to commit anything back to them but then I'm not keen on not doing that as some of the changes can be helpful for those using the plug-in provided in non-Winamp setups. So by giving back any code changes, it would mean anyone else can make use of such changes (if they want to / are able to).

-dro

*

Juanus

  • Beta Tester
  • Sr. Member
  • ****
  • 304
    • View Profile
Re: Tracker module support
« Reply #6 on: December 13, 2016, 03:30:54 PM »
Mr Jones was right, you are lovely and kind to kittens.

*

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • 1989
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: Tracker module support
« Reply #7 on: December 13, 2016, 03:34:40 PM »
And he had some lovely shiny boots :D

-dro

*

Dr.Flay

  • Evil Genius
  • Beta Tester
  • Jr. Member
  • **
  • 99
  • AMIGA Forever
    • View Profile
    • About Me
Re: Tracker module support
« Reply #8 on: December 14, 2016, 07:45:25 PM »
I remembered it being a topic on the blog, but not that it was done, I'll pay more attention to that page in future! oops.
I have been using the OpenModPlug version for a while, but it still lacks support for some of my Amiga mods.
In_OpenMPT
Code: [Select]
In_OpenMPT, for Winamp v5.x
(c) 2013-2015 OpenMPT developers, http://openmpt.org

Adds decoding support for several sequenced music formats.

Installation:
Copy In_OpenMPT.dll into Winamp's plugins folder.

Supported Formats:
.669, .amf, .ams, .dbm, .digi, .dmf, .dsm, .far, .gdm, .imf, .it,
.j2b, .m15, .mdl, .med, .mo3, .mod, .mptm, .mt2, .mtm, .nst, .okt,
.plm, .psm, .ptm, .s3m, .stk, .stm, .ult, .umx, .wow, .xm

In_XMP
Code: [Select]
                    SUPPORTED MODULE FORMATS


Common suffix Tracker/packer Recognized variants
-------------   --------------          -------------------

Soundtracker and variants:

MOD Sound/Noise/Protracker M.K., M!K!, M&K!, N.T., CD81
MOD, M15 Soundtracker 2.2, UST
MOD/NT Startrekker/ADSC FLT4/8/M, EXO4/8
MOD Digital Tracker FA04, FA06, FA08
MOD Fast/Taketracker xCHN, xxCH
MOD His Master's Noise -
FLX Flextrax M.K., xCHN (no dsp effects)
WOW Mod's Grave M.K.

Amiga packed formats:

- AC1D Packer -
- FC-M Packer 1.0
- Fuchs Tracker -
- Heatseeker mc1.0
- Hornet Packer HRT!
- Images Music System ?
- Kefrens Sound Machine -
- Module Protector -
- NoisePacker 1.0, 2.0, 3.0
- NoiseRunner -
- Pha Packer -
- Power Music -
- ProPacker 2.1
- ProRunner 1.0, 2.0
- Promizer 0.1, 1.0c, 1.8a, 2.0, 4.0
- SKYT Packer -
- StarTrekker Packer -
- The Player 4.x, 5.0a, 6.0a, 6.1a
- Titanics Player -
- Tracker Packer 3
MOD Unic Tracker 1.0, 2.0
- Wanton Packer -
- XANN Packer -
- Zen Packer -

Other Amiga tracker formats:

DBM DigiBooster Pro DBM0
DIGI DIGI Booster 1.4, 1.5, 1.6, 1.7
EMOD Quadra Composer 0001
MOD ChipTracker KRIS
MOD Protracker 3.59 PTDT
MED MED 1.12/2.10/3.00 MED2, MED3, MED4
MED MED 3.00/OctaMED MMD0, MMD1, MMD2, MMD3
MOD, MTN ST 2.6, Ice Tracker MTN, IT10
OKT Oktalyzer -
SFX SoundFX 1.3, 2.0?

Atari tracker formats:

MOD Octalyser CD61, CD81
DTM Digital Tracker 1.9
MGT Megatracker -

Acorn tracker formats:

- Archimedes Tracker V1.0+++
- Digital Symphony 0

PC tracker formats:

669 Composer 669/UNIS 669   if, JN
FAR Farandole Composer 1.0
FNK Funktracker R0, R1, R2
IMF Imago Orpheus 1.0
IT Impulse Tracker 1.00, 2.00, 2.14, 2.15
LIQ Liquid Tracker 0.0, 1.0
MDL Digitrakker 0.0, 1.0, 1.1
MTM Multitracker 1.0
PTM Poly Tracker 2.03
RTM Real Tracker 1.00
S3M Scream Tracker 3 3.00, 3.01+
STM Scream Tracker 2 !Scream!, BMOD2STM
ULT Ultra Tracker V0001, V0002, V0003, V0004
XM Fast Tracker II 1.02, 1.03, 1.04

PC packed formats:

AMF DSMI (DMP) 0.9, 1.0, 1.1, 1.2, 1.3, 1.4
GDM Generic Digital Music 1.0
STX ST Music Interface Kit 1.0, 1.1

Game formats:

ABK AMOS Sound Bank -
AMF Asylum Music Format 1.0
- Digital Illusions -
- Game Music Creator -
PSM Epic Megagames MASI epic, sinaria
J2B Galaxy Music System 5.0 -
- Galaxy Music System 4.0 -
MFP/SMP Magnetic Fields Packer  -
- Novotrade Packer -
PSM Protracker Studio 0.01, 1.00
STIM Slamtilt -
UMX Epic Games Unreal/UT IT, S3M, MOD, XM

YM3812 (Adlib) formats:

AMD Amusic Adlib Tracker -
RAD Reality Adlib Tracker -
HSC NEO soft/HSC-Tracker 1.5
S3M Scream Tracker 3 3.00, 3.01+


Formats marked with (*) are experimental and are known to have
replay errors and unimplemented effects.

Format descriptions of packed modules sent by Sylvain "Asle" Chipaux.
PTM specs and info by Kilian Hekhuis. AMF specs by Miod Vallat.
Soundtracker format details by Michael Schwendt and Sylvain Chipaux.
Both code bases have been updated since those plugins.
XMP current stable version is 4.4.1 (released Oct 12 2016).
http://xmp.sourceforge.net/libxmp.html

Current supported formats from http://xmp.sourceforge.net
Code: [Select]
Supported formats
Modules
 Xmp supports many module formats and variations. A few incomplete formats such as DTT and DMF were disabled in recent releases. Currently libxmp recognizes the following formats:

Amiga tracker formats ChipTracker: KRIS
DIGI Booster: 1.4, 1.5, 1.6, 1.7
DigiBooster Pro (DBM): DBM0
Ice Tracker: IT10
MED 1.12 (MED): MED2
MED 2.10 (MED): MED3
MED 3.00 (MED): MED4
OctaMED (MED): MMD0, MMD1, MMD2, MMD3
Oktalyzer (OKT)
Protracker 3.59
Protracker song
Quadra Composer (EMOD): 0001
Sound/Noise/Protracker standard 31-instrument (MOD): M.K., M!K!, M&K!, N.T.
SoundFX (SFX): 1.3, 2.0?
Soundtracker 15-instrument (MOD, M15)
Soundtracker 2.6 MTN format
Startrekker/Audio Sculpture (MOD, MOD.NT): FLT4/8/N, EXO4/8
Ultimate Soundtracker 15-instrument (MOD)
PC tracker formats Composer 669/UNIS 669 (669): if, JN
Digitrakker (MDL): 0.0, 1.0, 1.1
Farandole Composer (FAR): 1.0
Fast Tracker II extended module (XM): 1.02, 1.03, 1.04, MED2XM
Fast Tracker multichannel (MOD): 6CHN, 8CHN
Funktracker (FNK): R0, R1, R2
Imago Orpheus (IMF): 1.0
Impulse Tracker (IT): 1.00, 2.00, 2.14, 2.15
Liquid Tracker (LIQ): 0.0, 1.0
Mod's Grave 8-channel M.K. (MOD, WOW)
Multitracker (MTM): 1.0
Poly Tracker (PTM): 2.03
Real Tracker (RTM): 1.00
Scream Tracker 2 (STM): !Scream!, BMOD2STM
Scream Tracker 3 (S3M): 3.00, 3.01+
TakeTracker 4-channel (MOD): TDZ4
TakeTracker/Fast Tracker II multichannel (MOD): xxCH
Ultra Tracker (ULT): V0001, V0002, V0003, V0004
X-Tracker (DMF): 7, 8
Amiga packed formats AC1D Packer
Heatseeker: mc1.0
FC-M Packer: 1.0
Fuchs Tracker
Fuzzac Packer
Hornet Packer: HRT!
Images Music System
Kefrens Sound Machine
Module Protector
NoisePacker: 1.0, 2.0, 3.0
NoiseRunner
The Player: 4.x, 5.0a, 6.0a, 6.1a
Tracker Packer: 3
Power Music
Pha Packer
ProPacker: 2.1
Promizer: 0.1, 1.0c, 1.8a, 2.0, 4.0
ProRunner: 1.0, 2.0
SKYT Packer
StarTrekker Packer
Titanics Player
Unic Tracker: 1.0, 2.0
Wanton Packer
XANN Packer
Zen Packer
PC packed formats Dual Module Player DSMI (AMF): 0.9, 1.0, 1.1, 1.2, 1.3, 1.4
Generic Digital Music (GDM): 1.0
ST Music Interface Kit (STX): 1.0, 1.1
Game formats AMOS Music Bank
ASYLUM Music Format (AMF)
Digital Illusions
Game Music Creator (GMC)
Epic Megagames MASI (PSM): Epic, Sinaria
Galaxy Music System 5.0 (J2B)
Galaxy Music System 4.0
Magnetic Fields Packer
Novotrade Packer
Protracker Studio (PSM): 0.01, 1.00
Slam Tilt
Epic Games Unreal/UT (UMX): IT, S3M, MOD, XM
Atari formats Digital Tracker (MOD): FA04, FA06, FA08
Digital Tracker (DTM): 1.9
Flextrax (FLX) [effects not supported]
Graoumf Tracker (GTK): GTK1, GTK4
Octalyser multichannel (MOD): CD61, CD81
TCB Tracker (MOD): 'AN COOL.'
Acorn formats Archimedes Tracker: V1.0+++
Digital Symphony: 0
Desktop Tracker
Compressors
 Xmp is able to play compressed modules using external helpers or built-in depackers. In archived files only the first module will be played. Currently recognized compressors are:

Built-in depackers Arc (.arc): old file archiver and compressor
ArcFS: Acorn file archiver and compressor
Bzip2 (.bz2): popular Unix/Linux file compressor
Compress (.Z): old Unix file compressor
Gzip (.gz): popular Unix/Linux file compressor
LHA (.lha): Amiga/DOS file archiver and compressor
LZX (.lzx): Amiga file archiver and compressor
MMCMP: Music Module Compressor by Emmanuel Giasson
MUSE (.j2b): GALAXY Music System compressor by Carlo Vogelsang
OGGMod (.oxm): OGG-encoded XM modules
PowerPacker (.pp): Amiga file compressor by Nico Francois
!Spark: Acorn file archiver and compressor
S404: Amiga StoneCracker file compressor
SQSH: Amiga file compressor
XFD: xfdmaster.library support (Amiga only)
Zip (.zip): popular DOS/Windows file compressor
xz (.xz): Unix/Linux file compressor
Using external helpers MO3 (.mo3): Linux/Windows/OSX IT/XM/S3M/MOD compressor [helper: unmo3]
RAR (.rar): popular archiver and compressor [helper: unrar]
ZOO (.zoo): Amiga/DOS file archiver and compressor [helper: zoo]
https://openmpt.org/features
Code: [Select]
Supported file formats
Loading
Modules
Composer 669 / UNIS 669 (669)
ASYLUM Music Format / DSMI Advanced Music Format (AMF)
Extreme's Tracker / Velvet Studio (AMS)
Digi Booster Pro (DBM)
Digi Booster (DIGI)
X-Tracker (DMF)
DSIK Format (DSM)
Farandole Composer (FAR)
General Digital Music (GDM)
Ice Tracker / SoundTracker 2.6 (ICE / ST26)
Imago Orpheus (IMF)
Impulse Tracker (IT)
Impulse Tracker Project (ITP)
Jazz Jackrabbit 2 Music (J2B)
SoundTracker and compatible (M15 / STK)
DigiTrakker (MDL)
OctaMED (MED)
MO3 compressed modules (MO3)
ProTracker / NoiseTracker / etc. 1 - 99 channels, 15 or 31 samples (MOD)
OpenMPT (MPTM)
MadTracker 2 (MT2)
MultiTracker (MTM)
Oktalyzer (OKT)
Disorder Tracker 2 (PLM)
Epic Megagames MASI (PSM)
ProTracker 3.6 IFF (PT36)
PolyTracker (PTM)
ScreamTracker 3 (S3M)
SoundFX / MultiMedia Sound (SFX / SFX2 / MMS)
ScreamTracker 2 (STM)
UltraTracker (ULT)
Unreal Music Package (UMX)
Grave Composer (WOW)
FastTracker (XM)
Compressed modules in ZIP / LHA / RAR / GZ archives
Other
MIDI (MID) - OpenMPT is not a MIDI editor, though.
Uncompressed Wave (WAV)
Saving
Modules
Impulse Tracker (IT)
ProTracker 4 - 99 channels, 31 samples (MOD)
OpenMPT (MPTM)
ScreamTracker 3 (S3M)
FastTracker (XM)
Rendering / Exporting
PCM and Float Audio up to 192 KHz, 32-bit, quad surround (WAV, FLAC)
Opus, Ogg Vorbis (built-in) and MPEG-1 Audio Layer III (MP3) through external codecs
MIDI (MID)
I use XMPlayer to play mods perfectly for converting to mp3 etc., and it gets regular updates for one reason or another, so I'm not sure if OpenMPT offers that much edge when XMP focus has always been about accuracy over everything else.
Smirftsch, the lead coder at OldUnreal had to make the same choice for the Unreal updates, and was originally against XMP due to the licensing restrictions, but after looking through the red-tape realised it does not matter.
Unreal is a commercial product, but the OldUnreal patches are free and unofficial (though officially allowed by Epic, because Smirftsch has a licence from Epic. I think this is why he thought he couldn't use XMP).
My weekly radio show on Source FM ☛ 15% Extra

*

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • 1989
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: Tracker module support
« Reply #9 on: December 14, 2016, 10:50:57 PM »
I'll look into XMP though it seems like they've either culled or just really hidden the appropriate source code for the plug-in and how to build it on WIndows (there's some odd bits I can find from crude code history commits but nothing 'current' that is provided).

License wise it seems like the full libxmp is LGPL which I'm ok with using (there's no point in even considering the lite version which is MIT licensed if I've already got an openmpt solution).

The plug-in d/l from modland seems to be very basic in only being comparable to to the 2.x days so would need updating in a number of ways to make it usable in current setups. So it might be something I look into as an updated alternative but just from spending almost an hour looking for the applicable source code needed with no real result, I'm not too impressed on first impression with xmp compared to my first time with openmpt.

-dro
« Last Edit: December 15, 2016, 03:18:00 PM by dro »

*

Juanus

  • Beta Tester
  • Sr. Member
  • ****
  • 304
    • View Profile
Re: Tracker module support
« Reply #10 on: December 15, 2016, 01:00:58 AM »
can I get a brief explanation about what MPT does?
I actually don't know I just know that it is cool to see it updated.

*

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • 1989
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: Tracker module support
« Reply #11 on: December 15, 2016, 03:29:04 PM »
It's just a library (same for XMP) which decodes the files it supports into a format that Winamp can then play. The main thing is that it is a better implementation than what the native in_mod uses (since it's not been updated in years).

Internally it's quite interesting to try to see how it generates the actual audio often from just "play this" type commands (depending on the format).

-dro

*

Juanus

  • Beta Tester
  • Sr. Member
  • ****
  • 304
    • View Profile
Re: Tracker module support
« Reply #12 on: December 15, 2016, 04:21:39 PM »
Thanks for the info. I'm trying to learn about all this internal stuff as we go. I'm more functional than technical with all this stuff.

*

Dr.Flay

  • Evil Genius
  • Beta Tester
  • Jr. Member
  • **
  • 99
  • AMIGA Forever
    • View Profile
    • About Me
Re: Tracker module support
« Reply #13 on: December 16, 2016, 09:26:42 PM »
I tend to agree after hunting for a while myself, it would seem best to stick with the modplug code.
The most likely source of the in_XMP plugin seems to be in the XMPlayer forum. Perhaps as it is the authors first plugin, they are the reason it is so basic.
I may try to get in contact anyway and add some suggestions for improvement. It is good to have at least 2 comparable plugins being developed.

@Juanus a tracker module file, is basically like a midi file but with the used instrument samples included in the module, so it sounds the same for everyone.

OpenMPT allows you to convert midi files into tracker mods. This is handy if you have a high quality set of samples.
My weekly radio show on Source FM ☛ 15% Extra