xmp-openmpt: An XMPlay input plugin based on OpenMPT

Started by saga,

saga

Quote from: guestPlugin ignores first order (pattern 3).
There seems to be a problem with importing pattern jump commands, will be fixed in the next update.
Quote from: guestSample 3 name should be "soltrumm.001" (now is "soltrumm.00").
Are you the same person that sent me an email regarding this exact issue?  You need to upgrade to the latest version, this problem has already been fixed for a while.

guest

Quote
QuoteSample 3 name should be "soltrumm.001" (now is "soltrumm.00").
You need to upgrade to the latest version, this problem has already been fixed for a while.
I have xmp-openmpt version 0.3.8.10046 for Windows XP/Vista.

saga

Ah, I see what's going on now. The filename was imported twice (once as a regular sample name and once as a sample filename), but libopenmpt only uses the regular sample name, which wasn't fixed yet. The next update will fix the display of the regular sample name, too.

guest

ftp://ftp.modland.com/pub/modules/Fasttracker/Zane/wishes.mod
xmp-openmpt config:
Channels - stereo
Stereo separation - lowest

Sample 2 on channels 2,3,4 in pattern 0 isn't audible.

saga

Yes, that is to be expected, because these are surround channels. In a stereo setup, surround channels are emulated by Pro-Logic Surround, i.e. the right channel plays an inverted copy of the left channel. At 0% stereo separation, they cancel each other out (-x + x = 0). If you want to listen in mono, set the output to mono instead.

manx

2018-04-29: xmp-openmpt version 0.3.9 released!

 *  Possible crash in low memory situations when loading AMS files.
 *  STM: Having both Bxx and Cxx commands in a pattern imported the Bxx command incorrectly.
 *  STM: Last character of sample name was missing.
 *  Speed up reading of truncated ULT files.
 *  ULT: Portamento import was sometimes broken.
 *  The resonant filter was sometimes unstable when combining low-volume samples, low cutoff and high mixing rates.
See https://lib.openmpt.org/libopenmpt/2018/04/29/security-updates-0.3.9-0.2-beta32-0.2.7561-beta20.5-p9-0.2.7386-beta20.3-p12/ for further details.

xmp-openmpt for Windows 7 and newer, CPUs with SSE2 instruction set - that's pretty much any x86 CPU made in the last ten years. Any 64-bit CPU automatically supports this.
xmp-openmpt for Windows XP / Vista or old CPUs without SSE2 instruction set

saga

Thanks for the report, the FAR format is really strange. Sadly fixing the volume command is not the only thing that's requied to make this module play right...

deus-ex

MilkyTracker plays the module fine, including channel 4 Order 8 (pattern 6) - channel 4 (counted from 0 in FAR).

Although that particular channel/instrument sounds different in the original tracker compared to MilkyTracker. Check the attached audio file that holds an excerpt spanning from roughly Order 07 to 09 of the module playing in Farandole Composer under DOSBox using GUS emulation.

saga

As said, importing the volume commands is the smallest problem to making the file play correctly - I have already fixed that, but MilkyTracker doesn't even try to get the other parts (in particular portamentos) right.

manx

2018-06-17: xmp-openmpt version 0.3.10 released!

 *  Bug: Internal mixer state was not initialized properly when initially rendering in 44100kHz stereo format.
 *  Bug: AMF: Undefined behaviour in loader code could lead to files playing silent.
 *  Switching between instruments with portamento did not update the NNA settings for the new instrument.
 *  FAR: Properly import volume commands.

See https://lib.openmpt.org/libopenmpt/2018/06/17/release-0.3.10-and-0.2.10495-beta33/

xmp-openmpt for Windows 7 and newer, CPUs with SSE2 instruction set - that's pretty much any x86 CPU made in the last ten years. Any 64-bit CPU automatically supports this.
xmp-openmpt for Windows XP / Vista or old CPUs without SSE2 instruction set

Tarma

We need a better system to override the internal MOD-player engine. Extensions filter is not a good option...

For example: I have a HUGE library of Amiga modules with their original names (prefix.filename. No extension). In my situation, xmp-openmpt simply sit down in the background and every MOD is played by the standard engine despite priority filetypes. By the way, i will not manually rename 30+ MB of files (for historical reasons too), 'cause the next step is to edit every playlist accordingly...

deus-ex

Hi manx and saga,

thank you for continuous support and frequent releases of OpenMPT and its plugin derivatives. Today I checked the recent foobar2000 fork by Kode54 against a few of my test files and found a replay issue with the following module:

