WildMidi_InitVIO(3)
π WildMidi_InitVIO π
okay bestie, welcome to the WildMidi Programmer's Manual β¨ β this one's WildMidi_InitVIO(3), the function that kicks the whole thing off when you wanna be the one doing the file reading. it lives in libWildMidi, and it's giving "let me handle the I/O, you handle the vibes." π¦
πΈ 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 π
So basically this is the glow-up moment: it initializes libWildMidi in preparation for playback, and it sets the function pointers for file I/O that you, the caller, hand over. you're the main character here. π
and listen β this function only needs to be called once by the program using libWildMidi. once. that's it. no cap. π
- callbacks β pointer to a file IO callbacks structure. the
_WM_VIOstructure 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
libWildMidiare11025-65000. - options β the initial options to set for the library. see below. π
π§ options π§
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 defaultlibWildMidiuses 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. it's giving rich. πWM_MO_REVERBβlibWildMidihas an 8 reflection reverb engine. use this option to give more depth to the output. obsessed. πWM_MO_WHOLETEMPOβ ignores the fractional or decimal part of a tempo setting. if you are having timing issues, tryWM_MO_ROUNDTEMPObefore trying this option. this option was 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 if you are having timing issues; if this fails then tryWM_MO_WHOLETEMPO. this option was 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), 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)
π 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://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
k that's the whole page bestie, go forth and init responsibly π«Ά
WildMidi Programmer's Manual Β· dated 18 May 2018 Β· WildMidi_InitVIO(3) β¨ bye ily ππΈπ¦
π¦ where this page comes from
- arch rolling: wildmidi 0.5.0-1 Β· GPL-3.0-or-later AND LGPL-3.0-or-later
- debian bookworm: libwildmidi-dev 0.4.3-1 Β· LGPL-3.0-or-later
- debian trixie: libwildmidi-dev 0.4.3-1+b3 Β· LGPL-3.0-or-later
- fedora 43: wildmidi-devel 0.4.6-5.fc43 Β· LGPL-3.0-or-later
- fedora 43: wildmidi-devel 0.4.6-5.fc43 Β· LGPL-3.0-or-later
- fedora 44: wildmidi-devel 0.4.6-6.fc44 Β· LGPL-3.0-or-later
- fedora 44: wildmidi-devel 0.4.6-6.fc44 Β· LGPL-3.0-or-later
- nixos 26.05: wildmidi 0.4.6
- nixpkgs unstable: wildmidi 0.5.0
- opensuse-leap 16.0: wildmidi-devel 0.4.6-bp160.1.6 Β· LGPL-3.0-or-later
- opensuse-leap 16.0: wildmidi-devel 0.4.6-bp160.1.6 Β· LGPL-3.0-or-later
- opensuse-leap 16.0: wildmidi-devel 0.4.6-bp160.1.6 Β· LGPL-3.0-or-later
- opensuse-leap 16.0: wildmidi-devel 0.4.6-bp160.1.6 Β· LGPL-3.0-or-later
- ubuntu jammy: libwildmidi-dev 0.4.3-1 Β· LGPL-3.0-or-later
- ubuntu noble: libwildmidi-dev 0.4.3-1build3 Β· LGPL-3.0-or-later
- ubuntu questing: libwildmidi-dev 0.4.3-1build3
- ubuntu resolute: libwildmidi-dev 0.4.6-1 Β· GPL-3.0-only
- ubuntu stonking: libwildmidi-dev 0.4.6-1 Β· GPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms