View Issue Details

IDProjectCategoryView StatusLast Update
0001542OpenMPTFile Format Supportpublic2024-06-09 11:35
ReporterLachesis Assigned To 
Status newResolutionopen 
Platformx64OSWindowsOS Version10
Product VersionOpenMPT / libopenmpt 0.6.0 (upgrade first) 
Summary0001542: STM patterns >=count, <64 should be treated as valid empty patterns.

Several STM modules rely on referencing patterns higher than the advertized pattern count as blank patterns. Note patterns >=64 are invalid and behave unpredictably in Scream Tracker 2.

Steps To Reproduce

Load this module in OpenMPT. Order 16 references pattern 8, which will be greyed out. Playback skips it instead of playing a blank pattern. In Scream Tracker 2, this order is valid and will play correctly.

TagsNo tags attached.
Has the bug occurred in previous versions?Yes.
Tested code revision (in case you know it)


related to 0000765 new Auto-trim tracks for libopenmpt 


Saga Musix

Saga Musix

2022-01-09 13:39

administrator   ~0004980

This is an issue with many formats; typically it doesn't really affect playback (apart from silence being cut short at the end) so I didn't give it the attention it probalby deserves so far. We probably have to create non-existing patterns for most, if not all formats, but should probably not do so for files created with (older version of?) OpenMPT as that may change playback semantics.

Saga Musix

Saga Musix

2022-01-09 16:04

administrator   ~0004984

Last edited: 2022-01-09 16:06

I don't think I'd want to implement this before 0000765 is implemented, since most of the time when such non-existent empty patterns are encountered, they are supposed to be silent patterns at the end of the song. Giving libopenmpt users the optional possibility to automatically trim that silence would make it easier to justify creating those empty patterns.



2022-01-09 17:42

administrator   ~0004985

I'd even argue adding empty pattern at the end makes almost never sense for libopenmpt. There is the very remote case of a long sample getting played at the end, but the amount of annoyance it would cause for the "let's just play silence forever" modules maybe outweighs it completely. We will probably need to check a large sample size of modules for how common either case has been in practice to consider it for libopenmpt at all. This is less of a problem for OpenMPT of course.



2022-01-26 11:24

reporter   ~0005015

I thought I already put a list of these together for MikMod, but apparently not. I found 25 STMs from ModLand that use these patterns, all at the end. As it so happens, that "very remote case" is over half of them :). These range from very short to playing for the entire duration of the blank pattern.

Module Description
- unknown/alien.stm
- unknown/andrzej s.1.stm Three different blank patterns at the end...
- unknown/another face.stm
- unknown/axel f.stm
- unknown/barbarian.stm Sample continues into blank pattern.
- unknown/cool.stm Samples (barely) continue into blank pattern.
- unknown/every body.stm Sample (barely) continues into blank pattern.
- unknown/jimmy.stm
- unknown/master of puppets.stm Samples continue into blank pattern.
- unknown/moon gate.stm Samples continue into blank pattern.
- unknown/neverending story.stm
- unknown/northstar-titan.stm
- unknown/queen.stm
- unknown/the call of ktulu.stm Samples continue into blank pattern.
- unknown/this was the dream.stm Sample continues into blank pattern.
Ant P/boom i music.stm
CC Catch/eurolight orchestra.stm
CC Catch/lancer-shines.stm Sample continues into blank pattern.
CC Catch/who am i.stm Sample (barely) continues into blank pattern.
Rauno/dogs.stm Samples continue into blank pattern.
Skaven/hevijanis istu maas.stm Sample continues into blank pattern.
Skaven/kingdom of knowledge.stm Sample continues into blank pattern.
Skaven/life cycle.stm
Skaven/the noble knight.stm Sample continues into blank pattern.
Trade Master/the universal ones (a space age melody).stm Sample continues into blank pattern.

IIRC there are also other formats that support these (XM?) that may also need to be checked for the same thing.

Saga Musix

Saga Musix

2024-06-09 11:35

administrator   ~0005967

Here's an XM file where the fadeout of the final notes is cut off due to the missing empty pattern (plus the absence of this pattern causes an issue with libopenmpt's end-of-song handling):

Issue History

Date Modified Username Field Change
2022-01-09 02:47 Lachesis New Issue
2022-01-09 13:39 Saga Musix Note Added: 0004980
2022-01-09 16:03 Saga Musix Relationship added related to 0000765
2022-01-09 16:04 Saga Musix Note Added: 0004984
2022-01-09 16:06 Saga Musix Note Edited: 0004984
2022-01-09 17:42 manx Note Added: 0004985
2022-01-26 11:24 Lachesis Note Added: 0005015
2024-06-09 11:35 Saga Musix Note Added: 0005967