View Issue Details

IDProjectCategoryView StatusLast Update
0001631OpenMPTPlayback Compatibilitypublic2022-09-20 17:11
Reporterteimoso Assigned ToSaga Musix  
Status resolvedResolutionfixed 
Platformx64OSWindowsOS Version10
Product VersionOpenMPT / libopenmpt 0.6.5 (upgrade first) 
Target VersionOpenMPT / libopenmpt 0.6.6 (upgrade first)Fixed in VersionOpenMPT / libopenmpt 0.6.6 (upgrade first) 
Summary0001631: 'Echo DMO' fix (r17509) causes difference in non-zero delay values compared to older versions

Since the fix for 'Echo' effect plugin delay (r17509, I think), there seems to be a slight difference than before in millisecond delay for non-zero (and non-one) 'LeftDelay'/'RightDelay' parameter values:

Parameter value Displayed milliseconds* (after fix, before fix)
0.000000 1.00 ms, 0.00 ms
0.010000 20.99 ms, 20.00 ms
0.020000 40.98 ms, 40.00 ms
0.030000 60.97 ms, 60.00 ms
... ...
0.980000 1960.02 ms, 1960.00 ms
0.990000 1980.01 ms, 1980.00 ms
1.000000 2000.00 ms, 2000.00 ms

* from OpenMPT's parameter display

I recently used and noticed playback in some modules with the plugin sounded different than in and before. In many cases this isn't really noticeable but it seems certain modules, particularly those using low delay values and chords, can clearly demonstrate it.

Steps To Reproduce

I used OpenMPT and OpenMPT for comparison.

  1. Open/create a module with the 'Echo' effect plugin (in Plugin Manager, 'DirectX Media Audio Effects'/'Echo') in an OpenMPT version after the fix and before the fix.
  2. The after-fix version should display a different number of milliseconds for delay values above 0 and below 1 than the before-fix version. (It may not for very low values just above 0.)
  3. Playback of the module using the plugin may sound noticeably different between the two versions.

A test-case module in MPTM format is attached in a zip archive.

Additional Information

The delay can be changed to be equivalent to a version before the fix by decreasing the delay value by a certain amount (e.g. '0.020000' to '0.019150') so that the millisecond display is the same as the earlier version.

The sample module contains:

  • Patterns 0 & 1
  • Sample 1
  • Instrument 1 (using sample 1)
  • Plugins FX1 '0.020000 delay' & FX2 '0.019510 delay'

Pattern 0 contains a chord from instrument 1; pattern 1 slides ('Gxx') to another chord.
Plugin FX2 is bypassed; it represents plugin FX1 adjusted to match a version before the fix.

TagsNo tags attached.
Attached Files (9,639 bytes)
Has the bug occurred in previous versions?No
Tested code revision (in case you know it)


Saga Musix

Saga Musix

2022-09-15 21:10

administrator   ~0005318

The new behaviour is identical to the actual DMO implementation. Parameters can probably be fixed up for modules created with older OpenMPT versions (since DMO emulation was first introduced) during loading.

Saga Musix

Saga Musix

2022-09-20 17:11

administrator   ~0005319

Fixed in r17914.

Issue History

Date Modified Username Field Change
2022-09-15 21:04 teimoso New Issue
2022-09-15 21:04 teimoso File Added:
2022-09-15 21:10 Saga Musix Note Added: 0005318
2022-09-15 21:10 Saga Musix Assigned To => Saga Musix
2022-09-15 21:10 Saga Musix Status new => assigned
2022-09-20 17:11 Saga Musix Status assigned => resolved
2022-09-20 17:11 Saga Musix Resolution open => fixed
2022-09-20 17:11 Saga Musix Fixed in Version => OpenMPT / libopenmpt 0.6.6 (upgrade first)
2022-09-20 17:11 Saga Musix Target Version => OpenMPT / libopenmpt 0.6.6 (upgrade first)
2022-09-20 17:11 Saga Musix Note Added: 0005319