View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001520||OpenMPT||Playback Compatibility||public||2021-11-22 11:50||2021-12-04 18:45|
|Reporter||kopper||Assigned To||Saga Musix|
|Product Version||OpenMPT 1.29.14.00 / libopenmpt 0.5.13 (upgrade first)|
|Target Version||OpenMPT 1.29.15.00 / libopenmpt 0.5.14 (upgrade first)||Fixed in Version||OpenMPT 1.29.15.00 / libopenmpt 0.5.14 (upgrade first)|
|Summary||0001520: F0F0007F not disableing resonant filter|
As of a recent update, setting a macro to F0F0007F is no longer deactivating the resonant filter. This has been working for me for ages and is now corrupting some SID-styled tunes I've made in the past. The added file is recreating the issue with my custom ZXX set built in. In a version prior to, I guess at least 1.26 the third tone would have sounded exactly as the first one, without any filter applied.
|Tags||No tags attached.|
|Has the bug occurred in previous versions?|
|Tested code revision (in case you know it)|
fltr.zip (1,399 bytes)
The behaviour is correct: The filter is only supposed to be turned of if the cutoff is 127 and resonance is 0. That's how Impulse Tracker does but not how older versions of MPT did it. It has been the default behaviour since OpenMPT 1.20 for IT files. However, when importing songs made with older (Open)MPT versions, or when using the MPTM format, the legacy behaviour may be used instead. You can download older OpenMPT builds from https://download.openmpt.org/archive/openmpt/ (e.g. OpenMPT 1.23) and you will hear that they behave exactly the same on this specific file.
This is weird, I swear the "wrong" sound has just happened with a recent version, not something from years ago.
That's possible if you were e.g. using an old song as a template, because OpenMPT will generally try to keep playing modules like the version the file was created with would play it.
Yes, this should be helpful with manually crafting macros: https://wiki.openmpt.org/Manual:_Zxx_Macros
So to reset the filter resonance, append
There is one more caveat though that you may not be aware of if you were using the legacy filter mode all the time: With IT-compatible filters it's impossible to turn off the filter for a playing note, and setting the resonance 0 if the cutoff is already at 127 doesn't do anything to the current note's filter (that's not a bug, just what IT is doing :). Only the next note played on that channel will play with the filter disabled.
This seems to be the problem, I assume. I have used the F0F0007F macro to basically reset the filter on a new note, just as it was playing. Putting the macro with the added resonance command one row above does fix the issue, but that ofc means I have to change the modules. Is there a simple solution to get at least the playback to my "used" state? Like e.g. an older version of MPT or some compatibility settings? Thanks in advance.
I really cannot recommend you turning off the compatibility flag when writing in IT format because OpenMPT will be the only player interpreting the module that way. Any other IT-compatible software will play it the way Impulse Tracker would. In the MPTM format however you are free to disable the Compatibility Setting "User IT’s filter coefficients (unless extended filter range is used) and behaviour". In fact, if you create a new MPTM file this setting is disabled by default, so maybe you were already working with MPTM files before when encountering the different behaviour?
I was always using .it files ever since I've been started using MPT. That may have been the first bad choice to begin with. :D
If you think that a specific tune plays differently than it used to, please provide that tune (you can add a private note in case it's not supposed to be spread), because the example file provided definitely isn't affected by any recent changes. It's always possible that there's a bug that affects a "real" song, though, that isn't expressed by this particular example (as mentioned, I did verify that it plays exactly the same in older versions).
Just to make sure, you turned the setting off, correct? If the setting is turned off, it should absolutely behave the same with all OpenMPT versions because that code path should be essentially unmodified for the last ten years.
intro.zip (162,481 bytes)
Thanks for the example file. This was introduced in r12932 / OpenMPT 1.29.02.00 as a side effect of fixing another edge case. Guess I'll have to find a more clever way to fix it... For the record, Impulse Tracker would also turn off the filter in your track.
In fact, r12932 did break another already existing test case (really looking forward to that not happening anymore once 0001507 is in place...). r16016 now fixes both that test case and your module. Test builds will be available in a few hours from https://builds.openmpt.org/builds/ and of course the fix will be in the next stable OpenMPT version.
|2021-11-22 11:50||kopper||New Issue|
|2021-11-22 11:50||kopper||File Added: fltr.zip|
|2021-11-22 12:03||Saga Musix||Note Added: 0004916|
|2021-11-23 05:44||kopper||Note Added: 0004922|
|2021-11-23 09:27||Saga Musix||Note Added: 0004923|
|2021-11-23 17:01||kopper||Note Added: 0004925|
|2021-11-23 17:03||Saga Musix||Note Added: 0004926|
|2021-11-23 19:01||kopper||Note Added: 0004927|
|2021-11-23 20:15||Saga Musix||Note Added: 0004928|
|2021-11-23 21:42||kopper||Note Added: 0004929|
|2021-11-23 21:42||kopper||File Added: intro.zip|
|2021-11-23 22:14||Saga Musix||Note Added: 0004931|
|2021-11-23 22:14||Saga Musix||Assigned To||=> Saga Musix|
|2021-11-23 22:14||Saga Musix||Status||new => assigned|
|2021-11-24 21:11||Saga Musix||Note Added: 0004932|
|2021-11-24 21:13||Saga Musix||Status||assigned => resolved|
|2021-11-24 21:13||Saga Musix||Fixed in Version||=> OpenMPT 1.30.01.00 / libopenmpt 0.6.0 (current stable)|
|2021-11-24 21:13||Saga Musix||Target Version||=> OpenMPT 1.30.01.00 / libopenmpt 0.6.0 (current stable)|
|2021-12-04 18:45||Saga Musix||Category||Audio I/O => Playback Compatibility|
|2021-12-04 18:45||Saga Musix||Fixed in Version||OpenMPT 1.30.01.00 / libopenmpt 0.6.0 (current stable) => OpenMPT 1.29.15.00 / libopenmpt 0.5.14 (upgrade first)|
|2021-12-04 18:45||Saga Musix||Target Version||OpenMPT 1.30.01.00 / libopenmpt 0.6.0 (current stable) => OpenMPT 1.29.15.00 / libopenmpt 0.5.14 (upgrade first)|