WildMidi_InitVIO(3) WildMidi Programmer's Manual WildMidi_InitVIO(3)

WildMidi_InitVIO - Initialize the library with file I/O callbacks

libWildMidi

#include <wildmidi_lib.h>

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

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.

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 *);
};
The file that contains the instrument configuration for the library.
The sound rate you want the the audio data output at. Rates accepted by libWildMidi are 11025 - 65000.
The initial options to set for the library. see below.
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.
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.
libWildMidi has an 8 reflection reverb engine. Use this option to give more depth to the output.
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.
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.

WildMidi_GetVersion(3), WildMidi_MasterVolume(3), WildMidi_Open(3), WildMidi_OpenBuffer(3), WildMidi_SetOption(3), WildMidi_GetOutput(3), WildMidi_GetMidiOutput(3), WildMidi_GetInfo(3), WildMidi_FastSeek(3), WildMidi_Close(3), WildMidi_Shutdown(3), wildmidi.cfg(5)

Chris Ison <chrisisonwildcode@gmail.com> Bret Curtis <psi29a@gmail.com>

Copyright (C) WildMidi Developers 2001-2016

This file is part of WildMIDI.

WildMIDI is free software: you can redistribute and/or modify the player under the terms of the GNU General Public License and you can redistribute and/or modify the library under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the licenses, or(at your option) any later version.

WildMIDI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License and the GNU Lesser General Public License for more details.

You should have received a copy of the GNU General Public License and the GNU Lesser General Public License along with WildMIDI. If not, see http://www.gnu.org/licenses/.

This manpage is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

18 May 2018