Skip to content

WildMIDI 0.4.0

Compare
Choose a tag to compare
@psi29a psi29a released this 16 Jun 08:52
· 353 commits to master since this release

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.