View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001542 | OpenMPT | File Format Support | public | 2022-01-09 02:47 | 2024-06-09 11:35 |
Reporter | Lachesis | Assigned To | |||
Priority | low | Severity | minor | Reproducibility | always |
Status | new | Resolution | open | ||
Platform | x64 | OS | Windows | OS Version | 10 |
Product Version | OpenMPT 1.30.01.00 / libopenmpt 0.6.0 (upgrade first) | ||||
Summary | 0001542: STM patterns >=count, <64 should be treated as valid empty patterns. | ||||
Description | 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. | ||||
Tags | No 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 |
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. |
|||||||||||||||||||||||||||||||||||||||||||
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. |
|||||||||||||||||||||||||||||||||||||||||||
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. |
|||||||||||||||||||||||||||||||||||||||||||
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.
IIRC there are also other formats that support these (XM?) that may also need to be checked for the same thing. |
|||||||||||||||||||||||||||||||||||||||||||
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): https://www.un4seen.com/forum/?topic=15448.msg142890#msg142890 |
|||||||||||||||||||||||||||||||||||||||||||
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 |