Bug-fix and maintenance update after the previous version 0.4.4.
All users of wildmidi-0.4.x are encouraged to upgrade.
What's new in 0.4.5:
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
separators (bug #227).
Other code and build system clean-ups.
All checksums have been double-checked against existing RMD160 and
SHA512 hashes.
The following distfiles couldn't be fetched (possibly they are fetched
conditionally):
./audio/freeswitch-sounds-ru/distinfo freeswitch/freeswitch-sounds-ru-RU-elena-32000-1.0.13.tar.gz
./audio/freeswitch-sounds-ru/distinfo freeswitch/freeswitch-sounds-ru-RU-elena-48000-1.0.13.tar.gz
./audio/freeswitch-music/distinfo freeswitch/freeswitch-sounds-music-32000-1.0.8.tar.gz
./audio/freeswitch-music/distinfo freeswitch/freeswitch-sounds-music-48000-1.0.8.tar.gz
./audio/freeswitch-sounds-fr/distinfo freeswitch/freeswitch-sounds-fr-ca-june-32000-1.0.18.tar.gz
./audio/freeswitch-sounds-fr/distinfo freeswitch/freeswitch-sounds-fr-ca-june-48000-1.0.18.tar.gz
./audio/freeswitch-sounds-en/distinfo freeswitch/freeswitch-sounds-en-us-callie-32000-1.0.22.tar.gz
./audio/freeswitch-sounds-en/distinfo freeswitch/freeswitch-sounds-en-us-callie-48000-1.0.22.tar.gz
Bug-fix and maintenance update after the previous version 0.4.3.
All users of wildmidi-0.4.x are strongly encouraged to upgrade.
What's new in 0.4.4:
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.
pkglint -r --network --only "migrate"
As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
What's new in 0.4.3:
- 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.
What's new in 0.4.2:
- 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.
What's new in 0.4.1:
- Fixed bug in handling of the "source" directive in config files.
- Fixed a nasty bug in dBm_pan_volume. Other fixes and clean-ups.
- Build system updates. Install a pkg-config file on supported platforms such as Linux. New android ndk makefile.
- File i/o updates.
- Support for OS/2.
- Support for Nintendo 3DS
- Support for Nintendo Wii
- Support for AmigaOS and its variants like MorphOS and AROS.
This is a major milestone release!
We worked hard over the years to improve WildMIDI by looking at
how it is used downstream and working with them to offload their
MIDI-related burdens and pushing them to WildMIDI. We've included
support for the following MIDI-like formats: HMI, HMP, KAR, MIDI
Type 2, MUS and XMI. We've expanded our API to help facilitate
error detection, logging and on-the-fly conversion from MIDI-likes
to MIDI without having to initialize the library first.
What's new in 0.4.0:
API change: The library now returns audio data in host-endian format, not little-endian.
API change: WildMidi_GetVersion() added to the api, along with new numeric version macros in the wildmidi_lib.h header. the dso version is changed from 1 to 2.
API change: All long or unsigned long type _WM_Info fields changed into strictly 32bit fields (int32_t or uint32_t.)
API change: WildMidi_OpenBuffer() and WildMidi_GetOutput() changed to accept strictly 32bit size parameters, i.e. uint32_t, instead of unsigned long.
API change: WildMidi_ConvertToMidi() and WildMidi_ConvertBufferToMidi() added for MIDI-like files to be converted to MIDI.
API change: WildMidi_SetCvtOption() added to support conversion options.
API change: WildMidi_SongSeek() added to support Type 2 MIDI files.
API change: WildMidi_GetLyric() added to support embedded text, such as KAR files.
API change: WildMidi_GetError() and WildMidi_ClearError() added to cleanly check for, retrieve and clear error messages. They no longer go to stderr.
Support for loading XMI (XMIDI format) files, thanks Ryan Nunn for releasing his code under the LGPL.
Support for loading MUS (MUS Id format) files, such as from Doom.
Support for loading HMP/HMI files, such as from Arena and Daggerfall.
Support for loading KAR (MIDI with Lyrics) and Type 2 MIDI files.
Build requires cmake-2.8.11 or newer now.
Problems found with existing distfiles:
/pub/pkgsrc/distfiles/amp-0.7.6.tgz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-music-32000-1.0.8.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-music-48000-1.0.8.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-en-us-callie-32000-1.0.22.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-en-us-callie-48000-1.0.22.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-32000-1.0.18.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-48000-1.0.18.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-16000-1.0.12.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-32000-1.0.12.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-48000-1.0.12.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-8000-1.0.12.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-32000-1.0.18.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-48000-1.0.18.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-32000-1.0.13.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-48000-1.0.13.tar.gz
/pub/pkgsrc/distfiles/kid3-3.3.0.tar.gz
/pub/pkgsrc/distfiles/libdca-0.0.5.tar.bz2
/pub/pkgsrc/distfiles/mp3to.gz
/pub/pkgsrc/distfiles/squeezeboxserver-7.5.1-noCPAN.tgz
No changes made to these file.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
0.3.5:
While we've not added any additional functionality, we have fixed
many bugs from internal testing (clang static analysis and valgrind)
and also downstream distribution issues. We've also reduced the
memory thrashing dramatically. Going from 16,000 reallocations and
about 400MiB memory usage when playing a 2 minute midi down to
about 600 reallocations and only 8MiB memory usage!
What is new in this release:
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.
0.3.4:
This release marks the end of further development in the 0.3 branch.
We will do bug-fixes to help stabilize platforms, but no new
functionality will be added after this.
What is new in this release:
OpenAL support: This gains us OSX and other platforms that
OpenAL supports for sound output!
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.
Fedora support: We are now ready to see this get pushed upstream
to Fedora.
New portable file and path-name system to handle cross-platform
support.
Support for Debian/kFreeBSD, Debian/Hurd and other Debian archs.
Many bug fixes, code clean-ups and cosmetic fixes.
0.3.3:
This is the first package to be officially uploaded to Debian.
default to hidden visibility and only export our API functions
windows lean and mean to help compile times on Windows
cli and xcode work now on OSX
better FreeBSD support
Supported platforms are Debian, FreeBSD, Windows and OSX (but only
for WAV output)
0.3.2:
Now with Microsoft Visual Studio support.
WildMIDI is a simple software midi player which has a core softsynth
library that can be use with other applications.
The WildMIDI library uses Gravis Ultrasound patch files to convert
MIDI files into audio which is them passed back to the calling
application for further processing or output. The API of the library
is designed so that it is easy to include WildMIDI into applications
that wish to include MIDI file playback. With multiple MIDI file support
you can develope applications to mix several midi files together at the
same time and with the next release you will be able to use a different
patch set for each MIDI file.