What's new in WildMIDI 0.4.6
Apr 11, 2024
- A lot of player cleanup and refactoring, thanks to initial work by Azamat H. Hackimov, with addition of several safeguards and minor fixes.
- Ability to choose which audio output backends to include in the build system: see the cmake script for the relevant WANT_??? options. Player's --help command line switch lists the available backends.
- New native audio output backends for player: coreaudio for macOS, sndio for OpenBSD, netbsd (sunaudio) for NetBSD.
- Improved pkg-config file generation in cmake script (bug #236).
- Workaround a link failure on AmigaOS4 with newer SDKs (bug #241).
- Other minor source clean-ups.
- CMake project clean-ups. Cmake v3.4 or newer is now required.
New in WildMIDI 0.4.5 (Jan 14, 2023)
- Fixed MUS drum channels 9 and 15 being swapped if the same file is played twice from the same memory buffer (bug #234).
- Player: Fixed save midi reading wrong argv if there are no path seperators (bug #227).
- Other code and build system clean-ups.
New in WildMIDI 0.4.4 (Mar 22, 2021)
- Fixed integer overflow in midi parser sample count calculation (bug #200).
- Fixed 8 bit ping pong GUS patch loaders (bug #207).
- Fixed wrong variable use in reverb code (bug #210).
- Reset block status of tty after playback (bug #211).
- Fixed broken file name handling for 'save as midi' command during playback.
- Clamp MUS volume commands (PR #226).
- CMake project improvements (bugs: #214, #216, #217, #218) - cmake version 3.1 or newer is now required.
New in WildMIDI 0.4.3 (Nov 24, 2018)
- New API addition: WildMidi_InitVIO(). It is like WildMidi_Init(),
- but tells the library to use caller-provided functions for file IO.
- See wildmidi_lib.h or the man page WildMidi_InitVIO(3) for details.
- This was suggested and implemented by Christian Breitwieser.
- Fixed Visual Studio optimized builds (bug #192, function ptr issue.)
- Fixed a thinko in one of the buffer size checks added in v0.4.2.
- Fixed possible out of bounds reads in sysex commands (bug #190).
- Fixed invalid reads during config parse with short patch file names.
- Do not treat a missing end-of-track marker as an error for type-0
- midi files (bug #183).
- Fixed bad reading of high delta values in XMI converter (bug #199).
- Fixed a memory leak when freeing a midi (bug #204).
- Fixed slurred/echoy playback at quick tempos on looped instruments
- (bug #185).
- Fixed certain midis sounding different compared to timidity, as if
- instruments not turned off (bug #186).
- Fixed compilation on systems without libm.
- Support for RISC OS, Nintendo Switch and PS Vita.
- Several clean-ups.
New in WildMIDI 0.4.2 (Nov 21, 2017)
- Fixed CVE-2017-11661, CVE-2017-11662, CVE-2017-11663, CVE-2017-11664
- (Bug #175).
- Fixed WildMidi_Open() might read beyond buffer with too short inputs
- (Bug #178).
- Fixed a buffer overflow during playback with malformed midi files
- (Bug #180).
- GUS patch processing changes to meet users expectations (Bug #132).
- Worked around a build failure with newer FreeBSD versions failing to
- retrieve the ONLCR constant (Bug #171).
- Fixed a minor Windows unicode issue (PR #170).
- A few other fixes / clean-ups.
New in WildMIDI 0.3.8 (Jan 27, 2015)
- Library: Fixed a seek-to-0 bug in order to cure an issue of truncated start
- Player, OpenAL: reduced buffers from 8 to 4 so as to cure some output delay issues
New in WildMIDI 0.3.7 (Jun 2, 2014)
- Plug a memory leak in case of broken midis.
- Properly reset global state upon library shutdown.
- Support for type-2 midi files.
- Fix a possible crash in WildMidi_SetOption.
- DOS port: Support for Sound Blaster output in player.
- Uglify the library's private global variable and function names.
- Build: Add option for a statically linked player.
- Build: Add headers to project files. Use -fno-common flag.
- Other small fixes/clean-ups.
New in WildMIDI 0.3.6 (Apr 5, 2014)
- Fix some portability issues.
- Fix a double-free issue during library shutdown when several midis were alive.
- Fix the invalid option checking in WildMidi_Init().
- Fix the roundtempo option which had been broken since its invention in 0.2.3.5 (WM_MO_ROUNDTEMPO: was 0xA000 instead of 0x2000.)
- Fix cfg files without a newline at the end weren't parsed correctly.
- Handle cfg files with mac line-endings.
- Refuse loading suspiciously long files.
New in WildMIDI 0.3.5 (Mar 27, 2014)
- Greatly reduced the heap usage (was a regression introduced in 0.2.3)
- OpenAL support: Fixed audio output on big-endian systems. Fixed audio skips at song start.
- OSS support: No longer uses mmap mode for better compatibility. This gains us NetBSD and OpenBSD support.
- Worked around an invalid memory read found by valgrind when playing Beethoven's Fur Elise.rmi at 44100 Hz using the old MIDIA patch-set from 1994.
- Build fixes for MSVC. Revised visibility attributes usage.
New in WildMIDI 0.3.4 (Feb 26, 2014)
- DOS DJGPP support: This goes a long way to helping other DOS based applications like UHexen2.
- MinGW support: This gains us win32 and win64 support using this toolchain.
- New portable file and path-name system to handle cross-platform support.
- Many bug fixes, code clean-ups and cosmetic fixes.
New in WildMIDI 0.3.3 (Feb 26, 2014)
- default to hidden visibility and only export our API functions
- windows lean and mean to help compile times on Windows
New in WildMIDI 0.3.2 (Feb 26, 2014)
- Now with Microsoft Visual Studio support.
New in WildMIDI 0.2.3.5 (Dec 6, 2011)
- Fixed Various build issues.
- Cleaned up internal MIDI Storage
- Fixed missing config.h includes
- Fixed critical error with sysex parsing
- Added multiple drum track support via sysex event
- Added total_midi_time in WildMidi_GetInfo structure to return the total time stated by the midi
- Fixed approx_total_samples in WildMidi_GetInfo structure to more accurately display the expected playing time.
- Messed with the reverb a little while looking for something to do
- Fixed and adjusted samples per delta calculations.
- Added WM_MO_WHOLETEMPO, which will ignore fractional parts of a temp, and WM_MO_ROUNDTEMPO, which will round fractional parts of a tempo, options to WildMidi_Init.
New in WildMIDI 0.2.3.4 (Jul 31, 2010)
- A critical release that fixes a bug that could make the library to continue processing well beyond the end of the midi.