WildMidi_InitVIO(3)

WildMidi_InitVIO3

Initialize the library with file i/o callbacks

Usage

#include <wildmidi_lib.h>

WildMidi_InitVIO (struct _WM_VIO *callbacks, const char *config_file, uint16_t rate, uint16_t options)

Library

libWildMidi

Overview

Initializes libWildMidi in preparation for playback, and sets the function pointers for file I/O as provided by the caller. This function only needs to be called once by the program using libWildMidi.

callbacks

Pointer to a file IO callbacks structure. The _WM_VIO structure is like the following:

struct _WM_VIO {
 /* This function should allocate a buffer which has the size
  * of the requested file plus one (size+1), fill the buffer
  * with the file content, and the second parameter with the
  * size of the file. */
    void * (* allocate_file)(const char *, uint32_t *);
 /* This function should free the memory of the given buffer */
    void   (* free_file)    (void *);
};
config-file

The file that contains the instrument configuration for the library.

rate

The sound rate you want the the audio data output at. Rates accepted by libWildMidi are 11025 - 65000.

options

The initial options to set for the library. see below.

WM_MO_LOG_VOLUME

By default the library uses linear volume levels typically used in computer MIDI players. These can differ somewhat to volume levels found on some midi hardware which may use a volume curve based on decibels. This option sets the volume levels to what you'd expect on such devices.

WM_MO_ENHANCED_RESAMPLING

By default libWildMidi uses linear interpolation for the resampling of the sound samples. Setting this option enables the library to use a resampling method that attempts to fill in the gaps giving richer sound.

WM_MO_REVERB

libWildMidi has an 8 reflection reverb engine. Use this option to give more depth to the output.

WM_MO_WHOLETEMPO

Ignores the fractional or decimal part of a tempo setting. If you are having timing issues try WM_MO_ROUNDTEMPO before trying this option. This option added due to some software not supporting fractional tempos allowable in the MIDI specification.

WM_MO_ROUNDTEMPO

Rounds the fractional or decimal part of a tempo setting. Try this option is you are having timing issues, if this fails then try WM_MO_WHOLETEMPO. This option added due to some software not supporting fractional tempos allowable in the MIDI specification.

Releases

Unchanged in 5 releases since Debian 10 (Buster).

  1. 10–Arch

Author

Chris Ison <[email protected]> Bret Curtis <[email protected]>

From wildmidi 0.5.0-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.