ftp://ftp.modland.com/pub/modules/Impulsetracker/Platosha/make it simple.it
Starting from Order 09 the instrument on Channel 04 isn't accurately replayed, reference is Impulse Tracker v2.14. As expected OpenMPT itself and the Winamp plugin of OpenMPT are affected likewise, while XMPlay appears to play the module correctly. Find attached an excerpt of the module, created with Impulse Trackers stereo WAV writer driver. From 00:07 onwards you can hear the instrument in question.

saga

The file was saved with ModPlug Tracker, so OpenMPT plays it the way ModPlug Tracker would play the file, not Impulse Tracker.

Edit: Apart from the filter differences, there appears to be a 0-volume optimization on the arpeggiated instrument which shouldn't be there. This will be fixed. However, any other differences in sound characteristics compared to IT will stay as mentioned above.

deus-ex

Thanks for looking into it, Saga. I understand and fully support your position on this.

Besides the bit in the module that holds the information which tracker/version was used to save it, there seem to be more characteristics or actual data to identify whether a module was natively saved in ModPlug Tracker? Because out of curiosity I just resaved this module with Impulse Tracker, yet besides the change of the used tracker info from "ModPlug Tracker 1.09 - 1.16" to " Impulse Tracker 2.15" the module gets replayed by OpenMPT all the same as before.

saga

Sorry, I thought you were referring to the slightly different sound characteristics of the filtered bass instrument, because that starts at 0:07 in the original file but I guess you were referring to 0:07 in your MP3. Anway, the difference in playback in the arpeggiated chords is not an old MPT bug being emulated but a result of another bugfix made earlier this year. You can download a current test build from https://builds.openmpt.org/builds/ which will no longer exhibit this problem.

deus-ex

Quote from: sagaSorry, I thought you were referring to the slightly different sound characteristics of the filtered bass instrument, because that starts at 0:07 in the original file but I guess you were referring to 0:07 in your MP3.

That's correct, in my provided example MP3 it starts at time 0:07, whereas in the module it starts at order 09. I'm glad I could help to identify an actual bug.

manx

2018-07-28: xmp-openmpt version 0.3.11 released!

 *  Sec: Crash with some malformed custom tunings in MPTM files.
 *  Channels whose volume envelope was playing at volume 0 while being moved to a NNA background channel were cut off completely since libopenmpt 0.3.8.
 *  AMF (ASYLUM): Convert 7-bit panning to 8-bit panning for playback.

See https://lib.openmpt.org/libopenmpt/2018/07/28/security-updates-0.3.11-0.2.10635-beta34-0.2.7561-beta20.5-p10-0.2.7386-beta20.3-p13/

xmp-openmpt for Windows 7 and newer, CPUs with SSE2 instruction set - that's pretty much any x86 CPU made in the last ten years. Any 64-bit CPU automatically supports this.
xmp-openmpt for Windows XP / Vista or old CPUs without SSE2 instruction set

manx

2018-09-24: xmp-openmpt version 0.3.12 released!

 *  Jump commands on the same row as the end of a pattern loop covering the restart position of the module could cause the module to loop even when looping was disabled.
 *  MO3: Reject overly long MP3 and Vorbis samples.

See https://lib.openmpt.org/libopenmpt/2018/09/24/releases-0.3.12-and-0.2.10859-beta35/

xmp-openmpt for Windows 7 and newer, CPUs with SSE2 instruction set - that's pretty much any x86 CPU made in the last ten years. Any 64-bit CPU automatically supports this.
xmp-openmpt for Windows XP / Vista or old CPUs without SSE2 instruction set

manx

2018-10-21: xmp-openmpt version 0.3.13 released!

 *  Crash with malformed MED files.
 *  Transposed samples in AMF ASYLUM modules were not played correctly.
 *  Clicks when stopping channels that didn't end at zero volume.
 *  XM: Do not import non-standard commands N and M as channel volume commands.

See https://lib.openmpt.org/libopenmpt/2018/10/21/security-updates-0.3.13-0.2.10933-beta36-0.2.7561-beta20.5-p11-0.2.7386-beta20.3-p14/

xmp-openmpt for Windows 7 and newer, CPUs with SSE2 instruction set - that's pretty much any x86 CPU made in the last ten years. Any 64-bit CPU automatically supports this.
xmp-openmpt for Windows XP / Vista or old CPUs without SSE2 instruction set