89 lines
4.2 KiB
Groff
89 lines
4.2 KiB
Groff
|
.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 <wildmidi_lib.h>
|
||
|
.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 <chrisisonwildcode@gmail.com>
|
||
|
Bret Curtis <psi29a@gmail.com>
|
||
|
.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 <http://www.gnu.org/licenses/>.
|
||
|
.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
|
||
|
|