View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001541||OpenMPT||File Format Support||public||2022-01-09 02:34||2022-01-26 02:28|
|Product Version||OpenMPT 1.30.01.00 / libopenmpt 0.6.0 (upgrade first)|
|Summary||0001541: Farandole Composer tempo and effects are wrong :-(|
OpenMPT notably gets quite a few Farandole Composer effects wrong, like every other player (until recently libxmp and sort-of MikMod). I haven't thoroughly checked these to see which ones are properly supported or not, so here's a general description of all of the effects. If libxmp or MikMod or libmodplug are any indicator, OpenMPT probably gets most of them wrong. The bad support is unfortunate as FAR is an interesting format with several genuinely very good modules that rely on these effects.
Here's a Gist with an in-depth description of the mechanics of each effect that I wrote. This was mainly compiled from discussion on a FAR patch for MikMod. I also had the foresight to more accurately document which issues affected OpenMPT and which modules were good examples to compare against. I've also attached the effects test module I used to fix these in libxmp.
See "Additional Information" for libxmp links, and some sample modules. They should also be of use.
|Steps To Reproduce|
Try to play any of the FAR modules below in OpenMPT.
The Gist references other modules that can all be found on ModLand as well.
|Tags||No tags attached.|
|Has the bug occurred in previous versions?||This mostly dates back to Modplug 1.16, I think?|
|Tested code revision (in case you know it)|
far_effects.far.zip (27,570 bytes)
Note that as with many imported formats, libopenmpt gets some of these things right while OpenMPT doesn't, because it doesn't have to convert stuff to MOD/XM/S3M/IT (again issue 0001456 comes into mind). For example the portamentos should already work. All of the tempo stuff is probably a lot harder to get right though..
I think it's worth noting that FAR tone portamento and slide-to-volume very much rely on working FAR tempo tracking: see amazon dawn.far, which although I haven't checked libopenmpt, didn't work correctly in libxmp when I implemented that effect the way the lying documentation claims it works. If the effect actually completed in the number of rows specified by the parameter, the math would use current tick per row count (
(If that wasn't bad enough, slide-to-volume uses an increment that's twice what it should be to match tone portamento rate, and you can trick FAR into dividing by zero here thanks to the sketchy fine tempo bounding...)