.TH WildMidi_InitVIO 3 "18 May 2018" "" "WildMidi Programmer's Manual" .SH NAME WildMidi_InitVIO \- Initialize the library with file I/O callbacks .PP .SH LIBRARY .B libWildMidi .PP .SH SYNOPSIS .B #include .PP .B WildMidi_InitVIO (struct _WM_VIO *\fIcallbacks\fP, const char *\fIconfig_file\fP, uint16_t \fIrate\fP, uint16_t \fIoptions\fP) .PP .SH DESCRIPTION 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. .PP .IP \fIcallbacks\fP Pointer to a file IO callbacks structure. The _WM_VIO structure is like the following: .nf 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 *); }; .fi .PP .IP \fIconfig-file\fP The file that contains the instrument configuration for the library. .PP .IP \fIrate\fP The sound rate you want the the audio data output at. Rates accepted by libWildMidi are 11025 \- 65000. .PP .IP \fIoptions\fP The initial options to set for the library. see below. .RS .PP .IP 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. .PP .IP 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. .PP .IP WM_MO_REVERB libWildMidi has an 8 reflection reverb engine. Use this option to give more depth to the output. .PP .IP WM_MO_WHOLETEMPO Ignores the fractional or decimal part of a tempo setting. If you are having timing issues try \fIWM_MO_ROUNDTEMPO\fP before trying this option. This option added due to some software not supporting fractional tempos allowable in the MIDI specification. .PP .IP 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 \fIWM_MO_WHOLETEMPO\fP. This option added due to some software not supporting fractional tempos allowable in the MIDI specification. .RE .PP .SH SEE ALSO .BR WildMidi_GetVersion (3) , .BR WildMidi_MasterVolume (3) , .BR WildMidi_Open (3) , .BR WildMidi_OpenBuffer (3) , .BR WildMidi_SetOption (3) , .BR WildMidi_GetOutput (3) , .BR WildMidi_GetMidiOutput (3) , .BR WildMidi_GetInfo (3) , .BR WildMidi_FastSeek (3) , .BR WildMidi_Close (3) , .BR WildMidi_Shutdown (3) , .BR wildmidi.cfg (5) .PP .SH AUTHOR Chris Ison Bret Curtis .PP .SH COPYRIGHT Copyright (C) WildMidi Developers 2001\-2016 .PP This file is part of WildMIDI. .PP 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. .PP 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. .PP 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 . .PP 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. .PP