View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001345||OpenMPT||Playback Compatibility||public||2020-06-30 19:20||2020-07-01 06:58|
|Status||closed||Resolution||no change required|
|Product Version||OpenMPT 1.29.01.00 / libopenmpt 0.5.0 (current stable)|
|Summary||0001345: OpenMPT does not enable ProTracker mode on specific MOD file|
I discovered this bug when listening to the module "Generator" by Hoffman (https://modarchive.org/index.php?request=view_by_moduleid&query=177714) in FooBar with the OpenMPT plugin. When testing, I found that the same bug is present when using OpenMPT 1.29.01, as well as the online player on ModArchive.
Hoffman likes to do a lot of trickery with his patterns and samples to squeeze as much as possible into the limited Protracker .mod-format. One of these is concatenating multiple samples into one, and then using sample offset (command 9xx) to swap between the parts, working around the 31 samples limit.
Another trick is a workaround to the fact that you can only trigger one effect command per line, which is done by triggering one or more effects without triggering a note, then triggering a note, then the effects can be repeated by entering notes without entering the sample #.
In the mentioned module, Hoffman uses these two tricks to combine 4 chord samples into one single sample (#0F), and to combine the effects 9xx (sample offset) with Cxx (volume, which is an effect rather than a separate slot in Protracker patterns).
Observe this pattern sequence:
F#30F093A <--- Trigger the sample F at offset $3A at full volume
Note that the last line specifies a note (F#3), an effect (C40, i.e. volume 64), but the sample is set to zero, i.e. no sample is specified. In Protracker, this triggers samples F at offset $3A and full volume. In OpenMPT however, this line triggers the sample from offset 0, ruining the song.
I do not know for sure, and I am nowhere near Hoffmans proficiency in pattern hacking, but my guess is this bug also applies to other combinations of commands triggered without specifying a sample #.
|Steps To Reproduce|
The module can be downloaded and/or played from https://modarchive.org/index.php?request=view_by_moduleid&query=177714. The bug is apparent around the 1:11 mark in the module, at pos 20 in the song when it starts to play pattern 0000016.
For reference, at 1:26:17 in the following video you can hear how this part of the module is supposed to sound:
In the video, Hoffman is doing a DJ set of his own modules on 2 Amiga 600s using a custom software called PT1210 to mix two modules on the fly. PT1210 does not appear to have any problems with this module, and I am confident Ian would not be playing that module on it if it did.
I myself tried playing back the module in a couple of players and trackers:
OpenMPT 1.29.01, FooBar 1.4.2 with foo_openmpt54 0.4.8 and TMA online player all exhibit the same bug.
Protracker 2.3d and Protracker 3.61 on Amiga plays the module correctly, i.e. as in the video linked above. I also tried OctaMED SoundStudio 1.03, which mostly handles this module fine, except that it adds a noisy hiss when the module slots the 9xx effect without a note. All Amiga programs tested using WinUAE running Workbench 3.1.
|Tags||No tags attached.|
|Has the bug occurred in previous versions?||I don't know, but probably|
|Tested code revision (in case you know it)|
The problem here is that right in the very first pattern, there is a C-7 note, which is outside of the supported note range of ProTracker. OpenMPT thus deduces that this file cannot possibly have been written in ProTracker, and thus does not enable any ProTracker quirks.
If you remove that note and resave the file, it will play correctly.
The official version on http://janeway.exotica.org.uk/release.php?id=85703#downloads doesn't have this issue by the way - I will replace the file on ModArchive with the download from Kestra.
|2020-06-30 19:20||sherekhan||New Issue|
|2020-07-01 06:54||Saga Musix||Summary||Sample offset not correctly applied in Protracker module when new note is triggered without specifying sample number => OpenMPT does not enable ProTracker mode on specific MOD file|
|2020-07-01 06:56||Saga Musix||Note Added: 0004393|
|2020-07-01 06:58||Saga Musix||Note Added: 0004394|
|2020-07-01 06:58||Saga Musix||Status||new => closed|
|2020-07-01 06:58||Saga Musix||Resolution||open => no change required|