logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

WildMidi_InitVIO - Initialize the library with file I/O callbacks

Author

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

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.

       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.

Library

libWildMidi

Name

       WildMidi_InitVIO - Initialize the library with file I/O callbacks

See Also

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)

Synopsis

#include<wildmidi_lib.h>WildMidi_InitVIO(struct_WM_VIO*callbacks,constchar*config_file,uint16_trate,uint16_toptions)

See Also