New ZMusic from 4.13.0 breaks support for .mptm files

Is there something that doesn't work right in the latest GZDoom? Post about it here.

Moderator: GZDoom Developers

Forum rules
Please construct and post a simple demo whenever possible for all bug reports. Please provide links to everything.

If you can include a wad demonstrating the problem, please do so. Bug reports that include fully-constructed demos have a much better chance of being investigated in a timely manner than those that don't.

Please make a new topic for every bug. Don't combine multiple bugs into a single topic. Thanks!
TheShadsy
Posts: 81
Joined: Sun Apr 15, 2012 2:58 pm

New ZMusic from 4.13.0 breaks support for .mptm files

Post by TheShadsy »

The updated ZMusic library introduced in 4.13.0 no longer plays .mptm tracker files correctly. This seems to be a problem with the new libXMP module replayer.

.mptm files are an extended version of the .it tracker format. My suspicion is that libXMP is playing these as vanilla .it files, which ignores the extended .mptm features that are supported by the Dumb replayer.

See samples here: https://drive.google.com/drive/folders/ ... sp=sharing

The most noticeable example is related to tempo. While .it files have a max tempo of 255, the .mptm format allows tempos up to 1000. However, libXMP still caps the playback tempo for all .mptm files to 255, like they're .it files. The example file MUSPIZZ5.mptm has a tempo of 500; it sounds fast and frantic under the old Dumb replayer, which is how it was intended. However, it is significantly slower under libXMP because it's being capped at 255. There are other ways to set tempo that are unique to the .mptm format, such as setting the number of rows per beat, but none of those settings are supported by libXMP either.

In some cases, the notes/music playback are affected as well. The example file MUSBRI07.mptm plays correctly under the Dumb replayer, but in libXMP, notes sometimes play incorrectly or continue playing for too long, likely because they use syntax that's unique to .mptm. It should be noticeable within in the first 15-20 seconds.

I understand the benefits of switching to libXMP as the default player in GZDoom, but the current implementation breaks support for the .mptm format. It could be that libXMP does have proper support for .mptm, just that it's not implemented correctly right now in ZMusic. But in the event that .mptm is not actually supported by libXMP, is it possible to default to using the old module replayer for .mptm files specifically?

Return to “Bugs [GZDoom]”