SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

 
 
Changelog for libopenmpt-devel-0.7.8-1.0.2.1.sr20240605.x86_64.rpm :

* Sun Jun 09 2024 Mia Herkt - Update to 0.7.8:
* [Sec] Potential heap out-of-bounds read with malformed Dynamic Studio DSm files.
* MED: Additional command pages can now be read.
* MED: Echo DSP is now emulated.
* AMS: Default channel panning was broken, using all-center panning instead of MOD-style panning.
* STP: Correctly import volume slides where both nibbles are set.
* MDL: Pitch slide depth was wrong since libopenmpt 0.6.0.
* DTM: Fix pitch slide depth for samples with finetune.
* DSm: Don’t import as Amiga module (and thus allow Amig a resampler to be enabled), as this PC format can easily exceed the Amiga frequency range.
* DSm: Only the first 48 samples were ever read.
* STM / STX: Don’t set channel panning. ScreamTracker 2 only outputs mono sound.
* PSM: File header probing was stricter than actual file loader, rejecting manipulated files that would otherwise load fine.
* Sat May 25 2024 Mia Herkt - Update to 0.7.7:
* IT: Disable a few more compatibility flags for older SchismTracker builds.
* IT: Halve the output volume of files saved with ChibiTracker, as its mixer is about half as loud as ours.
* S3M: In mono mode, the ratio between sample and OPL volume was incorrect.
* S3M: Detect files saved with PlayerPRO.
* XM: Detect files saved with PlayerPRO. Improved detection of files saved with ModPlug Tracker.
* XM: Files with impossibly small pattern headers are now rejected, like FastTracker 2 does.
* STK: Loosen SoundTracker file rejection heuristics a bit to allow loading of files with malformed song titles and overly long samples. Other heuristics has been tightened a bit.
* MOD: Change VBlank timing heuristic to always assume CIA timing when long samples unsupported by original ProTracker) are found.
* MOD: Disable NoiseTracker quirks if empty sample slots have a default volume other than 0.
* MOD: 7-bit panning detection may have returned incorrect results for MODs with a channel count other than 4.
* MED: Improve handling of default tempo, panning and channel volume in files containing more than one song.
* MO3: Reduced maximum allowed music data (not samples) size from 2 GiB to 512 MiB.
* XMF: Header validation is now stricter.
* MDL: Slightly more accurate import of pattern command 9 (enabling envelopes instead of setting envelope position).
* ULT: Support the highest three octaves.
* OPL emulation could produce clicks when using a mix rate higher than 65536 Hz.
* Fri Mar 29 2024 Mia Herkt - Update to 0.7.6:
* [Sec] Potential heap out-of-bounds read or write past sample end with malformed sustain loops in SymMOD files.
* MED: Transposed samples were playing too low in some files (e.g. mix94.mmd1).
* OKT: Some files with garbage at the end were rejected (e.g. katharsis - piano lesson.okta).
* Compressor DMO: It was possible that the plugin would not behave as intended at mix rates above 500 kHz.
* Avoid re-allocating the loop state map contents on every playthrough of the module.- Run test suite during package build
* Sun Mar 17 2024 Mia Herkt - Update to 0.7.5:
* [Sec] Null-pointer write (32bit platforms) or excessive memory allocation (64bit platforms) when reading close to 4GiB of data from unseekable files..
* [Sec] Write buffer overflow when reading unseekable files close to 4GiB in size.
* [Sec] Possible out-of-memory (32bit platforms) or excessive memory allocation (64bit platforms) when reading malformed data from unseekable files.
* [Sec] DMF: Possible null-pointer write or excessive memory allocation when reading DMF files.
* IT: In the previous version, Zxx macros in IT files made with older MPT versions were no longer working.
* There was a periodic click when playing a module using the Chorus or Flanger DMO plugin at a mix rate exceeding ~136.5 kHz.
* An older bugfix for undefined behaviour in the Distortion DMO plugin was incorrect, causing the distorted sound to be different in some situations.
* xmp-openmpt: Metadata retrievel for playlist items was broken.- Changes in 0.7.4:
* [Bug] Makefile: libopenmpt 0.7.3 broke running the test suite for Emscripten builds.
* openmpt123: openmpt123 now uses a narrower layout on terminal windows with a width of less than 72 characters.
* Setting all possible load_skip flags resulted in nothing being loaded at all, instead of just not loading the selected module parts.
* When playing all subsongs, set_position_seconds didn’t always calculate the correct subsong to jump to.
* IT: A few more compatibility flags are now disabled for modules saved with earlier Schism Tracker versions.
* IT: MIDI macros were reset in IT 2.14 / 2.15 files that declared to be compatible with older IT versions (fixes spx-visionsofthepast.it).
* OKT: Work around missing negative arpeggio implementation by transposing the notes up an octave.
* OKT: Channel volume commands were sometimes lost over less important effects.
* IMF: Ignore magic bytes in sample header. “Leaving All Behind” by Karsten Koch uses unexpected magic bytes, Orpheus ignores them just like the instrument header magic bytes.
* Tue Nov 07 2023 Mia Herkt - Update to 0.7.3:
* Fix: set_pitch_factor no longer affected OPL instruments since version 0.6.0.
* Thu Jun 29 2023 Danilo Spinella - Update to 0.7.2:
* [New] MOD: Can now read modified 8-channel MOD files from the DOS game Aleshar - The World Of Ice.
* [Sec] Possible out-of-bounds read or write when reading malformed MED files. (r19389)
* [Bug] The Opal OPL3 emulator symbols were not namespaced properly.
* Mon May 08 2023 Mia Herkt - Update to 0.7.1
* IT: Improved fingerprinting of early ModPlug Tracker versions.
* XMF: Modules from Astroidea demos can now be read as well.- Changes in 0.7.0:
* [New] 667 files from Composer 667 are now supported.
* [New] GTK and GT2 files from Gramouf Tracker are now supported.
* [New] Can now read a variant of the DSMI AMF format called DMF, as found in various DOS games distributed by Webfoot (Tronic, H2O, PowBall, etc.).
* [New] DSM files from Dynamic Studio are now supported.
* [New] XMF files from the DOS game Imperium Galactica are now supported.
* [New] Can now read the hacked MOD format (DMF) from the game “Apocalypse Abyss”.
* [New] libopenmpt: New APIs for getting the current tempo as a floating point value: openmpt::module::get_current_tempo2() (C++), and openmpt_module_get_current_tempo2() (C).
* [New] C API: New stream callbacks for various platform extensions to the C stdio interface: openmpt_stream_get_file_posix_lfs64_callbacks() in libopenmpt/libopenmpt_stream_callbacks_file_posix_lfs64.h for explicit off64_t on Posix systems, openmpt_stream_get_file_posix_callbacks() in libopenmpt/libopenmpt_stream_callbacks_file_posix.h for off_t on Posix systems, openmpt_stream_get_file_msvcrt_callbacks() in libopenmpt/libopenmpt_stream_callbacks_file_msvcrt.h for 64bit file support on Windows systems with the Microsoft C runtime, and openmpt_stream_get_file_mingw_callbacks() in libopenmpt/libopenmpt_stream_callbacks_file_mingw.h for 64bit file support when targetting MinGW. The old openmpt_stream_get_file_callbacks() has been deprecated in favour of a stricly standard conforming openmpt_stream_get_file_callbacks2() in the same libopenmpt/libopenmpt_stream_callbacks_file.h header. libopenmpt/libopenmpt.h defines LIBOPENMPT_STREAM_CALLBACKS_FILE_POSIX_LFS64, LIBOPENMPT_STREAM_CALLBACKS_FILE_POSIX, LIBOPENMPT_STREAM_CALLBACKS_FILE_MSVCRT, and LIBOPENMPT_STREAM_CALLBACKS_FILE_MINGW respectively in order to allow for checking header availability.
* [New] C API: New stream callbacks for memory buffers. openmpt_stream_get_buffer_callbacks() and openmpt_stream_buffer_init() are deprecated. Use openmpt_stream_get_buffer_callbacks2() and openmpt_stream_buffer_init2() instead. The new variants do not support loading only a file prefix and checking for overflow any more. This was only useful when using the old openmpt_could_open_probability2() style interface from the libopenmpt 0.2 API, which has been superseded by openmpt_probe_file_header(), openmpt_probe_file_header_without_filesize(), and openmpt_probe_file_header_from_stream() in libopenmpt 0.3.0.
* [New] libopenmpt_ext: New interface interactive3 adding openmpt::ext::interactive3::set_current_tempo2() (C++) and openmpt_module_ext_interface_interactive3.set_current_tempo2() (C) which allow setting non-integer tempo values.
* [New] New Makefile option CONFIG=mingw-w64 which consolidates all MinGW-w64 build configurations with the following options: MINGW_FLAVOUR=[|-posix|-win32], WINDOWS_ARCH=[x86|amd64], WINDOWS_FAMILY=[|desktop-app|app|phone-app|pc-app], and WINDOWS_VERSION=[win95|win98|winme|winnt4|win2000|winxp|winxp64|winvista|win7|win8|win8.1|win10|win11].
* [New] New Makefile option CONFIG=mingw which consolidates all MinGW build configurations with the following options: MINGW_FLAVOUR=[|-posix|-win32], and WINDOWS_VERSION=[win95|win98|winme|winnt4|win2000|winxp].
* [New] Building with MSYS2 is now fully supported for Makefile and Autotools build systems.
* [New] Makefile CONFIG=djgpp now supports CPU= option to build optimized for a particular CPU. See build/make/config-djgpp.mk for all available options. FLAVOURED_DIR=1 places the CPU-specific optimized builds in separate folders below bin/.
* [New] Building with a MinGW32 CRTDLL toolchain is now supported via Makefile option CONFIG=mingw32crt.
* [New] Makefile now uses PKG_CONFIG as path to pkg-config.
* [New] The C++ API is now also enabled for Emscripten builds by default.
* [New] Support for GCC 7 has been restored.
* [New] Support for Clang 6 has been restored.
* [New] Support for Android NDK 18 has been restored.
* [New] openmpt123: --banner [0|1|2] allows changing the openmpt123 banner style to hidden, shown, or verbose, respectively.
* [New] openmpt123: --assume-terminal allows skipping the openmpt123 terminal check, and thus allows running the UI with non-terminal stdin, which can be useful for some very basic remote control functionality.
* [Change] xmp-openmpt: The Amiga resampler emulation is now enabled by default.
* [Change] in_openmpt: The Amiga resampler emulation is now enabled by default.
* [Change] The official Windows builds (x86, amd64, arm, arm64) now require Windows 10 21H2 (or later). The official legacy Windows builds (x86-legacy, amd64-legacy) are unchanged and still require Windows 7 (or later).
* [Change] \"date\" metadata will now exlude the UTC time zone signifier Z if the precise time zone is unknown.
* [Change] ctl seek.sync_samples now defaults to 1.
* [Change] Makefile CONFIG=generic is gone. Please use CONFIG=standard instead.
* [Change] Makefile CONFIG=macosx and CONFIG=haiku have been removed. The OS is auto-detected.
* [Change] Makefile options CONFIG=mingw64-win32, CONFIG=mingw64-win64, CONFIG=mingw64-winrt-x86, CONFIG=mingw64-winrt-amd64, and CONFIG=mingw-win9x have been replaced by CONFIG=mingw-w64, and CONFIG=mingw.
* [Change] Autotools now default to C++20 and only fall back to C++17 when C++20 is not supported.
* [Change] Makefile now defaults to C++20 and only falls back to C++17 when C++20 is not supported by the compiler.
* [Change] Makefile now defaults to C17 and only falls back to C11 when C17 is not supported by the compiler.
* [Change] Makefile CONFIG=djgpp option USE_ALLEGRO42 now defaults to 1 and implies building a liballegro42 locally. This requires executing build/download_externals.sh before building to download the liballegro42 sources.
* [Change] in_openmpt: The Winamp input plugin in_openmpt is now deprecated for use with the latest Winamp or WACUP releases. Please use the native implementations available in Winamp >=5.9.0 or WACUP instead. This does not mean that in_openmpt/in_mod will not receive further development, it just means that the responsibility now lies with the player implementors themselves. We will still maintain the status quo of our in_openmpt input plugin for users of earlier Winamp version, or users on older systems, or users of compatible players.
* [Change] The POSIX fd file callbacks implementation now handles EINTR and retries the read() call.
* [Regression] Full support for Visual Studio 2017 has been removed. We still support targeting Windows XP with Visual Studio 2017.
* [Regression] Support for mingw-std-threads has been removed. If you require a thread-safe libopenmpt, please build with POSIX threading model and/or complain to MinGW/GCC about not properly supporting C++11 features in 2023.
* [Regression] Support for Emscripten versions older than 3.1.1 has been removed.
* [Regression] C API: openmpt_stream_get_file_callbacks() used to provide 64bit file access on some platforms where long is 32bit. This never worked reliably for all platforms though. The behaviour is now changed to always stick to what standard C supports with fseek and ftell, where the offset type is long. openmpt_stream_get_file_callbacks() is deprecated now due to behavioral change. Please migrate to openmpt_stream_get_file_callbacks2().
* [Regression] Using the system-provided liballegro42 is no longer supported. The option BUNDLED_ALLEGRO42=1 does not exist any more.
* Reduced aliasing when downsampling with the Sinc + Low-Pass resampler.
* The sample position is now rounded instead of truncated when resampling without interpolation.
* Seeking with sample sync now supports portamento up / down commands as well as IMF/ PTM note slides. Tone portamento is now synchronized correctly when seeking in DBM, 669 and MED with fast slides (first tick of portamento was previously not executed).
* The filter cutoff frequency is no longer rounded to integer frequency values.
* MED: Tempos higher than 255 BPM can now be imported in pattern data.
* MED: MMD1 files with more than 16 channels are now supported.
* ULT: Import 8-bit volume commands with full precision.
* IT: Initial “last note memory” of every channel is C-0, so a lone instrument number without note triggers that note.
* S3M: Better approximation of old “stereo control” SAx command used in Purple Motion’s PANIC.S3M.
* S3M: In ScreamTracker 3.03 and later, OPL notes with tone portamento next to them are delayed until the next row and then the new pitch is used instantly.
* MO3: Envelope sustain was not imported correctly if the source file was an XM.
* MOD: Lone instrument number with retrigger effect swap sample immediately.
* Recalling a sample’s default volume using an instrument number (as opposed to regular volume commands) previously ramped the volume change smoothly over a whole tick. Now the user-configured ramp settings are used instead (as it would happen when using a volume command to achieve the same effect).
* Tue Apr 18 2023 Antonio Teixeira - Update to 0.6.10
* [Bug] File probing and loading results could be inconsistent for SFX files, so that probing could claim that a file is definitely not playable even if it would be.
* MOD: VBlank heuristics are now applied to MOD files with M!K! signature. Fixes mod.siedler ii.
* NoiseTracker MODs are now always played with VBlank timing.
* MED: Add support for default instrument pitch.
* MED: Global play transpose value was not considered for MMD0 files.
* 669: Reject files with lots of control characters in song message.
* mpg123: Update to v1.31.3 (2023-03-19).
* Wed Mar 29 2023 Mia Herkt - Update to 0.6.9
* [Bug] An exception could be thrown during rendering when trying to access the release node of an empty envelope.
* The fix for the OPL cutoff bug introduced in libopenmpt 0.6.7 was incomplete.
* ULT: Offset commands exceeding 65535 samples were sometimes not imported correctly even if there was room for them.
* After seeking with seek.sync_samples=1, the filter settings of playing notes were not updated since libopenmpt 0.6.7.
* Loading of and seeking inside (malformed) modules with thousands of short sub-songs has been sped up.
* Sat Feb 04 2023 Dirk Müller - update to 0.6.8:
* [Bug] DSYM: Loading DSYM files got broken in 0.6.7.
* When seeking around in a module, the tempo was sometimes incorrectly limited to 255 BPM
* Initial instrument cutoff was broken for OPL instruments in libopenmnpt 0.6.7
* mpg123: Update to v1.31.2
* Mon Jan 09 2023 Mia Herkt - Update to 0.6.7
* IT: In sample mode, portamento to a different sample turns off the filter if cutoff / resonance was previously 127 / 0.
* S3M Detect files saved with Graoumf Tracker instead of claiming they were made with OpenMPT 4.47.
* S3M: Pattern loop state was not propagated anymore since libopenmpt 0.6.0, leading to wrong song length calculation and SB0 + SBx being located on different channels not working properly anymore.
* Thu Sep 29 2022 Mia Herkt - Update to 0.6.6
* [Sec] Possible crash when playing manipulated IT / MPTM files with a T00 command.
* MTM: In MultiTracker, setting speed and tempo are mutually exclusive commands. Still, some MultiTracker modules were made to be played with external players such as DMP, so they actually rely on “standard” speed / tempo behaviour. Decide which behaviour to use by checking of speed and tempo commands are found on the same row.
* MTM: Ignore sample loops if the loop end is <= 2.
* Echo DMO: Migrate left and right delay values in modules made with OpenMPT versions between 1.27.01.00 and 1.30.05.00 to the correct interpretation.- Changes in 0.6.5:
* [Bug] Makefile now also uses CC, CXX, LD, and AR when set as environment variables.
* [New] Makefile now uses PKG_CONFIG as path to pkg-config.
* DBM: Sample middle-C frequencies were slightly off. laffik_-_marynarze.dbm sounds much more bearable now.
* DBM: Fixed pattern break parameter interpretation.
* Echo DMO: Setting the delay parameter to 0 yielded a 2-second echo delay instead of 1ms.
* Digi Booster Echo: Setting the delay parameter to 0 yielded a 510ms echo delay instead of approximately 334ms.
* Wed Jun 15 2022 Mia Herkt - Update to 0.6.4
* Fix: Ping-pong sample loops sometimes stopped playing at the end of the loop.
* Mon May 16 2022 Danilo Spinella - Update to 0.6.3:
* Pitch / Pan Separation and Random Variation instrument properties were not resetting properly when seeking, potentially causing instruments to be played e.g. at a vastly different pan position compared to playing the module continuously.
* MED: Stereo samples were not imported correctly.
* Thu Mar 31 2022 Danilo Spinella - Update to 0.6.2:
* [
*
*Sec
*
*] Possible out-of-bounds write in malformed IT / XM / MPTM files using the internal LFO plugin. (r17076)
* [
*
*Sec
*
*] Possible out-of-bounds read when using Amiga BLEP interpolation with extremely high-pitched notes. (r17078, r17079)
* ISO-8859-1-related charsets from Amiga OS and RISC OS are now handled more accurately, thus avoiding some unwanted control characters.
* MO3: Pattern indices 254 / 255 were not treated as playable patterns even if the original file was a MOD / XM.
* Correctly apply ST3-style effect memory when seeking in S3M files.
* Command S (S3M / IT style) effect memory was not applied when seeking.
* Initial channel mute status was not reported correctly in `get_channel_mute_status` since libopenmpt 0.6.0.- Fix build on Leap by using GCC-11 as charconv header is only included from GCC-8 onwards
* Mon Jan 31 2022 Mia Herkt - Update to 0.6.1:
* [Bug] Possible hang with malformed DMF, DSM, MED, MUS, OKT and SymMOD files containing 65536 or more patterns when destroying the module.
* [Bug] Avoid NaNs and infinite values with custom tunings and in the I3DL2Reverb plugin.
* MIDI macros are now evaluated when seeking.
* The letter “z” is now evaluated in fixed MIDI macros (Z80…ZFF) the same way as in Impulse Tracker.
* MOD: Loosened VBlank timing heuristics so that “frame of mind” by Dascon plays correctly.
* MOD: Validate the contents of “hidden” patterns beyond the end of the order list when the file size matches the expected size when only taken “official” patterns into account. This fixes Shofixti Ditty.mod from Star Control 2 while keeping other (partly broken) modules working.
* MED: Command 20 (reverse sample) is now only applied when it’s next to a note.
* S3M: Introducing the “Send OPL key-off when triggering notes” compatibility setting broke retrigger for OPL notes again (they retriggered rather than not retriggering).
* S3M: Retriggering a note no longer resets its pitch after a portamento.
* S3M: Partially implement retrigger behaviour for stopped notes in SoundBlaster mode: Like in IT, it is not possible to retrigger a sample that has already stopped playing.
* DIGI: Improve compatibility with E3x reverse sample command.
* DSym: Tempos < 32 were treated as tempo slides.
* SymMOD: Key-off command was not implemented properly.- Changes in 0.6.0:
* [New] MUS files from Psycho Pinball and Micro Machines 2 are now supported.
* [New] SymMOD files created with Symphonie / Symphonie Pro are now supported.
* [New] FMT files created with Davey W Taylor’s FM Tracker are now supported.
* [New] DSYM files created with Digital Symphony are now supported.
* [New] STX files (transitional format between Scream Tracker 2 and 3) are now supported.
* [New] TakeTracker MODs with TDZ1 to TDZ3 magic bytes are now supported.
* [New] libopenmpt_ext: New interface interactive2 adding openmpt::ext::interactive2::note_off(), openmpt::ext::interactive2::note_fade(), openmpt::ext::interactive2::set_channel_panning(), openmpt::ext::interactive2::get_channel_panning(), openmpt::ext::interactive2::set_note_finetune(), and openmpt::ext::interactive2::get_note_finetune() (C++) and openmpt_module_ext_interface_interactive2.note_off(), openmpt_module_ext_interface_interactive2.note_fade(), openmpt_module_ext_interface_interactive2.set_channel_panning(), openmpt_module_ext_interface_interactive2.get_channel_panning(), openmpt_module_ext_interface_interactive2.set_note_finetune(), and openmpt_module_ext_interface_interactive2.get_note_finetune() (C).
* [Change] libopenmpt no longer generates internal interpolation tables on library load time, but instead only on first module load time.
* libopenmpt can now detect infinite pattern loops and treats them as the song end. This means that setting a repeat count other than -1 now always guarantees that playback will eventually end. The song loop counter is decremented each time it ends up at the start of the infinite loop, so the song does not restart from the beginning even if the repeat count is not 0.
* openmpt::module::set_position_seconds() accuracy has been improved for modules with pattern loops.
* Samples played at the wrong volume when rendering modules in mono.
* IT: Portamentos in files with Linear Slides disabled are now more accurate.
* IT: Pitch/Pan Separation was affected by note-off commands, and wasn’t reset by panning commands like in Impulse Tracker.
* IT: Even after libopenmpt 0.5.14 the filter reset logic was still not 100% identical to Impulse Tracker: A note triggered on tick 0 of a row with a Pattern Delay effect still caused the filter to be reset on repetitions of that row even though the note wasn’t retriggered.
* IT: Added read-only support for BeRoTracker commands 1 and 2 (equivalent to XM commands K and L).
* XM: BeRoTracker saves smooth MIDI macros in a different way from OpenMPT. This command is now imported correctly.
* XM: Emulate FT2 Tone Portamento quirk that inverts portamento direction after the target was reached (if target note was higher than previous note).
* S3M files saved with Impulse Tracker and latest Schism Tracker now also compute sample playback speed in Hertz.
* Depending on whether an S3M file was last saved in Scream Tracker with the Sound Blaster or Gravis Ultrasound drivers loaded, different compatibility flags are now applied. For files saved with the GUS, the sample volume factor is now also ignored (fixes volume levels in S3Ms made on the GUS, in particular if they use both samples and OPL instruments).
* S3M: Enforce the lower frequency bound.
* MOD: Loosened VBlank timing heuristics so that the original copy of Guitar Slinger from Dizzy Tunes II plays correctly.
* FAR: Correct portamento depth is now used.
* DMF / IMF: Improved accuracy of finetune commands.
* MDL: Implemented finetune command.
* OKT: Various accuracy improvements such as: Sharing volume between mixed channels, volume commands on mixed channels are permanent (not reset with new notes), mixed channels do not support default sample volume, 7-bit samples are actually supposed to be played as-is (not amplified to full 8-bit range), reject speed command parameters >= 20.
* Thu Dec 23 2021 Mia Herkt - Update to 0.5.14:
* [Sec] Possible out-of-bounds read in Chorus plugin with NaN plugin parameters. Most implementations of the “fast math” compiler optimizations will prevent this crash but it is not guaranteed. (r16096)
* [Bug] Fixed undefined behaviour with custom tunings found with ubsan.
* OPL: Improved channel allocation strategy when there are lots of faded-out notes.
* MOD: Digital Tracker MODs have four unknown bytes right after the magic bytes which seem to be ignored even by Digital Tracker itself. Just skip over them.
* The logic when to turn off the resonant filter was broken in some edge cases since libopenmpt 0.5.1.
* IMF: Implemented XE1-XE3 commands, which disable individual envelopes. Command Nxy (cutoff slide + resonance) is now also partially supported (only resonance for now).
* IMF: Filter envelopes were upside down.
* MTM: Omitting pattern loading through the load.skip_patterns ctl caused sample data to be corrupted.
* S3M: Ignore O00 commands in files created with Scream Tracker 3.00 and 3.01, as this command only gained effect memory in version 3.03.
* STM: Use S3M-like sample swap behaviour.
* XM: Disable arpeggio quirk for XMs made with Skale Tracker. Fixes KAPTENFL.XM.
* Wed Dec 01 2021 Danilo Spinella - Update to 0.5.13:
* [Bug] Fixed various undefined behaviour found with ubsan.
* IMF: Change envelope interpretation to be more like in XM instead of IT and tighten header validation.
* MED: Some samples had a ping-pong loop when there should be no loop at all.
* MT2: Ignore incorrect drums chunk size in early MT2 files (fixes e.g. “A little Rock” by Csumi).
* MT2: Work around initial master volume of 0 used in some files that apply a fade-in a the song start using track automation that would stay silent forever otherwise (track automation is currently not supported).
* OKT: Apply portamento on every tick.
* mpg123: Update to v1.29.2 (2021-10-23).
* Fri Oct 22 2021 Danilo Spinella - Update to 0.5.12:
* [Sec] Possible crash when loading malformed MDL files. (r15603)
* [Bug] Fixed various undefined behaviour found with ubsan.
* Seeking with sample sync sometimes didn’t compute the correct sample position with pingpong-looped samples.
* IT: Tremor command I11 erroneously behaved like I00 (use previous parameter) unless IT Old Effects were enabled.
* PTM: Panning was translated wrong in some edge cases.
* IMF / PTM: Note Slide commands were sometimes slightly off.
* OKT: Better support for fine note slides.
* DBM: Echo enable effect parameter range checks were incorrect.
* XM: Sample texts in XMs made with MadTracker are now also decoded using Windows-1252 encoding.
* in_openmpt: Song metadata is no longer reverted when viewing file info.
* mpg123: Update to v1.29.0 (2021-09-06).
* Mon Aug 23 2021 Mia Herkt - Update to 0.5.11:
* [Sec] Possible crash with malformed modules when trying to access non-existent plugin slots FX251-FX255.
* [Sec] Possible read beyond sample start after swapping to a sample with loop points set but not loop enabled.
* [Sec] Fixed various possible crashes with malformed MMCMP files.
* [Sec] MED: Possible read past end of sequence name (stack-allocated, so relatively unlikely to result in a crash).
* Fixed excessive memory usage with files claiming to have an extremely high rows per beat count while also using tempo swing. Maximum rows per beat are now limited to 65536.
* STP: Avoid creating thousands of patterns when loading malformed files even though no more pattern data can be read.
* Sun Jul 11 2021 Mia Herkt - Update to 0.5.10:
* S3M: Honor the Stereo flag not being set. This improves the sound of some tunes like Turbulence by Purple Motion.
* S3M: Detect MPT 1.0 alpha versions which didn’t set the Stereo flag. In this case, the unset Stereo flag is also ignored because MPT 1.0 alpha used the default S3M channel panning anyway.
* S3M: Only for OPL instruments the high sample rate bits should be ignored; for PCM instruments they are clamped to 65535 Hz.
* MOD: Do not apply ProTracker loop length quirk to MODs that could have been made with Scream Tracker (fixes Soul-O-Matic by Purple Motion).
* AMF (DSMI): Format revisions 1 and 9, as well as early (technically malformed) revision 10 files, are now supported. Surround panning commands and instrument number without note are now converted correctly.
* AMF (DSMI): Patterns and samples were not read correctly in some files (e.g. AVOID.AMF).
* GDM: Correctly import extra-fine portamentos.
* Wed Jun 23 2021 Mia Herkt - Update to 0.5.9:
* The retrigger effect didn’t work correctly for OPL instruments in some cases depending on the chosen output sample rate.
* S3M: Emulate IT short sample retrigger quirk in S3M files saved with Impulse Tracker and Schism Tracker.
* ProTracker 3.6 doesn’t support sample swapping. It is now disabled when loading a ProTracker 3.6 IFF module.
* Some files with “hidden” garbage patterns were not played correctly since libopenmpt 0.5.3.
* MOD: E9x retrigger now works the same way as in ProTracker 2.
* MDL: Improve auto-vibrato accuracy.
* 669: Reject files that contain any pattern tempo higher than 15.
* Reduce memory consumption of malformed XPK-compressed files.
* Tue Apr 20 2021 Mia Herkt - Update to 0.5.8:
* [Sec] Possible null-pointer dereference read caused by a sequence of openmpt::module::read, openmpt::module::set_position_order_row pointing to an invalid pattern, and another openmpt::module::read call. To trigger the crash, pattern 0 must not exist in the file and the tick speed before the position jump must be lower than the initial speed of the module.
* [Bug] libopenmpt 0.5.7 broke seeking in some subsongs.
* The built-in LFO plugin did not load the correct initial LFO frequency.
* IT command S7x (instrument control) is now supported when seeking with sample sync enabled.
* libopenmpt_ext play_note was cutting of channels even when there were plenty of free channels to use.
* Sat Mar 20 2021 Mia Herkt - Update to 0.5.7:
* [Sec] Possible null-pointer dereference read caused by a sequence of openmpt::module::read, openmpt::module::set_position_seconds with a position past the song end, and another openmpt::module::read call.
* IT: Instrument / sample panning was reset on note-off / fade commands.
* IMF: Set Finetune is now implemented correctly.
* Fixed excessive memory consumption with malformed files in various formats.
* Sun Mar 14 2021 Mia Herkt - Update to 0.5.6:
* AMS: Avoid allocating excessive amount of memory for compressed song message in malformed files.
* S3M: Some samples or OPL patches were imported with a too high sample rate if module was saved with Scream Tracker 3.
* Tue Feb 02 2021 Mia Herkt - Update to 0.5.5:
* [Bug] stb_vorbis: Fix decoding of Vorbis streams without comments which affected most Vorbis samples since stb_vorbis v1.20.
* openmpt::ext::interactive::set_pitch_factor wasn’t applied to OPL voices.
* OPL channel state (in particular current patch) is now updated when seeking.
* The FT2 tremolo quirk is now also applied to MOD files. FT2 just copied the quirky code from ProTracker!
* DMF: Preserve effects better in some situations where there is more than one effect in a pattern cell.
* DMF: Improve import of finetune effect with parameters larger than +/-15.
 
ICM