Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
WildMidi_InitVIO(3)	  WildMidi Programmer's Manual	     WildMidi_InitVIO(3)

NAME
     WildMidi_InitVIO - Initialize the library with file I/O callbacks

LIBRARY
     libWildMidi

SYNOPSIS
     #include <wildmidi_lib.h>

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

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.

     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.

     optionsThe 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 re-
		   sampling 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  op-
		   tion 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 try-
		   ing	this  option. This option added due to some software not
		   supporting fractional tempos allowable in the MIDI specifica-
		   tion.

	    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.

SEE ALSO
     WildMidi_GetVersion(3),  WildMidi_MasterVolume(3),  WildMidi_Open(3), Wild-
     Midi_OpenBuffer(3),  WildMidi_SetOption(3),  WildMidi_GetOutput(3),   Wild-
     Midi_GetMidiOutput(3),   WildMidi_GetInfo(3),  WildMidi_FastSeek(3),  Wild-
     Midi_Close(3), WildMidi_Shutdown(3), wildmidi.cfg(5)

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

COPYRIGHT
     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://cre-
     ativecommons.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		     WildMidi_InitVIO(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=WildMidi_InitVIO&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help