Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 2eb128636afdc4a8c8207ec3ec09861d > files > 102

fluidsynth-devel-1.1.3-1.fc14.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>libfluidsynth: synth.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<script type="text/javascript">
function hasClass(ele,cls) {
  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
  if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass(ele,cls) {
  if (hasClass(ele,cls)) {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
  }
}

function toggleVisibility(linkObj) {
 var base = linkObj.getAttribute('id');
 var summary = document.getElementById(base + '-summary');
 var content = document.getElementById(base + '-content');
 var trigger = document.getElementById(base + '-trigger');
 if ( hasClass(linkObj,'closed') ) {
   summary.style.display = 'none';
   content.style.display = 'block';
   trigger.src = 'open.png';
   removeClass(linkObj,'closed');
   addClass(linkObj,'opened');
 } else if ( hasClass(linkObj,'opened') ) {
   summary.style.display = 'block';
   content.style.display = 'none';
   trigger.src = 'closed.png';
   removeClass(linkObj,'opened');
   addClass(linkObj,'closed');
 }
 return false;
}
</script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>synth.h File Reference</h1>  </div>
</div>
<div class="contents">

<p>Embeddable SoundFont synthesizer.  
<a href="#_details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__synth__channel__info__t.html">_fluid_synth_channel_info_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Channel information structure for <a class="el" href="synth_8h.html#a00a22e3f06eba8c3d14d3f1aa49490e6" title="Get information on the currently selected preset on a MIDI channel.">fluid_synth_get_channel_info()</a>.  <a href="struct__fluid__synth__channel__info__t.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7049260777aad176ba7b1e3b2266c8f"></a><!-- doxytag: member="synth.h::FLUID_SYNTH_CHANNEL_INFO_NAME_SIZE" ref="af7049260777aad176ba7b1e3b2266c8f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#af7049260777aad176ba7b1e3b2266c8f">FLUID_SYNTH_CHANNEL_INFO_NAME_SIZE</a>&nbsp;&nbsp;&nbsp;32</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Length of channel info name field (including zero terminator). <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf299c8c0c8dd2912e05add80af2a9b0"></a><!-- doxytag: member="synth.h::FLUID_REVERB_DEFAULT_ROOMSIZE" ref="acf299c8c0c8dd2912e05add80af2a9b0" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#acf299c8c0c8dd2912e05add80af2a9b0">FLUID_REVERB_DEFAULT_ROOMSIZE</a>&nbsp;&nbsp;&nbsp;0.2f</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default reverb room size. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aae3fec0215b3bbf71451935094371513"></a><!-- doxytag: member="synth.h::FLUID_REVERB_DEFAULT_DAMP" ref="aae3fec0215b3bbf71451935094371513" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#aae3fec0215b3bbf71451935094371513">FLUID_REVERB_DEFAULT_DAMP</a>&nbsp;&nbsp;&nbsp;0.0f</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default reverb damping. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5c8f01f604fda90aba860f8cbe0d84a"></a><!-- doxytag: member="synth.h::FLUID_REVERB_DEFAULT_WIDTH" ref="ad5c8f01f604fda90aba860f8cbe0d84a" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ad5c8f01f604fda90aba860f8cbe0d84a">FLUID_REVERB_DEFAULT_WIDTH</a>&nbsp;&nbsp;&nbsp;0.5f</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default reverb width. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f437aa1f9ae5921405a2883d6fe4a29"></a><!-- doxytag: member="synth.h::FLUID_REVERB_DEFAULT_LEVEL" ref="a5f437aa1f9ae5921405a2883d6fe4a29" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a5f437aa1f9ae5921405a2883d6fe4a29">FLUID_REVERB_DEFAULT_LEVEL</a>&nbsp;&nbsp;&nbsp;0.9f</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default reverb level. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6f8520d84bdd2d8767e2b61a240db5de"></a><!-- doxytag: member="synth.h::FLUID_CHORUS_DEFAULT_N" ref="a6f8520d84bdd2d8767e2b61a240db5de" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a6f8520d84bdd2d8767e2b61a240db5de">FLUID_CHORUS_DEFAULT_N</a>&nbsp;&nbsp;&nbsp;3</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default chorus voice count. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e8b082acae0b42ea931a84410d2fb36"></a><!-- doxytag: member="synth.h::FLUID_CHORUS_DEFAULT_LEVEL" ref="a0e8b082acae0b42ea931a84410d2fb36" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a0e8b082acae0b42ea931a84410d2fb36">FLUID_CHORUS_DEFAULT_LEVEL</a>&nbsp;&nbsp;&nbsp;2.0f</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default chorus level. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac5fa16b1c7b070af6cb9ce9fc76e65de"></a><!-- doxytag: member="synth.h::FLUID_CHORUS_DEFAULT_SPEED" ref="ac5fa16b1c7b070af6cb9ce9fc76e65de" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ac5fa16b1c7b070af6cb9ce9fc76e65de">FLUID_CHORUS_DEFAULT_SPEED</a>&nbsp;&nbsp;&nbsp;0.3f</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default chorus speed. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb078afa35b87429f0255c4104181f0f"></a><!-- doxytag: member="synth.h::FLUID_CHORUS_DEFAULT_DEPTH" ref="acb078afa35b87429f0255c4104181f0f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#acb078afa35b87429f0255c4104181f0f">FLUID_CHORUS_DEFAULT_DEPTH</a>&nbsp;&nbsp;&nbsp;8.0f</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default chorus depth. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b537cffea311e113997a6b1db03dd67"></a><!-- doxytag: member="synth.h::FLUID_CHORUS_DEFAULT_TYPE" ref="a0b537cffea311e113997a6b1db03dd67" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a0b537cffea311e113997a6b1db03dd67">FLUID_CHORUS_DEFAULT_TYPE</a>&nbsp;&nbsp;&nbsp;FLUID_CHORUS_MOD_SINE</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default chorus waveform type. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a499506fd899e2bec84d48d911b4eb0ad">FLUID_INTERP_DEFAULT</a>&nbsp;&nbsp;&nbsp;FLUID_INTERP_4THORDER</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default interpolation method from <a class="el" href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633" title="Synthesis interpolation method.">fluid_interp</a>.  <a href="#a499506fd899e2bec84d48d911b4eb0ad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a7192111999afd699b93f328949887347">FLUID_INTERP_HIGHEST</a>&nbsp;&nbsp;&nbsp;FLUID_INTERP_7THORDER</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Highest interpolation method from <a class="el" href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633" title="Synthesis interpolation method.">fluid_interp</a>.  <a href="#a7192111999afd699b93f328949887347"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#aca3b04ae63c2b6147c03ffc801236e41">fluid_audio_callback_t</a> )(<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int len, void *out1, int loff, int lincr, void *out2, int roff, int rincr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type definition of the synthesizer's audio callback function.  <a href="#aca3b04ae63c2b6147c03ffc801236e41"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a96a2e0002fb015c8a32ccf287fba9264">fluid_chorus_mod</a> { <a class="el" href="synth_8h.html#a96a2e0002fb015c8a32ccf287fba9264a2d4792078c24ca8ed02bfee6c08251f7">FLUID_CHORUS_MOD_SINE</a> =  0, 
<a class="el" href="synth_8h.html#a96a2e0002fb015c8a32ccf287fba9264a064e550e31bc5cf9e164a790f3306f8e">FLUID_CHORUS_MOD_TRIANGLE</a> =  1
 }</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Chorus modulation waveform type. </p>
 <a href="synth_8h.html#a96a2e0002fb015c8a32ccf287fba9264">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633">fluid_interp</a> { <a class="el" href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633a27d7b88910ec0601854ba9312ddfaff4">FLUID_INTERP_NONE</a> =  0, 
<a class="el" href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633a5c81597532f7e188b5aabc761ae49afd">FLUID_INTERP_LINEAR</a> =  1, 
<a class="el" href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633a7c302900233f9b26a8d76f54fe11e024">FLUID_INTERP_4THORDER</a> =  4, 
<a class="el" href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633a593125ae8ab8e8f1f1a1bb7bb3f71b02">FLUID_INTERP_7THORDER</a> =  7
 }</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Synthesis interpolation method. </p>
 <a href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a344f7369c0f57d30f72702d0c88e6178">new_fluid_synth</a> (<a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> *settings)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create new FluidSynth instance.  <a href="#a344f7369c0f57d30f72702d0c88e6178"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a585a63f3a25b9df17b82ae87f2d38cfc">delete_fluid_synth</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a FluidSynth instance.  <a href="#a585a63f3a25b9df17b82ae87f2d38cfc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ac836a7addc0bc214813f755fe9cea851">fluid_synth_get_settings</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get settings assigned to a synth.  <a href="#ac836a7addc0bc214813f755fe9cea851"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a4a98222fe1c36bfd598dc4cd89f4b75c">fluid_synth_noteon</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int key, int vel)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a note-on event to a FluidSynth object.  <a href="#a4a98222fe1c36bfd598dc4cd89f4b75c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a5e8f96cacbc6460f7677a6191cbd4472">fluid_synth_noteoff</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int key)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a note-off event to a FluidSynth object.  <a href="#a5e8f96cacbc6460f7677a6191cbd4472"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a96b535f5acee6f807033d6cc9ccab555">fluid_synth_cc</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int ctrl, int val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a MIDI controller event on a MIDI channel.  <a href="#a96b535f5acee6f807033d6cc9ccab555"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ac3eacfd879445107389aa2b7b44fa0ca">fluid_synth_get_cc</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int ctrl, int *pval)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get current MIDI controller value on a MIDI channel.  <a href="#ac3eacfd879445107389aa2b7b44fa0ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a28f34d0493b102ac4b99c021257b5b5e">fluid_synth_sysex</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, const char *data, int len, char *response, int *response_len, int *handled, int dryrun)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a MIDI SYSEX (system exclusive) message.  <a href="#a28f34d0493b102ac4b99c021257b5b5e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ad5341f8e7c86835b197628f84a2d2c90">fluid_synth_pitch_bend</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the MIDI pitch bend controller value on a MIDI channel.  <a href="#ad5341f8e7c86835b197628f84a2d2c90"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a24735d9a0c92630f30cbad5fe9b7353d">fluid_synth_get_pitch_bend</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int *ppitch_bend)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the MIDI pitch bend controller value on a MIDI channel.  <a href="#a24735d9a0c92630f30cbad5fe9b7353d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#adb4df1ba450816d42ef40a16b2993549">fluid_synth_pitch_wheel_sens</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set MIDI pitch wheel sensitivity on a MIDI channel.  <a href="#adb4df1ba450816d42ef40a16b2993549"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#afa1c6c8d98c068154678bf29e6c7f32b">fluid_synth_get_pitch_wheel_sens</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int *pval)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get MIDI pitch wheel sensitivity on a MIDI channel.  <a href="#afa1c6c8d98c068154678bf29e6c7f32b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#aad8df89a90669268b6bee09da40088a6">fluid_synth_program_change</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int program)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a program change event on a MIDI channel.  <a href="#aad8df89a90669268b6bee09da40088a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a908d5ea45d97d17757a8a3bda504fd44">fluid_synth_channel_pressure</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the MIDI channel pressure controller value.  <a href="#a908d5ea45d97d17757a8a3bda504fd44"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a97b0f45f00922a46b1c1961d5b1f8cb5">fluid_synth_bank_select</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, unsigned int bank)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set instrument bank number on a MIDI channel.  <a href="#a97b0f45f00922a46b1c1961d5b1f8cb5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#addc8179bfc47d467956ed26f14793775">fluid_synth_sfont_select</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, unsigned int sfont_id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set SoundFont ID on a MIDI channel.  <a href="#addc8179bfc47d467956ed26f14793775"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ac783362b155fc9c3997f7fd3cf9b1d7f">fluid_synth_program_select</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, unsigned int sfont_id, unsigned int bank_num, unsigned int preset_num)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select an instrument on a MIDI channel by SoundFont ID, bank and program numbers.  <a href="#ac783362b155fc9c3997f7fd3cf9b1d7f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a38d8dc2f680024ce927f01424c13d32b">fluid_synth_program_select_by_sfont_name</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, const char *sfont_name, unsigned int bank_num, unsigned int preset_num)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select an instrument on a MIDI channel by SoundFont name, bank and program numbers.  <a href="#a38d8dc2f680024ce927f01424c13d32b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#af8771f60cfb9f4b352fa7423621d35e5">fluid_synth_get_program</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, unsigned int *sfont_id, unsigned int *bank_num, unsigned int *preset_num)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get current SoundFont ID, bank number and program number for a MIDI channel.  <a href="#af8771f60cfb9f4b352fa7423621d35e5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a5541af149bb98e0eaaf91f5d3419cb10">fluid_synth_unset_program</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the preset of a MIDI channel to an unassigned state.  <a href="#a5541af149bb98e0eaaf91f5d3419cb10"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a00a22e3f06eba8c3d14d3f1aa49490e6">fluid_synth_get_channel_info</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, <a class="el" href="struct__fluid__synth__channel__info__t.html">fluid_synth_channel_info_t</a> *info)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get information on the currently selected preset on a MIDI channel.  <a href="#a00a22e3f06eba8c3d14d3f1aa49490e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ab8ab8f57ab6efedd6c371894c42a10f7">fluid_synth_program_reset</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resend a bank select and a program change for every channel.  <a href="#ab8ab8f57ab6efedd6c371894c42a10f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a3783aa3a825dfd81208d37039b6d2906">fluid_synth_system_reset</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send MIDI system reset command (big red 'panic' button), turns off notes and resets controllers.  <a href="#a3783aa3a825dfd81208d37039b6d2906"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="struct__fluid__preset__t.html">fluid_preset_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a3fba596ce8f5f4c0e54d8013348e80c4">fluid_synth_get_channel_preset</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get active preset on a MIDI channel.  <a href="#a3fba596ce8f5f4c0e54d8013348e80c4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ac467475b877fa4c831cfe496c5801d25">fluid_synth_start</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, unsigned int id, <a class="el" href="struct__fluid__preset__t.html">fluid_preset_t</a> *preset, int audio_chan, int midi_chan, int key, int vel)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create and start voices using a preset and a MIDI note on event.  <a href="#ac467475b877fa4c831cfe496c5801d25"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a159e0f4c860e9d9828baa8365d8accb8">fluid_synth_stop</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, unsigned int id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop notes for a given note event voice ID.  <a href="#a159e0f4c860e9d9828baa8365d8accb8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#aaf9376cf7189f9c64da5ffdeed85c9c4">fluid_synth_sfload</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, const char *filename, int reset_presets)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Load a SoundFont file (filename is interpreted by SoundFont loaders).  <a href="#aaf9376cf7189f9c64da5ffdeed85c9c4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a578273544b162af97633430b5c9b23ae">fluid_synth_sfreload</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, unsigned int id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reload a SoundFont.  <a href="#a578273544b162af97633430b5c9b23ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a212bb602e9022c8d8cdb4bc5957f7693">fluid_synth_sfunload</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, unsigned int id, int reset_presets)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unload a SoundFont.  <a href="#a212bb602e9022c8d8cdb4bc5957f7693"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#af97291d30d6ff54a475f7446f181e6f7">fluid_synth_add_sfont</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, <a class="el" href="struct__fluid__sfont__t.html">fluid_sfont_t</a> *sfont)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a SoundFont.  <a href="#af97291d30d6ff54a475f7446f181e6f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a0770cc4681deb524d1ed7d80695b635c">fluid_synth_remove_sfont</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, <a class="el" href="struct__fluid__sfont__t.html">fluid_sfont_t</a> *sfont)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a SoundFont from the SoundFont stack without deleting it.  <a href="#a0770cc4681deb524d1ed7d80695b635c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ac35b806250626f65253007dbd6e20ce3">fluid_synth_sfcount</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count number of loaded SoundFont files.  <a href="#ac35b806250626f65253007dbd6e20ce3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="struct__fluid__sfont__t.html">fluid_sfont_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a063116a030b8c66f0b3d55b432a91df3">fluid_synth_get_sfont</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, unsigned int num)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get SoundFont by index.  <a href="#a063116a030b8c66f0b3d55b432a91df3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="struct__fluid__sfont__t.html">fluid_sfont_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a91156321a0db48db56f851c2282f424f">fluid_synth_get_sfont_by_id</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, unsigned int id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get SoundFont by ID.  <a href="#a91156321a0db48db56f851c2282f424f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="struct__fluid__sfont__t.html">fluid_sfont_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a5856acea557bb30b8c8cfbaf7bd008c6">fluid_synth_get_sfont_by_name</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, const char *name)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get SoundFont by name.  <a href="#a5856acea557bb30b8c8cfbaf7bd008c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a8b533b00ff0884d3a2bb3f61abfe7682">fluid_synth_set_bank_offset</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int sfont_id, int offset)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset the bank numbers of a loaded SoundFont.  <a href="#a8b533b00ff0884d3a2bb3f61abfe7682"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#aea24f9786739a695aaf6403316bf820f">fluid_synth_get_bank_offset</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int sfont_id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get bank offset of a loaded SoundFont.  <a href="#aea24f9786739a695aaf6403316bf820f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a9740cb53a1cc10887694cbca5f800dc1">fluid_synth_set_reverb</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, double roomsize, double damping, double width, double level)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set reverb parameters.  <a href="#a9740cb53a1cc10887694cbca5f800dc1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ad51c73aec209c54c7810bede73e3a786">fluid_synth_set_reverb_on</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int on)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enable or disable reverb effect.  <a href="#ad51c73aec209c54c7810bede73e3a786"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#acb772ddf5fb47051b414af8ec0ac6d7d">fluid_synth_get_reverb_roomsize</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get reverb room size.  <a href="#acb772ddf5fb47051b414af8ec0ac6d7d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ad3f4b80a68a2700df98dd84dc7697468">fluid_synth_get_reverb_damp</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get reverb damping.  <a href="#ad3f4b80a68a2700df98dd84dc7697468"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a84dd4c9d18b187e35e1837c77babcf93">fluid_synth_get_reverb_level</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get reverb level.  <a href="#a84dd4c9d18b187e35e1837c77babcf93"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ac4e6a3d238ee266e60c05d07cc907779">fluid_synth_get_reverb_width</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get reverb width.  <a href="#ac4e6a3d238ee266e60c05d07cc907779"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#afe63e59d53c6c4990bbf3fa9211189aa">fluid_synth_set_chorus</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int nr, double level, double speed, double depth_ms, int type)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set chorus parameters.  <a href="#afe63e59d53c6c4990bbf3fa9211189aa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a2a7b8da44aab1ab7516410e60d92018d">fluid_synth_set_chorus_on</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int on)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enable or disable chorus effect.  <a href="#a2a7b8da44aab1ab7516410e60d92018d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#abff8943c65c7edcb8b230cf97666664c">fluid_synth_get_chorus_nr</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get chorus voice number (delay line count) value.  <a href="#abff8943c65c7edcb8b230cf97666664c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ad3ee4162ff6ed6f1c333fbabdced92d6">fluid_synth_get_chorus_level</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get chorus level.  <a href="#ad3ee4162ff6ed6f1c333fbabdced92d6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#aa3d1496f89cdd227450e10f5c496d65e">fluid_synth_get_chorus_speed_Hz</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get chorus speed in Hz.  <a href="#aa3d1496f89cdd227450e10f5c496d65e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#aa49fd6a29d99b11d5c6b9007a5beb0af">fluid_synth_get_chorus_depth_ms</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get chorus depth.  <a href="#aa49fd6a29d99b11d5c6b9007a5beb0af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a6304857a25b46954b1950256a0c09f50">fluid_synth_get_chorus_type</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get chorus waveform type.  <a href="#a6304857a25b46954b1950256a0c09f50"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a0f0d3d99a9cad711442c86244c990f52">fluid_synth_count_midi_channels</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the total count of MIDI channels.  <a href="#a0f0d3d99a9cad711442c86244c990f52"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a119dce1af0c68f5bc06a17fdd6fab2f3">fluid_synth_count_audio_channels</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the total count of audio channels.  <a href="#a119dce1af0c68f5bc06a17fdd6fab2f3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#abeb57e262972fd7610f37e5c902f35a2">fluid_synth_count_audio_groups</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the total number of allocated audio channels.  <a href="#abeb57e262972fd7610f37e5c902f35a2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a2e20e06d129a1f54f039a4ef7335ffff">fluid_synth_count_effects_channels</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the total number of allocated effects channels.  <a href="#a2e20e06d129a1f54f039a4ef7335ffff"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ab614bfeafc8b8b632cf1433f8dfce85a">fluid_synth_set_sample_rate</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, float sample_rate)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set sample rate of the synth.  <a href="#ab614bfeafc8b8b632cf1433f8dfce85a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ab202e6e37360759e48b066e6db96c4ae">fluid_synth_set_gain</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, float gain)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set synth output gain value.  <a href="#ab202e6e37360759e48b066e6db96c4ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ac71c76ca7145c0c2bb1d5d4bddb4ca9f">fluid_synth_get_gain</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get synth output gain value.  <a href="#ac71c76ca7145c0c2bb1d5d4bddb4ca9f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ab6cfd644bacad8ae3a408c8475116878">fluid_synth_set_polyphony</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int polyphony)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set synthesizer polyphony (max number of voices).  <a href="#ab6cfd644bacad8ae3a408c8475116878"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a20b59114a7e53fcbd8465666ba2790e2">fluid_synth_get_polyphony</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get current synthesizer polyphony (max number of voices).  <a href="#a20b59114a7e53fcbd8465666ba2790e2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a5d6f71e63f60df1a83e8490a867d8910">fluid_synth_get_active_voice_count</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get current number of active voices.  <a href="#a5d6f71e63f60df1a83e8490a867d8910"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ab848da001621ea979f44b11e9befbc3c">fluid_synth_get_internal_bufsize</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the internal synthesis buffer size value.  <a href="#ab848da001621ea979f44b11e9befbc3c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a4268f661c6b7f8552fdf5ed5bdfcddfc">fluid_synth_set_interp_method</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int interp_method)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set synthesis interpolation method on one or all MIDI channels.  <a href="#a4268f661c6b7f8552fdf5ed5bdfcddfc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ae5d823189a618befba732ec679beac74">fluid_synth_set_gen</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int param, float value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a SoundFont generator (effect) value on a MIDI channel in real-time.  <a href="#ae5d823189a618befba732ec679beac74"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a14386a2821c1f6d253fd2d53a21c3b98">fluid_synth_set_gen2</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int param, float value, int absolute, int normalized)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a SoundFont generator (effect) value on a MIDI channel in real-time.  <a href="#a14386a2821c1f6d253fd2d53a21c3b98"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a77847dc600410fefcc229c8cf576fa54">fluid_synth_get_gen</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int param)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get generator value assigned to a MIDI channel.  <a href="#a77847dc600410fefcc229c8cf576fa54"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ac08ec42e90f094ceeba60a657db5bf49">fluid_synth_create_key_tuning</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int bank, int prog, const char *name, const double *pitch)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the tuning of the entire MIDI note scale.  <a href="#ac08ec42e90f094ceeba60a657db5bf49"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a82eea41553b546ec063c2dc840ca711d">fluid_synth_activate_key_tuning</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int bank, int prog, const char *name, const double *pitch, int apply)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the tuning of the entire MIDI note scale.  <a href="#a82eea41553b546ec063c2dc840ca711d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a018142a6c6e818d8c0474cfd188aa3b6">fluid_synth_create_octave_tuning</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int bank, int prog, const char *name, const double *pitch)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply an octave tuning to every octave in the MIDI note scale.  <a href="#a018142a6c6e818d8c0474cfd188aa3b6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a50ffe674e0e4ae9c778cfe41eabf110b">fluid_synth_activate_octave_tuning</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int bank, int prog, const char *name, const double *pitch, int apply)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Activate an octave tuning on every octave in the MIDI note scale.  <a href="#a50ffe674e0e4ae9c778cfe41eabf110b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a06f6053f5eed13b59132fc7255f24ef0">fluid_synth_tune_notes</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int bank, int prog, int len, const int *keys, const double *pitch, int apply)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set tuning values for one or more MIDI notes for an existing tuning.  <a href="#a06f6053f5eed13b59132fc7255f24ef0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#af0adc50d347a99242e7bc367c626845c">fluid_synth_select_tuning</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int bank, int prog)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a tuning scale on a MIDI channel.  <a href="#af0adc50d347a99242e7bc367c626845c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ad370b81904a65188981c45ee840204d3">fluid_synth_activate_tuning</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int bank, int prog, int apply)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Activate a tuning scale on a MIDI channel.  <a href="#ad370b81904a65188981c45ee840204d3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#aa45d7358ae0d5f246df314402847dea3">fluid_synth_reset_tuning</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear tuning scale on a MIDI channel (set it to the default well-tempered scale).  <a href="#aa45d7358ae0d5f246df314402847dea3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a7d3c0e7ce720c8f1b8a2de2f950d438f">fluid_synth_deactivate_tuning</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int chan, int apply)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear tuning scale on a MIDI channel (use default equal tempered scale).  <a href="#a7d3c0e7ce720c8f1b8a2de2f950d438f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a6633072257adee63b7f5901038a4a596">fluid_synth_tuning_iteration_start</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start tuning iteration.  <a href="#a6633072257adee63b7f5901038a4a596"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#aabba63d39b1ff489e0f12831c7e1d986">fluid_synth_tuning_iteration_next</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int *bank, int *prog)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Advance to next tuning.  <a href="#aabba63d39b1ff489e0f12831c7e1d986"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a09a491acce286532beb9e44fe858f0ce">fluid_synth_tuning_dump</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int bank, int prog, char *name, int len, double *pitch)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the entire note tuning for a given MIDI bank and program.  <a href="#a09a491acce286532beb9e44fe858f0ce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a28e932a61ee59fa46d5a1b2047872995">fluid_synth_get_cpu_load</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the synth CPU load value.  <a href="#a28e932a61ee59fa46d5a1b2047872995"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#aaba52d30861484b5c17a6ec91cacc9b1">fluid_synth_error</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a textual representation of the last error.  <a href="#aaba52d30861484b5c17a6ec91cacc9b1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a0d7c287342eb282d4ec63ea7f35cd791">fluid_synth_write_s16</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int len, void *lout, int loff, int lincr, void *rout, int roff, int rincr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Synthesize a block of 16 bit audio samples to audio buffers.  <a href="#a0d7c287342eb282d4ec63ea7f35cd791"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#ac86a79a943fc5d5d485ccc5a5fcad03d">fluid_synth_write_float</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int len, void *lout, int loff, int lincr, void *rout, int roff, int rincr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Synthesize a block of floating point audio samples to audio buffers.  <a href="#ac86a79a943fc5d5d485ccc5a5fcad03d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a2e394b30908133eed97fe903d5654bac">fluid_synth_nwrite_float</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int len, float **left, float **right, float **fx_left, float **fx_right)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Synthesize a block of floating point audio to audio buffers.  <a href="#a2e394b30908133eed97fe903d5654bac"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a1ac90e2732aa652679305f78cbd66670">fluid_synth_process</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int len, int nin, float **in, int nout, float **out)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Synthesize floating point audio to audio buffers.  <a href="#a1ac90e2732aa652679305f78cbd66670"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a4b35dcb250542b8e60cf5dccd0ec1589">fluid_synth_add_sfloader</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, <a class="el" href="struct__fluid__sfloader__t.html">fluid_sfloader_t</a> *loader)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a SoundFont loader interface.  <a href="#a4b35dcb250542b8e60cf5dccd0ec1589"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="types_8h.html#a5123ae5ef2d7806475267380c33604c3">fluid_voice_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a005a5e8e6b34eb5a44b41d9020ce32d5">fluid_synth_alloc_voice</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, <a class="el" href="struct__fluid__sample__t.html">fluid_sample_t</a> *sample, int channum, int key, int vel)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate a synthesis voice.  <a href="#a005a5e8e6b34eb5a44b41d9020ce32d5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a9b301e2ce86ca1315e5d6e7e44deba5f">fluid_synth_start_voice</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, <a class="el" href="types_8h.html#a5123ae5ef2d7806475267380c33604c3">fluid_voice_t</a> *voice)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Activate a voice previously allocated with <a class="el" href="synth_8h.html#a005a5e8e6b34eb5a44b41d9020ce32d5" title="Allocate a synthesis voice.">fluid_synth_alloc_voice()</a>.  <a href="#a9b301e2ce86ca1315e5d6e7e44deba5f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a167b297bf209c1b44c052000b21eac21">fluid_synth_get_voicelist</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, <a class="el" href="types_8h.html#a5123ae5ef2d7806475267380c33604c3">fluid_voice_t</a> *buf[], int bufsize, int ID)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of voices.  <a href="#a167b297bf209c1b44c052000b21eac21"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event</a> (void *data, <a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handle MIDI event from MIDI router, used as a callback function.  <a href="#a439e1175fa34123b3d0c96a0366d42dd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="synth_8h.html#a150979ca928cfbed4ff179ff62e3f633">fluid_synth_set_midi_router</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, <a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a> *router)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign a MIDI router to a synth.  <a href="#a150979ca928cfbed4ff179ff62e3f633"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Embeddable SoundFont synthesizer. </p>
<p>You create a new synthesizer with <a class="el" href="synth_8h.html#a344f7369c0f57d30f72702d0c88e6178" title="Create new FluidSynth instance.">new_fluid_synth()</a> and you destroy if with <a class="el" href="synth_8h.html#a585a63f3a25b9df17b82ae87f2d38cfc" title="Delete a FluidSynth instance.">delete_fluid_synth()</a>. Use the settings structure to specify the synthesizer characteristics.</p>
<p>You have to load a SoundFont in order to hear any sound. For that you use the <a class="el" href="synth_8h.html#aaf9376cf7189f9c64da5ffdeed85c9c4" title="Load a SoundFont file (filename is interpreted by SoundFont loaders).">fluid_synth_sfload()</a> function.</p>
<p>You can use the audio driver functions described below to open the audio device and create a background audio thread.</p>
<p>The API for sending MIDI events is probably what you expect: <a class="el" href="synth_8h.html#a4a98222fe1c36bfd598dc4cd89f4b75c" title="Send a note-on event to a FluidSynth object.">fluid_synth_noteon()</a>, <a class="el" href="synth_8h.html#a5e8f96cacbc6460f7677a6191cbd4472" title="Send a note-off event to a FluidSynth object.">fluid_synth_noteoff()</a>, ... </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="a499506fd899e2bec84d48d911b4eb0ad"></a><!-- doxytag: member="synth.h::FLUID_INTERP_DEFAULT" ref="a499506fd899e2bec84d48d911b4eb0ad" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FLUID_INTERP_DEFAULT&nbsp;&nbsp;&nbsp;FLUID_INTERP_4THORDER</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default interpolation method from <a class="el" href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633" title="Synthesis interpolation method.">fluid_interp</a>. </p>

</div>
</div>
<a class="anchor" id="a7192111999afd699b93f328949887347"></a><!-- doxytag: member="synth.h::FLUID_INTERP_HIGHEST" ref="a7192111999afd699b93f328949887347" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FLUID_INTERP_HIGHEST&nbsp;&nbsp;&nbsp;FLUID_INTERP_7THORDER</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Highest interpolation method from <a class="el" href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633" title="Synthesis interpolation method.">fluid_interp</a>. </p>

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="aca3b04ae63c2b6147c03ffc801236e41"></a><!-- doxytag: member="synth.h::fluid_audio_callback_t" ref="aca3b04ae63c2b6147c03ffc801236e41" args=")(fluid_synth_t *synth, int len, void *out1, int loff, int lincr, void *out2, int roff, int rincr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* <a class="el" href="synth_8h.html#aca3b04ae63c2b6147c03ffc801236e41">fluid_audio_callback_t</a>)(<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth, int len, void *out1, int loff, int lincr, void *out2, int roff, int rincr)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Type definition of the synthesizer's audio callback function. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Count of audio frames to synthesize </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out1</em>&nbsp;</td><td>Array to store left channel of audio to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>loff</em>&nbsp;</td><td>Offset index in 'out1' for first sample </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lincr</em>&nbsp;</td><td>Increment between samples stored to 'out1' </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out2</em>&nbsp;</td><td>Array to store right channel of audio to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>roff</em>&nbsp;</td><td>Offset index in 'out2' for first sample </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rincr</em>&nbsp;</td><td>Increment between samples stored to 'out2' </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="a96a2e0002fb015c8a32ccf287fba9264"></a><!-- doxytag: member="synth.h::fluid_chorus_mod" ref="a96a2e0002fb015c8a32ccf287fba9264" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="synth_8h.html#a96a2e0002fb015c8a32ccf287fba9264">fluid_chorus_mod</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Chorus modulation waveform type. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a96a2e0002fb015c8a32ccf287fba9264a2d4792078c24ca8ed02bfee6c08251f7"></a><!-- doxytag: member="FLUID_CHORUS_MOD_SINE" ref="a96a2e0002fb015c8a32ccf287fba9264a2d4792078c24ca8ed02bfee6c08251f7" args="" -->FLUID_CHORUS_MOD_SINE</em>&nbsp;</td><td>
<p>Sine wave chorus modulation. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a96a2e0002fb015c8a32ccf287fba9264a064e550e31bc5cf9e164a790f3306f8e"></a><!-- doxytag: member="FLUID_CHORUS_MOD_TRIANGLE" ref="a96a2e0002fb015c8a32ccf287fba9264a064e550e31bc5cf9e164a790f3306f8e" args="" -->FLUID_CHORUS_MOD_TRIANGLE</em>&nbsp;</td><td>
<p>Triangle wave chorus modulation. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="a4a2efef77b267500dd9c19c0dc9e4633"></a><!-- doxytag: member="synth.h::fluid_interp" ref="a4a2efef77b267500dd9c19c0dc9e4633" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633">fluid_interp</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Synthesis interpolation method. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a4a2efef77b267500dd9c19c0dc9e4633a27d7b88910ec0601854ba9312ddfaff4"></a><!-- doxytag: member="FLUID_INTERP_NONE" ref="a4a2efef77b267500dd9c19c0dc9e4633a27d7b88910ec0601854ba9312ddfaff4" args="" -->FLUID_INTERP_NONE</em>&nbsp;</td><td>
<p>No interpolation: Fastest, but questionable audio quality. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4a2efef77b267500dd9c19c0dc9e4633a5c81597532f7e188b5aabc761ae49afd"></a><!-- doxytag: member="FLUID_INTERP_LINEAR" ref="a4a2efef77b267500dd9c19c0dc9e4633a5c81597532f7e188b5aabc761ae49afd" args="" -->FLUID_INTERP_LINEAR</em>&nbsp;</td><td>
<p>Straight-line interpolation: A bit slower, reasonable audio quality. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4a2efef77b267500dd9c19c0dc9e4633a7c302900233f9b26a8d76f54fe11e024"></a><!-- doxytag: member="FLUID_INTERP_4THORDER" ref="a4a2efef77b267500dd9c19c0dc9e4633a7c302900233f9b26a8d76f54fe11e024" args="" -->FLUID_INTERP_4THORDER</em>&nbsp;</td><td>
<p>Fourth-order interpolation, good quality, the default. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4a2efef77b267500dd9c19c0dc9e4633a593125ae8ab8e8f1f1a1bb7bb3f71b02"></a><!-- doxytag: member="FLUID_INTERP_7THORDER" ref="a4a2efef77b267500dd9c19c0dc9e4633a593125ae8ab8e8f1f1a1bb7bb3f71b02" args="" -->FLUID_INTERP_7THORDER</em>&nbsp;</td><td>
<p>Seventh-order interpolation. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a344f7369c0f57d30f72702d0c88e6178"></a><!-- doxytag: member="synth.h::new_fluid_synth" ref="a344f7369c0f57d30f72702d0c88e6178" args="(fluid_settings_t *settings)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a>* new_fluid_synth </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> *&nbsp;</td>
          <td class="paramname"> <em>settings</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create new FluidSynth instance. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>settings</em>&nbsp;</td><td>Configuration parameters to use (used directly). </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>New FluidSynth instance or NULL on error</dd></dl>
<p>NOTE: The settings parameter is used directly and should not be modified or freed independently. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="example_8c-example.html#a1">example.c</a>, <a class="el" href="fluidsynth__arpeggio_8c-example.html#a9">fluidsynth_arpeggio.c</a>, <a class="el" href="fluidsynth__fx_8c-example.html#a2">fluidsynth_fx.c</a>, <a class="el" href="fluidsynth__metronome_8c-example.html#a8">fluidsynth_metronome.c</a>, and <a class="el" href="fluidsynth__simple_8c-example.html#a1">fluidsynth_simple.c</a>.</dd>
</dl>
<p>References <a class="el" href="synth_8h.html#a585a63f3a25b9df17b82ae87f2d38cfc">delete_fluid_synth()</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="settings_8h.html#a4a570095ef3de25e77f4dd9c574bc56c">fluid_settings_getint()</a>, <a class="el" href="settings_8h.html#a619c930e119a4a3889131d67293e2089">fluid_settings_getnum()</a>, <a class="el" href="settings_8h.html#a26e4192ab084382492589f2c5d8b2e2f">fluid_settings_setint()</a>, <a class="el" href="settings_8h.html#a2646edb018c961162845f1711503b597">fluid_settings_str_equal()</a>, <a class="el" href="synth_8h.html#a4b35dcb250542b8e60cf5dccd0ec1589">fluid_synth_add_sfloader()</a>, <a class="el" href="synth_8h.html#a2a7b8da44aab1ab7516410e60d92018d">fluid_synth_set_chorus_on()</a>, <a class="el" href="synth_8h.html#ad51c73aec209c54c7810bede73e3a786">fluid_synth_set_reverb_on()</a>, <a class="el" href="synth_8h.html#ab614bfeafc8b8b632cf1433f8dfce85a">fluid_synth_set_sample_rate()</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9ea394460be1ec74fce15e1ff683606df0f">FLUID_WARN</a>, and <a class="el" href="synth_8h.html#a344f7369c0f57d30f72702d0c88e6178">new_fluid_synth()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a344f7369c0f57d30f72702d0c88e6178">new_fluid_synth()</a>.</p>

</div>
</div>
<a class="anchor" id="a585a63f3a25b9df17b82ae87f2d38cfc"></a><!-- doxytag: member="synth.h::delete_fluid_synth" ref="a585a63f3a25b9df17b82ae87f2d38cfc" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int delete_fluid_synth </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete a FluidSynth instance. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance to delete </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK</dd></dl>
<p>NOTE: Other users of a synthesizer instance, such as audio and MIDI drivers, should be deleted prior to freeing the FluidSynth instance. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="example_8c-example.html#a7">example.c</a>, <a class="el" href="fluidsynth__arpeggio_8c-example.html#a18">fluidsynth_arpeggio.c</a>, <a class="el" href="fluidsynth__fx_8c-example.html#a7">fluidsynth_fx.c</a>, <a class="el" href="fluidsynth__metronome_8c-example.html#a17">fluidsynth_metronome.c</a>, and <a class="el" href="fluidsynth__simple_8c-example.html#a6">fluidsynth_simple.c</a>.</dd>
</dl>
<p>References <a class="el" href="synth_8h.html#a585a63f3a25b9df17b82ae87f2d38cfc">delete_fluid_synth()</a>, <a class="el" href="voice_8h.html#ac2257338d31a1a8456a219e616bdc109">fluid_voice_is_playing()</a>, and <a class="el" href="struct__fluid__sfont__info__t.html#aecb0bf6205267d084cd938edfb667885">_fluid_sfont_info_t::sfont</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a585a63f3a25b9df17b82ae87f2d38cfc">delete_fluid_synth()</a>, and <a class="el" href="synth_8h.html#a344f7369c0f57d30f72702d0c88e6178">new_fluid_synth()</a>.</p>

</div>
</div>
<a class="anchor" id="ac836a7addc0bc214813f755fe9cea851"></a><!-- doxytag: member="synth.h::fluid_synth_get_settings" ref="ac836a7addc0bc214813f755fe9cea851" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a>* fluid_synth_get_settings </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get settings assigned to a synth. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FluidSynth settings which are assigned to the synth </dd></dl>

<p>References <a class="el" href="synth_8h.html#ac836a7addc0bc214813f755fe9cea851">fluid_synth_get_settings()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ac836a7addc0bc214813f755fe9cea851">fluid_synth_get_settings()</a>.</p>

</div>
</div>
<a class="anchor" id="a4a98222fe1c36bfd598dc4cd89f4b75c"></a><!-- doxytag: member="synth.h::fluid_synth_noteon" ref="a4a98222fe1c36bfd598dc4cd89f4b75c" args="(fluid_synth_t *synth, int chan, int key, int vel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_noteon </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>vel</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send a note-on event to a FluidSynth object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>MIDI note number (0-127) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>vel</em>&nbsp;</td><td>MIDI velocity (0-127, 0=noteoff) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="example_8c-example.html#a4">example.c</a>, <a class="el" href="fluidsynth__fx_8c-example.html#a5">fluidsynth_fx.c</a>, and <a class="el" href="fluidsynth__simple_8c-example.html#a4">fluidsynth_simple.c</a>.</dd>
</dl>
<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#a4a98222fe1c36bfd598dc4cd89f4b75c">fluid_synth_noteon()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>, and <a class="el" href="synth_8h.html#a4a98222fe1c36bfd598dc4cd89f4b75c">fluid_synth_noteon()</a>.</p>

</div>
</div>
<a class="anchor" id="a5e8f96cacbc6460f7677a6191cbd4472"></a><!-- doxytag: member="synth.h::fluid_synth_noteoff" ref="a5e8f96cacbc6460f7677a6191cbd4472" args="(fluid_synth_t *synth, int chan, int key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_noteoff </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send a note-off event to a FluidSynth object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>MIDI note number (0-127) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise (may just mean that no voices matched the note off event) </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="example_8c-example.html#a5">example.c</a>.</dd>
</dl>
<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#a5e8f96cacbc6460f7677a6191cbd4472">fluid_synth_noteoff()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>, and <a class="el" href="synth_8h.html#a5e8f96cacbc6460f7677a6191cbd4472">fluid_synth_noteoff()</a>.</p>

</div>
</div>
<a class="anchor" id="a96b535f5acee6f807033d6cc9ccab555"></a><!-- doxytag: member="synth.h::fluid_synth_cc" ref="a96b535f5acee6f807033d6cc9ccab555" args="(fluid_synth_t *synth, int chan, int ctrl, int val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_cc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>val</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send a MIDI controller event on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>MIDI controller number (0-127) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>MIDI controller value (0-127) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eadfa902517702f2dd8ae849b810175ac4">FLUID_INFO</a>, and <a class="el" href="synth_8h.html#a96b535f5acee6f807033d6cc9ccab555">fluid_synth_cc()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a96b535f5acee6f807033d6cc9ccab555">fluid_synth_cc()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="ac3eacfd879445107389aa2b7b44fa0ca"></a><!-- doxytag: member="synth.h::fluid_synth_get_cc" ref="ac3eacfd879445107389aa2b7b44fa0ca" args="(fluid_synth_t *synth, int chan, int ctrl, int *pval)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_get_cc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>pval</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get current MIDI controller value on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>MIDI controller number (0-127) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pval</em>&nbsp;</td><td>Location to store MIDI controller value (0-127) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, and <a class="el" href="synth_8h.html#ac3eacfd879445107389aa2b7b44fa0ca">fluid_synth_get_cc()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ac3eacfd879445107389aa2b7b44fa0ca">fluid_synth_get_cc()</a>.</p>

</div>
</div>
<a class="anchor" id="a28f34d0493b102ac4b99c021257b5b5e"></a><!-- doxytag: member="synth.h::fluid_synth_sysex" ref="a28f34d0493b102ac4b99c021257b5b5e" args="(fluid_synth_t *synth, const char *data, int len, char *response, int *response_len, int *handled, int dryrun)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_sysex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>response_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>handled</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>dryrun</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Process a MIDI SYSEX (system exclusive) message. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Buffer containing SYSEX data (not including 0xF0 and 0xF7) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Length of data in buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>response</em>&nbsp;</td><td>Buffer to store response to or NULL to ignore </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>response_len</em>&nbsp;</td><td>IN/OUT parameter, in: size of response buffer, out: amount of data written to response buffer (if FLUID_FAILED is returned and this value is non-zero, it indicates the response buffer is too small) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handled</em>&nbsp;</td><td>Optional location to store boolean value if message was recognized and handled or not (set to TRUE if it was handled) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dryrun</em>&nbsp;</td><td>TRUE to just do a dry run but not actually execute the SYSEX command (useful for checking if a SYSEX message would be handled) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0 </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#a28f34d0493b102ac4b99c021257b5b5e">fluid_synth_sysex()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>, and <a class="el" href="synth_8h.html#a28f34d0493b102ac4b99c021257b5b5e">fluid_synth_sysex()</a>.</p>

</div>
</div>
<a class="anchor" id="ad5341f8e7c86835b197628f84a2d2c90"></a><!-- doxytag: member="synth.h::fluid_synth_pitch_bend" ref="ad5341f8e7c86835b197628f84a2d2c90" args="(fluid_synth_t *synth, int chan, int val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_pitch_bend </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>val</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the MIDI pitch bend controller value on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>MIDI pitch bend value (0-16383 with 8192 being center) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eadfa902517702f2dd8ae849b810175ac4">FLUID_INFO</a>, and <a class="el" href="synth_8h.html#ad5341f8e7c86835b197628f84a2d2c90">fluid_synth_pitch_bend()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>, and <a class="el" href="synth_8h.html#ad5341f8e7c86835b197628f84a2d2c90">fluid_synth_pitch_bend()</a>.</p>

</div>
</div>
<a class="anchor" id="a24735d9a0c92630f30cbad5fe9b7353d"></a><!-- doxytag: member="synth.h::fluid_synth_get_pitch_bend" ref="a24735d9a0c92630f30cbad5fe9b7353d" args="(fluid_synth_t *synth, int chan, int *ppitch_bend)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_get_pitch_bend </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>ppitch_bend</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the MIDI pitch bend controller value on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppitch_bend</em>&nbsp;</td><td>Location to store MIDI pitch bend value (0-16383 with 8192 being center) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, and <a class="el" href="synth_8h.html#a24735d9a0c92630f30cbad5fe9b7353d">fluid_synth_get_pitch_bend()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a24735d9a0c92630f30cbad5fe9b7353d">fluid_synth_get_pitch_bend()</a>.</p>

</div>
</div>
<a class="anchor" id="adb4df1ba450816d42ef40a16b2993549"></a><!-- doxytag: member="synth.h::fluid_synth_pitch_wheel_sens" ref="adb4df1ba450816d42ef40a16b2993549" args="(fluid_synth_t *synth, int chan, int val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_pitch_wheel_sens </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>val</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set MIDI pitch wheel sensitivity on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>Pitch wheel sensitivity value in semitones </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eadfa902517702f2dd8ae849b810175ac4">FLUID_INFO</a>, and <a class="el" href="synth_8h.html#adb4df1ba450816d42ef40a16b2993549">fluid_synth_pitch_wheel_sens()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#adb4df1ba450816d42ef40a16b2993549">fluid_synth_pitch_wheel_sens()</a>.</p>

</div>
</div>
<a class="anchor" id="afa1c6c8d98c068154678bf29e6c7f32b"></a><!-- doxytag: member="synth.h::fluid_synth_get_pitch_wheel_sens" ref="afa1c6c8d98c068154678bf29e6c7f32b" args="(fluid_synth_t *synth, int chan, int *pval)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_get_pitch_wheel_sens </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>pval</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get MIDI pitch wheel sensitivity on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pval</em>&nbsp;</td><td>Location to store pitch wheel sensitivity value in semitones </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>Sometime AFTER v1.0 API freeze. </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, and <a class="el" href="synth_8h.html#afa1c6c8d98c068154678bf29e6c7f32b">fluid_synth_get_pitch_wheel_sens()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#afa1c6c8d98c068154678bf29e6c7f32b">fluid_synth_get_pitch_wheel_sens()</a>.</p>

</div>
</div>
<a class="anchor" id="aad8df89a90669268b6bee09da40088a6"></a><!-- doxytag: member="synth.h::fluid_synth_program_change" ref="aad8df89a90669268b6bee09da40088a6" args="(fluid_synth_t *synth, int chan, int program)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_program_change </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>prognum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send a program change event on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prognum</em>&nbsp;</td><td>MIDI program number (0-127) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eadfa902517702f2dd8ae849b810175ac4">FLUID_INFO</a>, <a class="el" href="synth_8h.html#aad8df89a90669268b6bee09da40088a6">fluid_synth_program_change()</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9ea394460be1ec74fce15e1ff683606df0f">FLUID_WARN</a>, and <a class="el" href="struct__fluid__preset__t.html#a88abb2db089ec85c8793fadf6c6e12c3">_fluid_preset_t::sfont</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>, <a class="el" href="synth_8h.html#aad8df89a90669268b6bee09da40088a6">fluid_synth_program_change()</a>, <a class="el" href="synth_8h.html#ab8ab8f57ab6efedd6c371894c42a10f7">fluid_synth_program_reset()</a>, and <a class="el" href="synth_8h.html#a5541af149bb98e0eaaf91f5d3419cb10">fluid_synth_unset_program()</a>.</p>

</div>
</div>
<a class="anchor" id="a908d5ea45d97d17757a8a3bda504fd44"></a><!-- doxytag: member="synth.h::fluid_synth_channel_pressure" ref="a908d5ea45d97d17757a8a3bda504fd44" args="(fluid_synth_t *synth, int chan, int val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_channel_pressure </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>val</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the MIDI channel pressure controller value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>MIDI channel pressure value (0-127) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eadfa902517702f2dd8ae849b810175ac4">FLUID_INFO</a>, and <a class="el" href="synth_8h.html#a908d5ea45d97d17757a8a3bda504fd44">fluid_synth_channel_pressure()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a908d5ea45d97d17757a8a3bda504fd44">fluid_synth_channel_pressure()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="a97b0f45f00922a46b1c1961d5b1f8cb5"></a><!-- doxytag: member="synth.h::fluid_synth_bank_select" ref="a97b0f45f00922a46b1c1961d5b1f8cb5" args="(fluid_synth_t *synth, int chan, unsigned int bank)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_bank_select </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>bank</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set instrument bank number on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank</em>&nbsp;</td><td>MIDI bank number </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, and <a class="el" href="synth_8h.html#a97b0f45f00922a46b1c1961d5b1f8cb5">fluid_synth_bank_select()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a97b0f45f00922a46b1c1961d5b1f8cb5">fluid_synth_bank_select()</a>.</p>

</div>
</div>
<a class="anchor" id="addc8179bfc47d467956ed26f14793775"></a><!-- doxytag: member="synth.h::fluid_synth_sfont_select" ref="addc8179bfc47d467956ed26f14793775" args="(fluid_synth_t *synth, int chan, unsigned int sfont_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_sfont_select </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>sfont_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set SoundFont ID on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sfont_id</em>&nbsp;</td><td>ID of a loaded SoundFont </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, and <a class="el" href="synth_8h.html#addc8179bfc47d467956ed26f14793775">fluid_synth_sfont_select()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#addc8179bfc47d467956ed26f14793775">fluid_synth_sfont_select()</a>.</p>

</div>
</div>
<a class="anchor" id="ac783362b155fc9c3997f7fd3cf9b1d7f"></a><!-- doxytag: member="synth.h::fluid_synth_program_select" ref="ac783362b155fc9c3997f7fd3cf9b1d7f" args="(fluid_synth_t *synth, int chan, unsigned int sfont_id, unsigned int bank_num, unsigned int preset_num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_program_select </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>sfont_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>bank_num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>preset_num</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Select an instrument on a MIDI channel by SoundFont ID, bank and program numbers. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sfont_id</em>&nbsp;</td><td>ID of a loaded SoundFont </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank_num</em>&nbsp;</td><td>MIDI bank number </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>preset_num</em>&nbsp;</td><td>MIDI program number </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#ac783362b155fc9c3997f7fd3cf9b1d7f">fluid_synth_program_select()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ac783362b155fc9c3997f7fd3cf9b1d7f">fluid_synth_program_select()</a>.</p>

</div>
</div>
<a class="anchor" id="a38d8dc2f680024ce927f01424c13d32b"></a><!-- doxytag: member="synth.h::fluid_synth_program_select_by_sfont_name" ref="a38d8dc2f680024ce927f01424c13d32b" args="(fluid_synth_t *synth, int chan, const char *sfont_name, unsigned int bank_num, unsigned int preset_num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_program_select_by_sfont_name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>sfont_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>bank_num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>preset_num</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Select an instrument on a MIDI channel by SoundFont name, bank and program numbers. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sfont_name</em>&nbsp;</td><td>Name of a loaded SoundFont </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank_num</em>&nbsp;</td><td>MIDI bank number </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>preset_num</em>&nbsp;</td><td>MIDI program number </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0 </dd></dl>

<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="synth_8h.html#a38d8dc2f680024ce927f01424c13d32b">fluid_synth_program_select_by_sfont_name()</a>, and <a class="el" href="struct__fluid__preset__t.html#a88abb2db089ec85c8793fadf6c6e12c3">_fluid_preset_t::sfont</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a38d8dc2f680024ce927f01424c13d32b">fluid_synth_program_select_by_sfont_name()</a>.</p>

</div>
</div>
<a class="anchor" id="af8771f60cfb9f4b352fa7423621d35e5"></a><!-- doxytag: member="synth.h::fluid_synth_get_program" ref="af8771f60cfb9f4b352fa7423621d35e5" args="(fluid_synth_t *synth, int chan, unsigned int *sfont_id, unsigned int *bank_num, unsigned int *preset_num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_get_program </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&nbsp;</td>
          <td class="paramname"> <em>sfont_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&nbsp;</td>
          <td class="paramname"> <em>bank_num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&nbsp;</td>
          <td class="paramname"> <em>preset_num</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get current SoundFont ID, bank number and program number for a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sfont_id</em>&nbsp;</td><td>Location to store SoundFont ID </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank_num</em>&nbsp;</td><td>Location to store MIDI bank number </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>preset_num</em>&nbsp;</td><td>Location to store MIDI program number </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, and <a class="el" href="synth_8h.html#af8771f60cfb9f4b352fa7423621d35e5">fluid_synth_get_program()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#af8771f60cfb9f4b352fa7423621d35e5">fluid_synth_get_program()</a>.</p>

</div>
</div>
<a class="anchor" id="a5541af149bb98e0eaaf91f5d3419cb10"></a><!-- doxytag: member="synth.h::fluid_synth_unset_program" ref="a5541af149bb98e0eaaf91f5d3419cb10" args="(fluid_synth_t *synth, int chan)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_unset_program </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the preset of a MIDI channel to an unassigned state. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.1</dd></dl>
<p>Note: Channel retains its SoundFont ID and bank numbers, while the program number is set to an "unset" state. MIDI program changes may re-assign a preset if one matches. </p>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="synth_8h.html#aad8df89a90669268b6bee09da40088a6">fluid_synth_program_change()</a>, and <a class="el" href="synth_8h.html#a5541af149bb98e0eaaf91f5d3419cb10">fluid_synth_unset_program()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a5541af149bb98e0eaaf91f5d3419cb10">fluid_synth_unset_program()</a>.</p>

</div>
</div>
<a class="anchor" id="a00a22e3f06eba8c3d14d3f1aa49490e6"></a><!-- doxytag: member="synth.h::fluid_synth_get_channel_info" ref="a00a22e3f06eba8c3d14d3f1aa49490e6" args="(fluid_synth_t *synth, int chan, fluid_synth_channel_info_t *info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_get_channel_info </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct__fluid__synth__channel__info__t.html">fluid_synth_channel_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get information on the currently selected preset on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td>Caller supplied structure to fill with preset information </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.1 </dd></dl>

<p>References <a class="el" href="struct__fluid__synth__channel__info__t.html#afd9a1394be8d76060019d8bdef7c9ac4">_fluid_synth_channel_info_t::assigned</a>, <a class="el" href="struct__fluid__synth__channel__info__t.html#a4ff98f3ab2671caf4a76d900a9dc4c5c">_fluid_synth_channel_info_t::bank</a>, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="synth_8h.html#af7049260777aad176ba7b1e3b2266c8f">FLUID_SYNTH_CHANNEL_INFO_NAME_SIZE</a>, <a class="el" href="synth_8h.html#a00a22e3f06eba8c3d14d3f1aa49490e6">fluid_synth_get_channel_info()</a>, <a class="el" href="struct__fluid__sfont__t.html#ae955816cff10890c6369ac04733d37fb">_fluid_sfont_t::id</a>, <a class="el" href="struct__fluid__synth__channel__info__t.html#ade9ce5cb52196fc21b0a1375fc7f30c9">_fluid_synth_channel_info_t::name</a>, <a class="el" href="struct__fluid__synth__channel__info__t.html#adcbb970a6ee0a19956a456b65be796a3">_fluid_synth_channel_info_t::program</a>, <a class="el" href="struct__fluid__preset__t.html#a88abb2db089ec85c8793fadf6c6e12c3">_fluid_preset_t::sfont</a>, and <a class="el" href="struct__fluid__synth__channel__info__t.html#a4db9a91df5b0fdf4b1e0e32f70e472f7">_fluid_synth_channel_info_t::sfont_id</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a00a22e3f06eba8c3d14d3f1aa49490e6">fluid_synth_get_channel_info()</a>.</p>

</div>
</div>
<a class="anchor" id="ab8ab8f57ab6efedd6c371894c42a10f7"></a><!-- doxytag: member="synth.h::fluid_synth_program_reset" ref="ab8ab8f57ab6efedd6c371894c42a10f7" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_program_reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resend a bank select and a program change for every channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise</dd></dl>
<p>This function is called mainly after a SoundFont has been loaded, unloaded or reloaded. </p>

<p>References <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, <a class="el" href="synth_8h.html#aad8df89a90669268b6bee09da40088a6">fluid_synth_program_change()</a>, and <a class="el" href="synth_8h.html#ab8ab8f57ab6efedd6c371894c42a10f7">fluid_synth_program_reset()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#af97291d30d6ff54a475f7446f181e6f7">fluid_synth_add_sfont()</a>, <a class="el" href="synth_8h.html#ab8ab8f57ab6efedd6c371894c42a10f7">fluid_synth_program_reset()</a>, <a class="el" href="synth_8h.html#a0770cc4681deb524d1ed7d80695b635c">fluid_synth_remove_sfont()</a>, <a class="el" href="synth_8h.html#aaf9376cf7189f9c64da5ffdeed85c9c4">fluid_synth_sfload()</a>, and <a class="el" href="synth_8h.html#a212bb602e9022c8d8cdb4bc5957f7693">fluid_synth_sfunload()</a>.</p>

</div>
</div>
<a class="anchor" id="a3783aa3a825dfd81208d37039b6d2906"></a><!-- doxytag: member="synth.h::fluid_synth_system_reset" ref="a3783aa3a825dfd81208d37039b6d2906" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_system_reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send MIDI system reset command (big red 'panic' button), turns off notes and resets controllers. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#a3783aa3a825dfd81208d37039b6d2906">fluid_synth_system_reset()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>, and <a class="el" href="synth_8h.html#a3783aa3a825dfd81208d37039b6d2906">fluid_synth_system_reset()</a>.</p>

</div>
</div>
<a class="anchor" id="a3fba596ce8f5f4c0e54d8013348e80c4"></a><!-- doxytag: member="synth.h::fluid_synth_get_channel_preset" ref="a3fba596ce8f5f4c0e54d8013348e80c4" args="(fluid_synth_t *synth, int chan)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="struct__fluid__preset__t.html">fluid_preset_t</a>* fluid_synth_get_channel_preset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get active preset on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Preset or NULL if no preset active on channel </dd></dl>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd><a class="el" href="synth_8h.html#a00a22e3f06eba8c3d14d3f1aa49490e6" title="Get information on the currently selected preset on a MIDI channel.">fluid_synth_get_channel_info()</a> should replace most use cases.</dd></dl>
<p>NOTE: Should only be called from within synthesis thread, which includes SoundFont loader preset noteon methods. Not thread safe otherwise. </p>

<p>References <a class="el" href="synth_8h.html#a3fba596ce8f5f4c0e54d8013348e80c4">fluid_synth_get_channel_preset()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a3fba596ce8f5f4c0e54d8013348e80c4">fluid_synth_get_channel_preset()</a>.</p>

</div>
</div>
<a class="anchor" id="ac467475b877fa4c831cfe496c5801d25"></a><!-- doxytag: member="synth.h::fluid_synth_start" ref="ac467475b877fa4c831cfe496c5801d25" args="(fluid_synth_t *synth, unsigned int id, fluid_preset_t *preset, int audio_chan, int midi_chan, int key, int vel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_start </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct__fluid__preset__t.html">fluid_preset_t</a> *&nbsp;</td>
          <td class="paramname"> <em>preset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>audio_chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>vel</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create and start voices using a preset and a MIDI note on event. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>Voice group ID to use (can be used with <a class="el" href="synth_8h.html#a159e0f4c860e9d9828baa8365d8accb8" title="Stop notes for a given note event voice ID.">fluid_synth_stop()</a>). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>preset</em>&nbsp;</td><td>Preset to synthesize </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>audio_chan</em>&nbsp;</td><td>Unused currently, set to 0 </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>MIDI note number (0-127) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>vel</em>&nbsp;</td><td>MIDI velocity number (1-127) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise</dd></dl>
<p>NOTE: Should only be called from within synthesis thread, which includes SoundFont loader preset noteon method. </p>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#ac467475b877fa4c831cfe496c5801d25">fluid_synth_start()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ac467475b877fa4c831cfe496c5801d25">fluid_synth_start()</a>.</p>

</div>
</div>
<a class="anchor" id="a159e0f4c860e9d9828baa8365d8accb8"></a><!-- doxytag: member="synth.h::fluid_synth_stop" ref="a159e0f4c860e9d9828baa8365d8accb8" args="(fluid_synth_t *synth, unsigned int id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_stop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Stop notes for a given note event voice ID. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>Voice note event ID </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise</dd></dl>
<p>NOTE: In FluidSynth versions prior to 1.1.0 <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> would be returned if no matching voice note event ID was found. Versions after 1.1.0 only return <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> if an error occurs. </p>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#a159e0f4c860e9d9828baa8365d8accb8">fluid_synth_stop()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a159e0f4c860e9d9828baa8365d8accb8">fluid_synth_stop()</a>.</p>

</div>
</div>
<a class="anchor" id="aaf9376cf7189f9c64da5ffdeed85c9c4"></a><!-- doxytag: member="synth.h::fluid_synth_sfload" ref="aaf9376cf7189f9c64da5ffdeed85c9c4" args="(fluid_synth_t *synth, const char *filename, int reset_presets)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_sfload </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>reset_presets</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load a SoundFont file (filename is interpreted by SoundFont loaders). </p>
<p>The newly loaded SoundFont will be put on top of the SoundFont stack. Presets are searched starting from the SoundFont on the top of the stack, working the way down the stack until a preset is found.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>SoundFont instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>File to load </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reset_presets</em>&nbsp;</td><td>TRUE to re-assign presets for all MIDI channels </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SoundFont ID on success, FLUID_FAILED on error </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="example_8c-example.html#a3">example.c</a>, <a class="el" href="fluidsynth__arpeggio_8c-example.html#a14">fluidsynth_arpeggio.c</a>, <a class="el" href="fluidsynth__fx_8c-example.html#a3">fluidsynth_fx.c</a>, <a class="el" href="fluidsynth__metronome_8c-example.html#a13">fluidsynth_metronome.c</a>, and <a class="el" href="fluidsynth__simple_8c-example.html#a2">fluidsynth_simple.c</a>.</dd>
</dl>
<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="synth_8h.html#ab8ab8f57ab6efedd6c371894c42a10f7">fluid_synth_program_reset()</a>, <a class="el" href="synth_8h.html#aaf9376cf7189f9c64da5ffdeed85c9c4">fluid_synth_sfload()</a>, <a class="el" href="struct__fluid__sfont__t.html#ae955816cff10890c6369ac04733d37fb">_fluid_sfont_t::id</a>, and <a class="el" href="struct__fluid__sfont__info__t.html#aecb0bf6205267d084cd938edfb667885">_fluid_sfont_info_t::sfont</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#aaf9376cf7189f9c64da5ffdeed85c9c4">fluid_synth_sfload()</a>.</p>

</div>
</div>
<a class="anchor" id="a578273544b162af97633430b5c9b23ae"></a><!-- doxytag: member="synth.h::fluid_synth_sfreload" ref="a578273544b162af97633430b5c9b23ae" args="(fluid_synth_t *synth, unsigned int id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_sfreload </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reload a SoundFont. </p>
<p>The SoundFont retains its ID and index on the SoundFont stack. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>SoundFont instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>ID of SoundFont to reload </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SoundFont ID on success, FLUID_FAILED on error </dd></dl>

<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, <a class="el" href="synth_8h.html#a578273544b162af97633430b5c9b23ae">fluid_synth_sfreload()</a>, <a class="el" href="synth_8h.html#a212bb602e9022c8d8cdb4bc5957f7693">fluid_synth_sfunload()</a>, <a class="el" href="struct__fluid__sfont__t.html#ae955816cff10890c6369ac04733d37fb">_fluid_sfont_t::id</a>, and <a class="el" href="struct__fluid__sfont__info__t.html#aecb0bf6205267d084cd938edfb667885">_fluid_sfont_info_t::sfont</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a578273544b162af97633430b5c9b23ae">fluid_synth_sfreload()</a>.</p>

</div>
</div>
<a class="anchor" id="a212bb602e9022c8d8cdb4bc5957f7693"></a><!-- doxytag: member="synth.h::fluid_synth_sfunload" ref="a212bb602e9022c8d8cdb4bc5957f7693" args="(fluid_synth_t *synth, unsigned int id, int reset_presets)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_sfunload </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>reset_presets</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unload a SoundFont. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>SoundFont instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>ID of SoundFont to unload </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reset_presets</em>&nbsp;</td><td>TRUE to re-assign presets for all MIDI channels </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED on error </dd></dl>

<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, <a class="el" href="synth_8h.html#ab8ab8f57ab6efedd6c371894c42a10f7">fluid_synth_program_reset()</a>, <a class="el" href="synth_8h.html#a212bb602e9022c8d8cdb4bc5957f7693">fluid_synth_sfunload()</a>, and <a class="el" href="struct__fluid__sfont__info__t.html#aecb0bf6205267d084cd938edfb667885">_fluid_sfont_info_t::sfont</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a578273544b162af97633430b5c9b23ae">fluid_synth_sfreload()</a>, and <a class="el" href="synth_8h.html#a212bb602e9022c8d8cdb4bc5957f7693">fluid_synth_sfunload()</a>.</p>

</div>
</div>
<a class="anchor" id="af97291d30d6ff54a475f7446f181e6f7"></a><!-- doxytag: member="synth.h::fluid_synth_add_sfont" ref="af97291d30d6ff54a475f7446f181e6f7" args="(fluid_synth_t *synth, fluid_sfont_t *sfont)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_add_sfont </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct__fluid__sfont__t.html">fluid_sfont_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sfont</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a SoundFont. </p>
<p>The SoundFont will be added to the top of the SoundFont stack. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sfont</em>&nbsp;</td><td>SoundFont to add </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>New assigned SoundFont ID or FLUID_FAILED on error </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="synth_8h.html#af97291d30d6ff54a475f7446f181e6f7">fluid_synth_add_sfont()</a>, <a class="el" href="synth_8h.html#ab8ab8f57ab6efedd6c371894c42a10f7">fluid_synth_program_reset()</a>, and <a class="el" href="struct__fluid__sfont__t.html#ae955816cff10890c6369ac04733d37fb">_fluid_sfont_t::id</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#af97291d30d6ff54a475f7446f181e6f7">fluid_synth_add_sfont()</a>.</p>

</div>
</div>
<a class="anchor" id="a0770cc4681deb524d1ed7d80695b635c"></a><!-- doxytag: member="synth.h::fluid_synth_remove_sfont" ref="a0770cc4681deb524d1ed7d80695b635c" args="(fluid_synth_t *synth, fluid_sfont_t *sfont)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_remove_sfont </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct__fluid__sfont__t.html">fluid_sfont_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sfont</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a SoundFont from the SoundFont stack without deleting it. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sfont</em>&nbsp;</td><td>SoundFont to remove</td></tr>
  </table>
  </dd>
</dl>
<p>SoundFont is not freed and is left as the responsibility of the caller.</p>
<p>NOTE: The SoundFont should only be freed after there are no presets referencing it. This can only be ensured by the SoundFont loader and therefore this function should not normally be used. </p>

<p>References <a class="el" href="synth_8h.html#ab8ab8f57ab6efedd6c371894c42a10f7">fluid_synth_program_reset()</a>, <a class="el" href="synth_8h.html#a0770cc4681deb524d1ed7d80695b635c">fluid_synth_remove_sfont()</a>, and <a class="el" href="struct__fluid__sfont__info__t.html#aecb0bf6205267d084cd938edfb667885">_fluid_sfont_info_t::sfont</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a0770cc4681deb524d1ed7d80695b635c">fluid_synth_remove_sfont()</a>.</p>

</div>
</div>
<a class="anchor" id="ac35b806250626f65253007dbd6e20ce3"></a><!-- doxytag: member="synth.h::fluid_synth_sfcount" ref="ac35b806250626f65253007dbd6e20ce3" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_sfcount </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Count number of loaded SoundFont files. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Count of loaded SoundFont files. </dd></dl>

<p>References <a class="el" href="synth_8h.html#ac35b806250626f65253007dbd6e20ce3">fluid_synth_sfcount()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ac35b806250626f65253007dbd6e20ce3">fluid_synth_sfcount()</a>.</p>

</div>
</div>
<a class="anchor" id="a063116a030b8c66f0b3d55b432a91df3"></a><!-- doxytag: member="synth.h::fluid_synth_get_sfont" ref="a063116a030b8c66f0b3d55b432a91df3" args="(fluid_synth_t *synth, unsigned int num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="struct__fluid__sfont__t.html">fluid_sfont_t</a>* fluid_synth_get_sfont </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>num</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get SoundFont by index. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>SoundFont index on the stack (starting from 0 for top of stack). </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SoundFont instance or NULL if invalid index</dd></dl>
<p>NOTE: Caller should be certain that SoundFont is not deleted (unloaded) for the duration of use of the returned pointer. </p>

<p>References <a class="el" href="synth_8h.html#a063116a030b8c66f0b3d55b432a91df3">fluid_synth_get_sfont()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a063116a030b8c66f0b3d55b432a91df3">fluid_synth_get_sfont()</a>.</p>

</div>
</div>
<a class="anchor" id="a91156321a0db48db56f851c2282f424f"></a><!-- doxytag: member="synth.h::fluid_synth_get_sfont_by_id" ref="a91156321a0db48db56f851c2282f424f" args="(fluid_synth_t *synth, unsigned int id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="struct__fluid__sfont__t.html">fluid_sfont_t</a>* fluid_synth_get_sfont_by_id </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get SoundFont by ID. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>SoundFont ID </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SoundFont instance or NULL if invalid ID</dd></dl>
<p>NOTE: Caller should be certain that SoundFont is not deleted (unloaded) for the duration of use of the returned pointer. </p>

<p>References <a class="el" href="synth_8h.html#a91156321a0db48db56f851c2282f424f">fluid_synth_get_sfont_by_id()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a91156321a0db48db56f851c2282f424f">fluid_synth_get_sfont_by_id()</a>.</p>

</div>
</div>
<a class="anchor" id="a5856acea557bb30b8c8cfbaf7bd008c6"></a><!-- doxytag: member="synth.h::fluid_synth_get_sfont_by_name" ref="a5856acea557bb30b8c8cfbaf7bd008c6" args="(fluid_synth_t *synth, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="struct__fluid__sfont__t.html">fluid_sfont_t</a>* fluid_synth_get_sfont_by_name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get SoundFont by name. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name of SoundFont </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SoundFont instance or NULL if invalid name </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0</dd></dl>
<p>NOTE: Caller should be certain that SoundFont is not deleted (unloaded) for the duration of use of the returned pointer. </p>

<p>References <a class="el" href="synth_8h.html#a5856acea557bb30b8c8cfbaf7bd008c6">fluid_synth_get_sfont_by_name()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a5856acea557bb30b8c8cfbaf7bd008c6">fluid_synth_get_sfont_by_name()</a>.</p>

</div>
</div>
<a class="anchor" id="a8b533b00ff0884d3a2bb3f61abfe7682"></a><!-- doxytag: member="synth.h::fluid_synth_set_bank_offset" ref="a8b533b00ff0884d3a2bb3f61abfe7682" args="(fluid_synth_t *synth, int sfont_id, int offset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_set_bank_offset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>sfont_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>offset</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Offset the bank numbers of a loaded SoundFont. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sfont_id</em>&nbsp;</td><td>ID of a loaded SoundFont </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>Bank offset value to apply to all instruments </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="struct__fluid__sfont__info__t.html#ae980836bb4357104b4e223ab4e533f03">_fluid_sfont_info_t::bankofs</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, <a class="el" href="synth_8h.html#a8b533b00ff0884d3a2bb3f61abfe7682">fluid_synth_set_bank_offset()</a>, and <a class="el" href="struct__fluid__sfont__info__t.html#aecb0bf6205267d084cd938edfb667885">_fluid_sfont_info_t::sfont</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a8b533b00ff0884d3a2bb3f61abfe7682">fluid_synth_set_bank_offset()</a>.</p>

</div>
</div>
<a class="anchor" id="aea24f9786739a695aaf6403316bf820f"></a><!-- doxytag: member="synth.h::fluid_synth_get_bank_offset" ref="aea24f9786739a695aaf6403316bf820f" args="(fluid_synth_t *synth, int sfont_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_get_bank_offset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>sfont_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get bank offset of a loaded SoundFont. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sfont_id</em>&nbsp;</td><td>ID of a loaded SoundFont </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SoundFont bank offset value </dd></dl>

<p>References <a class="el" href="struct__fluid__sfont__info__t.html#ae980836bb4357104b4e223ab4e533f03">_fluid_sfont_info_t::bankofs</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="synth_8h.html#aea24f9786739a695aaf6403316bf820f">fluid_synth_get_bank_offset()</a>, and <a class="el" href="struct__fluid__sfont__info__t.html#aecb0bf6205267d084cd938edfb667885">_fluid_sfont_info_t::sfont</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#aea24f9786739a695aaf6403316bf820f">fluid_synth_get_bank_offset()</a>.</p>

</div>
</div>
<a class="anchor" id="a9740cb53a1cc10887694cbca5f800dc1"></a><!-- doxytag: member="synth.h::fluid_synth_set_reverb" ref="a9740cb53a1cc10887694cbca5f800dc1" args="(fluid_synth_t *synth, double roomsize, double damping, double width, double level)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_set_reverb </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>roomsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>damping</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>level</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set reverb parameters. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>roomsize</em>&nbsp;</td><td>Reverb room size value (0.0-1.2) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>damping</em>&nbsp;</td><td>Reverb damping value (0.0-1.0) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td>Reverb width value (0.0-100.0) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>level</em>&nbsp;</td><td>Reverb level value (0.0-1.0)</td></tr>
  </table>
  </dd>
</dl>
<p>NOTE: Not realtime safe and therefore should not be called from synthesis context at the risk of stalling audio output. </p>

<p>References <a class="el" href="synth_8h.html#a9740cb53a1cc10887694cbca5f800dc1">fluid_synth_set_reverb()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a9740cb53a1cc10887694cbca5f800dc1">fluid_synth_set_reverb()</a>.</p>

</div>
</div>
<a class="anchor" id="ad51c73aec209c54c7810bede73e3a786"></a><!-- doxytag: member="synth.h::fluid_synth_set_reverb_on" ref="ad51c73aec209c54c7810bede73e3a786" args="(fluid_synth_t *synth, int on)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_set_reverb_on </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>on</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enable or disable reverb effect. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>on</em>&nbsp;</td><td>TRUE to enable reverb, FALSE to disable </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="synth_8h.html#ad51c73aec209c54c7810bede73e3a786">fluid_synth_set_reverb_on()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ad51c73aec209c54c7810bede73e3a786">fluid_synth_set_reverb_on()</a>, and <a class="el" href="synth_8h.html#a344f7369c0f57d30f72702d0c88e6178">new_fluid_synth()</a>.</p>

</div>
</div>
<a class="anchor" id="acb772ddf5fb47051b414af8ec0ac6d7d"></a><!-- doxytag: member="synth.h::fluid_synth_get_reverb_roomsize" ref="acb772ddf5fb47051b414af8ec0ac6d7d" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API double fluid_synth_get_reverb_roomsize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get reverb room size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reverb room size (0.0-1.2) </dd></dl>

<p>References <a class="el" href="synth_8h.html#acb772ddf5fb47051b414af8ec0ac6d7d">fluid_synth_get_reverb_roomsize()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#acb772ddf5fb47051b414af8ec0ac6d7d">fluid_synth_get_reverb_roomsize()</a>.</p>

</div>
</div>
<a class="anchor" id="ad3f4b80a68a2700df98dd84dc7697468"></a><!-- doxytag: member="synth.h::fluid_synth_get_reverb_damp" ref="ad3f4b80a68a2700df98dd84dc7697468" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API double fluid_synth_get_reverb_damp </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get reverb damping. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reverb damping value (0.0-1.0) </dd></dl>

<p>References <a class="el" href="synth_8h.html#ad3f4b80a68a2700df98dd84dc7697468">fluid_synth_get_reverb_damp()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ad3f4b80a68a2700df98dd84dc7697468">fluid_synth_get_reverb_damp()</a>.</p>

</div>
</div>
<a class="anchor" id="a84dd4c9d18b187e35e1837c77babcf93"></a><!-- doxytag: member="synth.h::fluid_synth_get_reverb_level" ref="a84dd4c9d18b187e35e1837c77babcf93" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API double fluid_synth_get_reverb_level </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get reverb level. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reverb level value (0.0-1.0) </dd></dl>

<p>References <a class="el" href="synth_8h.html#a84dd4c9d18b187e35e1837c77babcf93">fluid_synth_get_reverb_level()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a84dd4c9d18b187e35e1837c77babcf93">fluid_synth_get_reverb_level()</a>.</p>

</div>
</div>
<a class="anchor" id="ac4e6a3d238ee266e60c05d07cc907779"></a><!-- doxytag: member="synth.h::fluid_synth_get_reverb_width" ref="ac4e6a3d238ee266e60c05d07cc907779" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API double fluid_synth_get_reverb_width </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get reverb width. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reverb width value (0.0-100.0) </dd></dl>

<p>References <a class="el" href="synth_8h.html#ac4e6a3d238ee266e60c05d07cc907779">fluid_synth_get_reverb_width()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ac4e6a3d238ee266e60c05d07cc907779">fluid_synth_get_reverb_width()</a>.</p>

</div>
</div>
<a class="anchor" id="afe63e59d53c6c4990bbf3fa9211189aa"></a><!-- doxytag: member="synth.h::fluid_synth_set_chorus" ref="afe63e59d53c6c4990bbf3fa9211189aa" args="(fluid_synth_t *synth, int nr, double level, double speed, double depth_ms, int type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_set_chorus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>nr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>speed</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>depth_ms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set chorus parameters. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nr</em>&nbsp;</td><td>Chorus voice count (0-99, CPU time consumption proportional to this value) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>level</em>&nbsp;</td><td>Chorus level (0.0-1.0) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>speed</em>&nbsp;</td><td>Chorus speed in Hz (0.29-5.0) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>depth_ms</em>&nbsp;</td><td>Chorus depth (max value depends on synth sample rate, 0.0-21.0 is safe for sample rate values up to 96KHz) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Chorus waveform type (<a class="el" href="synth_8h.html#a96a2e0002fb015c8a32ccf287fba9264" title="Chorus modulation waveform type.">fluid_chorus_mod</a>)</td></tr>
  </table>
  </dd>
</dl>
<p>NOTE: Not realtime safe and therefore should not be called from synthesis context at the risk of stalling audio output. </p>

<p>References <a class="el" href="synth_8h.html#afe63e59d53c6c4990bbf3fa9211189aa">fluid_synth_set_chorus()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#afe63e59d53c6c4990bbf3fa9211189aa">fluid_synth_set_chorus()</a>.</p>

</div>
</div>
<a class="anchor" id="a2a7b8da44aab1ab7516410e60d92018d"></a><!-- doxytag: member="synth.h::fluid_synth_set_chorus_on" ref="a2a7b8da44aab1ab7516410e60d92018d" args="(fluid_synth_t *synth, int on)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_set_chorus_on </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>on</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enable or disable chorus effect. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>on</em>&nbsp;</td><td>TRUE to enable chorus, FALSE to disable </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="synth_8h.html#a2a7b8da44aab1ab7516410e60d92018d">fluid_synth_set_chorus_on()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a2a7b8da44aab1ab7516410e60d92018d">fluid_synth_set_chorus_on()</a>, and <a class="el" href="synth_8h.html#a344f7369c0f57d30f72702d0c88e6178">new_fluid_synth()</a>.</p>

</div>
</div>
<a class="anchor" id="abff8943c65c7edcb8b230cf97666664c"></a><!-- doxytag: member="synth.h::fluid_synth_get_chorus_nr" ref="abff8943c65c7edcb8b230cf97666664c" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_get_chorus_nr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get chorus voice number (delay line count) value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Chorus voice count (0-99) </dd></dl>

<p>References <a class="el" href="synth_8h.html#abff8943c65c7edcb8b230cf97666664c">fluid_synth_get_chorus_nr()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#abff8943c65c7edcb8b230cf97666664c">fluid_synth_get_chorus_nr()</a>.</p>

</div>
</div>
<a class="anchor" id="ad3ee4162ff6ed6f1c333fbabdced92d6"></a><!-- doxytag: member="synth.h::fluid_synth_get_chorus_level" ref="ad3ee4162ff6ed6f1c333fbabdced92d6" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API double fluid_synth_get_chorus_level </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get chorus level. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Chorus level value (0.0-10.0) </dd></dl>

<p>References <a class="el" href="synth_8h.html#ad3ee4162ff6ed6f1c333fbabdced92d6">fluid_synth_get_chorus_level()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ad3ee4162ff6ed6f1c333fbabdced92d6">fluid_synth_get_chorus_level()</a>.</p>

</div>
</div>
<a class="anchor" id="aa3d1496f89cdd227450e10f5c496d65e"></a><!-- doxytag: member="synth.h::fluid_synth_get_chorus_speed_Hz" ref="aa3d1496f89cdd227450e10f5c496d65e" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API double fluid_synth_get_chorus_speed_Hz </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get chorus speed in Hz. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Chorus speed in Hz (0.29-5.0) </dd></dl>

<p>References <a class="el" href="synth_8h.html#aa3d1496f89cdd227450e10f5c496d65e">fluid_synth_get_chorus_speed_Hz()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#aa3d1496f89cdd227450e10f5c496d65e">fluid_synth_get_chorus_speed_Hz()</a>.</p>

</div>
</div>
<a class="anchor" id="aa49fd6a29d99b11d5c6b9007a5beb0af"></a><!-- doxytag: member="synth.h::fluid_synth_get_chorus_depth_ms" ref="aa49fd6a29d99b11d5c6b9007a5beb0af" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API double fluid_synth_get_chorus_depth_ms </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get chorus depth. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Chorus depth </dd></dl>

<p>References <a class="el" href="synth_8h.html#aa49fd6a29d99b11d5c6b9007a5beb0af">fluid_synth_get_chorus_depth_ms()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#aa49fd6a29d99b11d5c6b9007a5beb0af">fluid_synth_get_chorus_depth_ms()</a>.</p>

</div>
</div>
<a class="anchor" id="a6304857a25b46954b1950256a0c09f50"></a><!-- doxytag: member="synth.h::fluid_synth_get_chorus_type" ref="a6304857a25b46954b1950256a0c09f50" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_get_chorus_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get chorus waveform type. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Chorus waveform type (<a class="el" href="synth_8h.html#a96a2e0002fb015c8a32ccf287fba9264" title="Chorus modulation waveform type.">fluid_chorus_mod</a>) </dd></dl>

<p>References <a class="el" href="synth_8h.html#a6304857a25b46954b1950256a0c09f50">fluid_synth_get_chorus_type()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a6304857a25b46954b1950256a0c09f50">fluid_synth_get_chorus_type()</a>.</p>

</div>
</div>
<a class="anchor" id="a0f0d3d99a9cad711442c86244c990f52"></a><!-- doxytag: member="synth.h::fluid_synth_count_midi_channels" ref="a0f0d3d99a9cad711442c86244c990f52" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_count_midi_channels </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the total count of MIDI channels. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Count of MIDI channels </dd></dl>

<p>References <a class="el" href="synth_8h.html#a0f0d3d99a9cad711442c86244c990f52">fluid_synth_count_midi_channels()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a0f0d3d99a9cad711442c86244c990f52">fluid_synth_count_midi_channels()</a>.</p>

</div>
</div>
<a class="anchor" id="a119dce1af0c68f5bc06a17fdd6fab2f3"></a><!-- doxytag: member="synth.h::fluid_synth_count_audio_channels" ref="a119dce1af0c68f5bc06a17fdd6fab2f3" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_count_audio_channels </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the total count of audio channels. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Count of audio channel stereo pairs (1 = 2 channels, 2 = 4, etc) </dd></dl>

<p>References <a class="el" href="synth_8h.html#a119dce1af0c68f5bc06a17fdd6fab2f3">fluid_synth_count_audio_channels()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a119dce1af0c68f5bc06a17fdd6fab2f3">fluid_synth_count_audio_channels()</a>.</p>

</div>
</div>
<a class="anchor" id="abeb57e262972fd7610f37e5c902f35a2"></a><!-- doxytag: member="synth.h::fluid_synth_count_audio_groups" ref="abeb57e262972fd7610f37e5c902f35a2" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_count_audio_groups </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the total number of allocated audio channels. </p>
<p>Usually identical to the number of audio channels. Can be employed by LADSPA effects subsystem.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Count of audio group stereo pairs (1 = 2 channels, 2 = 4, etc) </dd></dl>

<p>References <a class="el" href="synth_8h.html#abeb57e262972fd7610f37e5c902f35a2">fluid_synth_count_audio_groups()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#abeb57e262972fd7610f37e5c902f35a2">fluid_synth_count_audio_groups()</a>.</p>

</div>
</div>
<a class="anchor" id="a2e20e06d129a1f54f039a4ef7335ffff"></a><!-- doxytag: member="synth.h::fluid_synth_count_effects_channels" ref="a2e20e06d129a1f54f039a4ef7335ffff" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_count_effects_channels </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the total number of allocated effects channels. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Count of allocated effects channels </dd></dl>

<p>References <a class="el" href="synth_8h.html#a2e20e06d129a1f54f039a4ef7335ffff">fluid_synth_count_effects_channels()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a2e20e06d129a1f54f039a4ef7335ffff">fluid_synth_count_effects_channels()</a>.</p>

</div>
</div>
<a class="anchor" id="ab614bfeafc8b8b632cf1433f8dfce85a"></a><!-- doxytag: member="synth.h::fluid_synth_set_sample_rate" ref="ab614bfeafc8b8b632cf1433f8dfce85a" args="(fluid_synth_t *synth, float sample_rate)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_set_sample_rate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>sample_rate</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set sample rate of the synth. </p>
<p>NOTE: This function is currently experimental and should only be used when no voices or notes are active, and before any rendering calls. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sample_rate</em>&nbsp;</td><td>New sample rate (Hz) </td></tr>
  </table>
  </dd>
</dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.2 </dd></dl>

<p>References <a class="el" href="settings_8h.html#a4a570095ef3de25e77f4dd9c574bc56c">fluid_settings_getint()</a>, and <a class="el" href="synth_8h.html#ab614bfeafc8b8b632cf1433f8dfce85a">fluid_synth_set_sample_rate()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ab614bfeafc8b8b632cf1433f8dfce85a">fluid_synth_set_sample_rate()</a>, and <a class="el" href="synth_8h.html#a344f7369c0f57d30f72702d0c88e6178">new_fluid_synth()</a>.</p>

</div>
</div>
<a class="anchor" id="ab202e6e37360759e48b066e6db96c4ae"></a><!-- doxytag: member="synth.h::fluid_synth_set_gain" ref="ab202e6e37360759e48b066e6db96c4ae" args="(fluid_synth_t *synth, float gain)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_set_gain </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>gain</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set synth output gain value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>gain</em>&nbsp;</td><td>Gain value (function clamps value to the range 0.0 to 10.0) </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="synth_8h.html#ab202e6e37360759e48b066e6db96c4ae">fluid_synth_set_gain()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ab202e6e37360759e48b066e6db96c4ae">fluid_synth_set_gain()</a>.</p>

</div>
</div>
<a class="anchor" id="ac71c76ca7145c0c2bb1d5d4bddb4ca9f"></a><!-- doxytag: member="synth.h::fluid_synth_get_gain" ref="ac71c76ca7145c0c2bb1d5d4bddb4ca9f" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API float fluid_synth_get_gain </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get synth output gain value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Synth gain value (0.0 to 10.0) </dd></dl>

<p>References <a class="el" href="synth_8h.html#ac71c76ca7145c0c2bb1d5d4bddb4ca9f">fluid_synth_get_gain()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ac71c76ca7145c0c2bb1d5d4bddb4ca9f">fluid_synth_get_gain()</a>.</p>

</div>
</div>
<a class="anchor" id="ab6cfd644bacad8ae3a408c8475116878"></a><!-- doxytag: member="synth.h::fluid_synth_set_polyphony" ref="ab6cfd644bacad8ae3a408c8475116878" args="(fluid_synth_t *synth, int polyphony)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_set_polyphony </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>polyphony</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set synthesizer polyphony (max number of voices). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>polyphony</em>&nbsp;</td><td>Polyphony to assign </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.0.6 </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#ab6cfd644bacad8ae3a408c8475116878">fluid_synth_set_polyphony()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ab6cfd644bacad8ae3a408c8475116878">fluid_synth_set_polyphony()</a>.</p>

</div>
</div>
<a class="anchor" id="a20b59114a7e53fcbd8465666ba2790e2"></a><!-- doxytag: member="synth.h::fluid_synth_get_polyphony" ref="a20b59114a7e53fcbd8465666ba2790e2" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_get_polyphony </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get current synthesizer polyphony (max number of voices). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Synth polyphony value. </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.0.6 </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#a20b59114a7e53fcbd8465666ba2790e2">fluid_synth_get_polyphony()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a20b59114a7e53fcbd8465666ba2790e2">fluid_synth_get_polyphony()</a>.</p>

</div>
</div>
<a class="anchor" id="a5d6f71e63f60df1a83e8490a867d8910"></a><!-- doxytag: member="synth.h::fluid_synth_get_active_voice_count" ref="a5d6f71e63f60df1a83e8490a867d8910" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_get_active_voice_count </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get current number of active voices. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of currently active voices. </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0</dd></dl>
<p>Note: To generate accurate continuous statistics of the voice count, caller should ensure this function is called synchronously with the audio synthesis process. This can be done in the <a class="el" href="audio_8h.html#a3959d8add1dea97e507a5ea2c802c0bc" title="Create a new audio driver.">new_fluid_audio_driver2()</a> audio callback function for example. </p>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#a5d6f71e63f60df1a83e8490a867d8910">fluid_synth_get_active_voice_count()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a5d6f71e63f60df1a83e8490a867d8910">fluid_synth_get_active_voice_count()</a>.</p>

</div>
</div>
<a class="anchor" id="ab848da001621ea979f44b11e9befbc3c"></a><!-- doxytag: member="synth.h::fluid_synth_get_internal_bufsize" ref="ab848da001621ea979f44b11e9befbc3c" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_get_internal_bufsize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the internal synthesis buffer size value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Internal buffer size in audio frames.</dd></dl>
<p>Audio is synthesized this number of frames at a time. Defaults to 64 frames. </p>

<p>References <a class="el" href="synth_8h.html#ab848da001621ea979f44b11e9befbc3c">fluid_synth_get_internal_bufsize()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ab848da001621ea979f44b11e9befbc3c">fluid_synth_get_internal_bufsize()</a>.</p>

</div>
</div>
<a class="anchor" id="a4268f661c6b7f8552fdf5ed5bdfcddfc"></a><!-- doxytag: member="synth.h::fluid_synth_set_interp_method" ref="a4268f661c6b7f8552fdf5ed5bdfcddfc" args="(fluid_synth_t *synth, int chan, int interp_method)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_set_interp_method </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>interp_method</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set synthesis interpolation method on one or all MIDI channels. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel to set interpolation method on or -1 for all channels </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>interp_method</em>&nbsp;</td><td>Interpolation method (<a class="el" href="synth_8h.html#a4a2efef77b267500dd9c19c0dc9e4633" title="Synthesis interpolation method.">fluid_interp</a>) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, and <a class="el" href="synth_8h.html#a4268f661c6b7f8552fdf5ed5bdfcddfc">fluid_synth_set_interp_method()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a4268f661c6b7f8552fdf5ed5bdfcddfc">fluid_synth_set_interp_method()</a>.</p>

</div>
</div>
<a class="anchor" id="ae5d823189a618befba732ec679beac74"></a><!-- doxytag: member="synth.h::fluid_synth_set_gen" ref="ae5d823189a618befba732ec679beac74" args="(fluid_synth_t *synth, int chan, int param, float value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_set_gen </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>param</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set a SoundFont generator (effect) value on a MIDI channel in real-time. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>SoundFont generator ID (<a class="el" href="gen_8h.html#ad17a24ae3b25f3b8cc5762f818eef9b4" title="Generator (effect) numbers (Soundfont 2.01 specifications section 8.1.3).">fluid_gen_type</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Offset generator value to assign to the MIDI channel </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise</dd></dl>
<p>Parameter numbers and ranges are described in the SoundFont 2.01 specification PDF, paragraph 8.1.3, page 48. See <a class="el" href="gen_8h.html#ad17a24ae3b25f3b8cc5762f818eef9b4" title="Generator (effect) numbers (Soundfont 2.01 specifications section 8.1.3).">fluid_gen_type</a>. </p>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, <a class="el" href="synth_8h.html#ae5d823189a618befba732ec679beac74">fluid_synth_set_gen()</a>, and <a class="el" href="gen_8h.html#ad17a24ae3b25f3b8cc5762f818eef9b4a9c372c341b7b1a718f0016f40c615cf3">GEN_LAST</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ae5d823189a618befba732ec679beac74">fluid_synth_set_gen()</a>.</p>

</div>
</div>
<a class="anchor" id="a14386a2821c1f6d253fd2d53a21c3b98"></a><!-- doxytag: member="synth.h::fluid_synth_set_gen2" ref="a14386a2821c1f6d253fd2d53a21c3b98" args="(fluid_synth_t *synth, int chan, int param, float value, int absolute, int normalized)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_set_gen2 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>param</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>absolute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>normalized</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set a SoundFont generator (effect) value on a MIDI channel in real-time. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>SoundFont generator ID (<a class="el" href="gen_8h.html#ad17a24ae3b25f3b8cc5762f818eef9b4" title="Generator (effect) numbers (Soundfont 2.01 specifications section 8.1.3).">fluid_gen_type</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Offset or absolute generator value to assign to the MIDI channel </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>absolute</em>&nbsp;</td><td>0 to assign a relative value, non-zero to assign an absolute value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>normalized</em>&nbsp;</td><td>0 if value is specified in the native units of the generator, non-zero to take the value as a 0.0-1.0 range and apply it to the valid generator effect range (scaled and shifted as necessary). </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0</dd></dl>
<p>This function allows for setting all effect parameters in real time on a MIDI channel. Setting absolute to non-zero will cause the value to override any generator values set in the instruments played on the MIDI channel. See SoundFont 2.01 spec, paragraph 8.1.3, page 48 for details on SoundFont generator parameters and valid ranges. </p>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, <a class="el" href="synth_8h.html#a14386a2821c1f6d253fd2d53a21c3b98">fluid_synth_set_gen2()</a>, and <a class="el" href="gen_8h.html#ad17a24ae3b25f3b8cc5762f818eef9b4a9c372c341b7b1a718f0016f40c615cf3">GEN_LAST</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a14386a2821c1f6d253fd2d53a21c3b98">fluid_synth_set_gen2()</a>.</p>

</div>
</div>
<a class="anchor" id="a77847dc600410fefcc229c8cf576fa54"></a><!-- doxytag: member="synth.h::fluid_synth_get_gen" ref="a77847dc600410fefcc229c8cf576fa54" args="(fluid_synth_t *synth, int chan, int param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API float fluid_synth_get_gen </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get generator value assigned to a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>SoundFont generator ID (<a class="el" href="gen_8h.html#ad17a24ae3b25f3b8cc5762f818eef9b4" title="Generator (effect) numbers (Soundfont 2.01 specifications section 8.1.3).">fluid_gen_type</a>) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Current generator value assigned to MIDI channel </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="synth_8h.html#a77847dc600410fefcc229c8cf576fa54">fluid_synth_get_gen()</a>, and <a class="el" href="gen_8h.html#ad17a24ae3b25f3b8cc5762f818eef9b4a9c372c341b7b1a718f0016f40c615cf3">GEN_LAST</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a77847dc600410fefcc229c8cf576fa54">fluid_synth_get_gen()</a>.</p>

</div>
</div>
<a class="anchor" id="ac08ec42e90f094ceeba60a657db5bf49"></a><!-- doxytag: member="synth.h::fluid_synth_create_key_tuning" ref="ac08ec42e90f094ceeba60a657db5bf49" args="(fluid_synth_t *synth, int bank, int prog, const char *name, const double *pitch)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_create_key_tuning </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>prog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&nbsp;</td>
          <td class="paramname"> <em>pitch</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the tuning of the entire MIDI note scale. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank</em>&nbsp;</td><td>Tuning bank number (0-127), not related to MIDI instrument bank </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prog</em>&nbsp;</td><td>Tuning preset number (0-127), not related to MIDI instrument program </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Label name for this tuning </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pitch</em>&nbsp;</td><td>Array of pitch values (length of 128, each value is number of cents, for example normally note 0 is 0.0, 1 is 100.0, 60 is 6000.0, etc). Pass NULL to create a well-tempered (normal) scale. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise</dd></dl>
<p>NOTE: Tuning is not applied in realtime to existing notes of the replaced tuning (if any), use <a class="el" href="synth_8h.html#a82eea41553b546ec063c2dc840ca711d" title="Set the tuning of the entire MIDI note scale.">fluid_synth_activate_key_tuning()</a> instead to specify this behavior. </p>

<p>References <a class="el" href="synth_8h.html#a82eea41553b546ec063c2dc840ca711d">fluid_synth_activate_key_tuning()</a>, and <a class="el" href="synth_8h.html#ac08ec42e90f094ceeba60a657db5bf49">fluid_synth_create_key_tuning()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ac08ec42e90f094ceeba60a657db5bf49">fluid_synth_create_key_tuning()</a>.</p>

</div>
</div>
<a class="anchor" id="a82eea41553b546ec063c2dc840ca711d"></a><!-- doxytag: member="synth.h::fluid_synth_activate_key_tuning" ref="a82eea41553b546ec063c2dc840ca711d" args="(fluid_synth_t *synth, int bank, int prog, const char *name, const double *pitch, int apply)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_activate_key_tuning </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>prog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&nbsp;</td>
          <td class="paramname"> <em>pitch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>apply</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the tuning of the entire MIDI note scale. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank</em>&nbsp;</td><td>Tuning bank number (0-127), not related to MIDI instrument bank </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prog</em>&nbsp;</td><td>Tuning preset number (0-127), not related to MIDI instrument program </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Label name for this tuning </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pitch</em>&nbsp;</td><td>Array of pitch values (length of 128, each value is number of cents, for example normally note 0 is 0.0, 1 is 100.0, 60 is 6000.0, etc). Pass NULL to create a well-tempered (normal) scale. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>apply</em>&nbsp;</td><td>TRUE to apply new tuning in realtime to existing notes which are using the replaced tuning (if any), FALSE otherwise </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0 </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#a82eea41553b546ec063c2dc840ca711d">fluid_synth_activate_key_tuning()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a82eea41553b546ec063c2dc840ca711d">fluid_synth_activate_key_tuning()</a>, and <a class="el" href="synth_8h.html#ac08ec42e90f094ceeba60a657db5bf49">fluid_synth_create_key_tuning()</a>.</p>

</div>
</div>
<a class="anchor" id="a018142a6c6e818d8c0474cfd188aa3b6"></a><!-- doxytag: member="synth.h::fluid_synth_create_octave_tuning" ref="a018142a6c6e818d8c0474cfd188aa3b6" args="(fluid_synth_t *synth, int bank, int prog, const char *name, const double *pitch)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_create_octave_tuning </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>prog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&nbsp;</td>
          <td class="paramname"> <em>pitch</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Apply an octave tuning to every octave in the MIDI note scale. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank</em>&nbsp;</td><td>Tuning bank number (0-127), not related to MIDI instrument bank </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prog</em>&nbsp;</td><td>Tuning preset number (0-127), not related to MIDI instrument program </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Label name for this tuning </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pitch</em>&nbsp;</td><td>Array of pitch values (length of 12 for each note of an octave starting at note C, values are number of offset cents to add to the normal tuning amount) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise</dd></dl>
<p>NOTE: Tuning is not applied in realtime to existing notes of the replaced tuning (if any), use <a class="el" href="synth_8h.html#a50ffe674e0e4ae9c778cfe41eabf110b" title="Activate an octave tuning on every octave in the MIDI note scale.">fluid_synth_activate_octave_tuning()</a> instead to specify this behavior. </p>

<p>References <a class="el" href="synth_8h.html#a50ffe674e0e4ae9c778cfe41eabf110b">fluid_synth_activate_octave_tuning()</a>, and <a class="el" href="synth_8h.html#a018142a6c6e818d8c0474cfd188aa3b6">fluid_synth_create_octave_tuning()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a018142a6c6e818d8c0474cfd188aa3b6">fluid_synth_create_octave_tuning()</a>.</p>

</div>
</div>
<a class="anchor" id="a50ffe674e0e4ae9c778cfe41eabf110b"></a><!-- doxytag: member="synth.h::fluid_synth_activate_octave_tuning" ref="a50ffe674e0e4ae9c778cfe41eabf110b" args="(fluid_synth_t *synth, int bank, int prog, const char *name, const double *pitch, int apply)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_activate_octave_tuning </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>prog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&nbsp;</td>
          <td class="paramname"> <em>pitch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>apply</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Activate an octave tuning on every octave in the MIDI note scale. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank</em>&nbsp;</td><td>Tuning bank number (0-127), not related to MIDI instrument bank </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prog</em>&nbsp;</td><td>Tuning preset number (0-127), not related to MIDI instrument program </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Label name for this tuning </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pitch</em>&nbsp;</td><td>Array of pitch values (length of 12 for each note of an octave starting at note C, values are number of offset cents to add to the normal tuning amount) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>apply</em>&nbsp;</td><td>TRUE to apply new tuning in realtime to existing notes which are using the replaced tuning (if any), FALSE otherwise </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0 </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#a50ffe674e0e4ae9c778cfe41eabf110b">fluid_synth_activate_octave_tuning()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a50ffe674e0e4ae9c778cfe41eabf110b">fluid_synth_activate_octave_tuning()</a>, and <a class="el" href="synth_8h.html#a018142a6c6e818d8c0474cfd188aa3b6">fluid_synth_create_octave_tuning()</a>.</p>

</div>
</div>
<a class="anchor" id="a06f6053f5eed13b59132fc7255f24ef0"></a><!-- doxytag: member="synth.h::fluid_synth_tune_notes" ref="a06f6053f5eed13b59132fc7255f24ef0" args="(fluid_synth_t *synth, int bank, int prog, int len, const int *keys, const double *pitch, int apply)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_tune_notes </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>prog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&nbsp;</td>
          <td class="paramname"> <em>pitch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>apply</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set tuning values for one or more MIDI notes for an existing tuning. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank</em>&nbsp;</td><td>Tuning bank number (0-127), not related to MIDI instrument bank </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prog</em>&nbsp;</td><td>Tuning preset number (0-127), not related to MIDI instrument program </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Number of MIDI notes to assign </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Array of MIDI key numbers (length of 'len', values 0-127) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pitch</em>&nbsp;</td><td>Array of pitch values (length of 'len', values are number of cents from MIDI note 0) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>apply</em>&nbsp;</td><td>TRUE to apply tuning change in realtime to existing notes using the specified tuning, FALSE otherwise </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise</dd></dl>
<p>NOTE: Prior to version 1.1.0 it was an error to specify a tuning that didn't already exist. Starting with 1.1.0, the default equal tempered scale will be used as a basis, if no tuning exists for the given bank and prog. </p>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#a06f6053f5eed13b59132fc7255f24ef0">fluid_synth_tune_notes()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a06f6053f5eed13b59132fc7255f24ef0">fluid_synth_tune_notes()</a>.</p>

</div>
</div>
<a class="anchor" id="af0adc50d347a99242e7bc367c626845c"></a><!-- doxytag: member="synth.h::fluid_synth_select_tuning" ref="af0adc50d347a99242e7bc367c626845c" args="(fluid_synth_t *synth, int chan, int bank, int prog)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_select_tuning </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>prog</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Select a tuning scale on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank</em>&nbsp;</td><td>Tuning bank number (0-127), not related to MIDI instrument bank </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prog</em>&nbsp;</td><td>Tuning preset number (0-127), not related to MIDI instrument program </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise</dd></dl>
<p>NOTE: This function does NOT activate tuning in realtime, use <a class="el" href="synth_8h.html#ad370b81904a65188981c45ee840204d3" title="Activate a tuning scale on a MIDI channel.">fluid_synth_activate_tuning()</a> instead to specify whether tuning change should cause existing notes to update.</p>
<p>NOTE: Prior to version 1.1.0 it was an error to select a tuning that didn't already exist. Starting with 1.1.0, a default equal tempered scale will be created, if no tuning exists for the given bank and prog. </p>

<p>References <a class="el" href="synth_8h.html#ad370b81904a65188981c45ee840204d3">fluid_synth_activate_tuning()</a>, and <a class="el" href="synth_8h.html#af0adc50d347a99242e7bc367c626845c">fluid_synth_select_tuning()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#af0adc50d347a99242e7bc367c626845c">fluid_synth_select_tuning()</a>.</p>

</div>
</div>
<a class="anchor" id="ad370b81904a65188981c45ee840204d3"></a><!-- doxytag: member="synth.h::fluid_synth_activate_tuning" ref="ad370b81904a65188981c45ee840204d3" args="(fluid_synth_t *synth, int chan, int bank, int prog, int apply)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_activate_tuning </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>prog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>apply</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Activate a tuning scale on a MIDI channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank</em>&nbsp;</td><td>Tuning bank number (0-127), not related to MIDI instrument bank </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prog</em>&nbsp;</td><td>Tuning preset number (0-127), not related to MIDI instrument program </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>apply</em>&nbsp;</td><td>TRUE to apply tuning change to active notes, FALSE otherwise </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0</dd></dl>
<p>NOTE: A default equal tempered scale will be created, if no tuning exists on the given bank and prog. </p>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#ad370b81904a65188981c45ee840204d3">fluid_synth_activate_tuning()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#ad370b81904a65188981c45ee840204d3">fluid_synth_activate_tuning()</a>, and <a class="el" href="synth_8h.html#af0adc50d347a99242e7bc367c626845c">fluid_synth_select_tuning()</a>.</p>

</div>
</div>
<a class="anchor" id="aa45d7358ae0d5f246df314402847dea3"></a><!-- doxytag: member="synth.h::fluid_synth_reset_tuning" ref="aa45d7358ae0d5f246df314402847dea3" args="(fluid_synth_t *synth, int chan)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_reset_tuning </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clear tuning scale on a MIDI channel (set it to the default well-tempered scale). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise</dd></dl>
<p>NOTE: This function does NOT activate tuning change in realtime, use <a class="el" href="synth_8h.html#a7d3c0e7ce720c8f1b8a2de2f950d438f" title="Clear tuning scale on a MIDI channel (use default equal tempered scale).">fluid_synth_deactivate_tuning()</a> instead to specify whether tuning change should cause existing notes to update. </p>

<p>References <a class="el" href="synth_8h.html#a7d3c0e7ce720c8f1b8a2de2f950d438f">fluid_synth_deactivate_tuning()</a>, and <a class="el" href="synth_8h.html#aa45d7358ae0d5f246df314402847dea3">fluid_synth_reset_tuning()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#aa45d7358ae0d5f246df314402847dea3">fluid_synth_reset_tuning()</a>.</p>

</div>
</div>
<a class="anchor" id="a7d3c0e7ce720c8f1b8a2de2f950d438f"></a><!-- doxytag: member="synth.h::fluid_synth_deactivate_tuning" ref="a7d3c0e7ce720c8f1b8a2de2f950d438f" args="(fluid_synth_t *synth, int chan, int apply)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_deactivate_tuning </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>apply</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clear tuning scale on a MIDI channel (use default equal tempered scale). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>apply</em>&nbsp;</td><td>TRUE to apply tuning change to active notes, FALSE otherwise </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0 </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="synth_8h.html#a7d3c0e7ce720c8f1b8a2de2f950d438f">fluid_synth_deactivate_tuning()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a7d3c0e7ce720c8f1b8a2de2f950d438f">fluid_synth_deactivate_tuning()</a>, and <a class="el" href="synth_8h.html#aa45d7358ae0d5f246df314402847dea3">fluid_synth_reset_tuning()</a>.</p>

</div>
</div>
<a class="anchor" id="a6633072257adee63b7f5901038a4a596"></a><!-- doxytag: member="synth.h::fluid_synth_tuning_iteration_start" ref="a6633072257adee63b7f5901038a4a596" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_tuning_iteration_start </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Start tuning iteration. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="synth_8h.html#a6633072257adee63b7f5901038a4a596">fluid_synth_tuning_iteration_start()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a6633072257adee63b7f5901038a4a596">fluid_synth_tuning_iteration_start()</a>.</p>

</div>
</div>
<a class="anchor" id="aabba63d39b1ff489e0f12831c7e1d986"></a><!-- doxytag: member="synth.h::fluid_synth_tuning_iteration_next" ref="aabba63d39b1ff489e0f12831c7e1d986" args="(fluid_synth_t *synth, int *bank, int *prog)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_tuning_iteration_next </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>prog</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Advance to next tuning. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank</em>&nbsp;</td><td>Location to store MIDI bank number of next tuning scale </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prog</em>&nbsp;</td><td>Location to store MIDI program number of next tuning scale </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 if tuning iteration advanced, 0 if no more tunings </dd></dl>

<p>References <a class="el" href="synth_8h.html#aabba63d39b1ff489e0f12831c7e1d986">fluid_synth_tuning_iteration_next()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#aabba63d39b1ff489e0f12831c7e1d986">fluid_synth_tuning_iteration_next()</a>.</p>

</div>
</div>
<a class="anchor" id="a09a491acce286532beb9e44fe858f0ce"></a><!-- doxytag: member="synth.h::fluid_synth_tuning_dump" ref="a09a491acce286532beb9e44fe858f0ce" args="(fluid_synth_t *synth, int bank, int prog, char *name, int len, double *pitch)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_tuning_dump </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>prog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&nbsp;</td>
          <td class="paramname"> <em>pitch</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the entire note tuning for a given MIDI bank and program. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bank</em>&nbsp;</td><td>MIDI bank number of tuning </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prog</em>&nbsp;</td><td>MIDI program number of tuning </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Location to store tuning name or NULL to ignore </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Maximum number of chars to store to 'name' (including NULL byte) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pitch</em>&nbsp;</td><td>Array to store tuning scale to or NULL to ignore (len of 128) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK if matching tuning was found, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, and <a class="el" href="synth_8h.html#a09a491acce286532beb9e44fe858f0ce">fluid_synth_tuning_dump()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a09a491acce286532beb9e44fe858f0ce">fluid_synth_tuning_dump()</a>.</p>

</div>
</div>
<a class="anchor" id="a28e932a61ee59fa46d5a1b2047872995"></a><!-- doxytag: member="synth.h::fluid_synth_get_cpu_load" ref="a28e932a61ee59fa46d5a1b2047872995" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API double fluid_synth_get_cpu_load </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the synth CPU load value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Estimated CPU load value in percent (0-100) </dd></dl>

<p>References <a class="el" href="synth_8h.html#a28e932a61ee59fa46d5a1b2047872995">fluid_synth_get_cpu_load()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a28e932a61ee59fa46d5a1b2047872995">fluid_synth_get_cpu_load()</a>.</p>

</div>
</div>
<a class="anchor" id="aaba52d30861484b5c17a6ec91cacc9b1"></a><!-- doxytag: member="synth.h::fluid_synth_error" ref="aaba52d30861484b5c17a6ec91cacc9b1" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API char* fluid_synth_error </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a textual representation of the last error. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to string of last error message. Valid until the same calling thread calls another FluidSynth function which fails. String is internal and should not be modified or freed. </dd></dl>

<p>References <a class="el" href="synth_8h.html#aaba52d30861484b5c17a6ec91cacc9b1">fluid_synth_error()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#aaba52d30861484b5c17a6ec91cacc9b1">fluid_synth_error()</a>.</p>

</div>
</div>
<a class="anchor" id="a0d7c287342eb282d4ec63ea7f35cd791"></a><!-- doxytag: member="synth.h::fluid_synth_write_s16" ref="a0d7c287342eb282d4ec63ea7f35cd791" args="(fluid_synth_t *synth, int len, void *lout, int loff, int lincr, void *rout, int roff, int rincr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_write_s16 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>lout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>loff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>lincr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>rout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>roff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>rincr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Synthesize a block of 16 bit audio samples to audio buffers. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Count of audio frames to synthesize </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lout</em>&nbsp;</td><td>Array of 16 bit words to store left channel of audio </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>loff</em>&nbsp;</td><td>Offset index in 'lout' for first sample </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lincr</em>&nbsp;</td><td>Increment between samples stored to 'lout' </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rout</em>&nbsp;</td><td>Array of 16 bit words to store right channel of audio </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>roff</em>&nbsp;</td><td>Offset index in 'rout' for first sample </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rincr</em>&nbsp;</td><td>Increment between samples stored to 'rout' </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAIL otherwise</dd></dl>
<p>Useful for storing interleaved stereo (lout = rout, loff = 0, roff = 1, lincr = 2, rincr = 2).</p>
<p>NOTE: Should only be called from synthesis thread. NOTE: Dithering is performed when converting from internal floating point to 16 bit audio. </p>

<p>References <a class="el" href="synth_8h.html#a0d7c287342eb282d4ec63ea7f35cd791">fluid_synth_write_s16()</a>.</p>

<p>Referenced by <a class="el" href="audio_8h.html#abdea2fb753cf1a5fa9b5dca38c177d80">fluid_file_renderer_process_block()</a>, and <a class="el" href="synth_8h.html#a0d7c287342eb282d4ec63ea7f35cd791">fluid_synth_write_s16()</a>.</p>

</div>
</div>
<a class="anchor" id="ac86a79a943fc5d5d485ccc5a5fcad03d"></a><!-- doxytag: member="synth.h::fluid_synth_write_float" ref="ac86a79a943fc5d5d485ccc5a5fcad03d" args="(fluid_synth_t *synth, int len, void *lout, int loff, int lincr, void *rout, int roff, int rincr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_write_float </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>lout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>loff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>lincr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>rout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>roff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>rincr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Synthesize a block of floating point audio samples to audio buffers. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Count of audio frames to synthesize </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lout</em>&nbsp;</td><td>Array of floats to store left channel of audio </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>loff</em>&nbsp;</td><td>Offset index in 'lout' for first sample </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lincr</em>&nbsp;</td><td>Increment between samples stored to 'lout' </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rout</em>&nbsp;</td><td>Array of floats to store right channel of audio </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>roff</em>&nbsp;</td><td>Offset index in 'rout' for first sample </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rincr</em>&nbsp;</td><td>Increment between samples stored to 'rout' </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAIL otherwise</dd></dl>
<p>Useful for storing interleaved stereo (lout = rout, loff = 0, roff = 1, lincr = 2, rincr = 2).</p>
<p>NOTE: Should only be called from synthesis thread. </p>

<p>References <a class="el" href="synth_8h.html#ac86a79a943fc5d5d485ccc5a5fcad03d">fluid_synth_write_float()</a>.</p>

<p>Referenced by <a class="el" href="audio_8h.html#abdea2fb753cf1a5fa9b5dca38c177d80">fluid_file_renderer_process_block()</a>, <a class="el" href="synth_8h.html#a1ac90e2732aa652679305f78cbd66670">fluid_synth_process()</a>, and <a class="el" href="synth_8h.html#ac86a79a943fc5d5d485ccc5a5fcad03d">fluid_synth_write_float()</a>.</p>

</div>
</div>
<a class="anchor" id="a2e394b30908133eed97fe903d5654bac"></a><!-- doxytag: member="synth.h::fluid_synth_nwrite_float" ref="a2e394b30908133eed97fe903d5654bac" args="(fluid_synth_t *synth, int len, float **left, float **right, float **fx_left, float **fx_right)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_nwrite_float </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float **&nbsp;</td>
          <td class="paramname"> <em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float **&nbsp;</td>
          <td class="paramname"> <em>right</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float **&nbsp;</td>
          <td class="paramname"> <em>fx_left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float **&nbsp;</td>
          <td class="paramname"> <em>fx_right</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Synthesize a block of floating point audio to audio buffers. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Count of audio frames to synthesize </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>left</em>&nbsp;</td><td>Array of floats to store left channel of audio (len in size) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>right</em>&nbsp;</td><td>Array of floats to store right channel of audio (len in size) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fx_left</em>&nbsp;</td><td>Not currently used </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fx_right</em>&nbsp;</td><td>Not currently used </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAIL otherwise</dd></dl>
<p>NOTE: Should only be called from synthesis thread. </p>

<p>References <a class="el" href="synth_8h.html#a2e394b30908133eed97fe903d5654bac">fluid_synth_nwrite_float()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a2e394b30908133eed97fe903d5654bac">fluid_synth_nwrite_float()</a>, and <a class="el" href="synth_8h.html#a1ac90e2732aa652679305f78cbd66670">fluid_synth_process()</a>.</p>

</div>
</div>
<a class="anchor" id="a1ac90e2732aa652679305f78cbd66670"></a><!-- doxytag: member="synth.h::fluid_synth_process" ref="a1ac90e2732aa652679305f78cbd66670" args="(fluid_synth_t *synth, int len, int nin, float **in, int nout, float **out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_process </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>nin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float **&nbsp;</td>
          <td class="paramname"> <em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>nout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float **&nbsp;</td>
          <td class="paramname"> <em>out</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Synthesize floating point audio to audio buffers. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Count of audio frames to synthesize </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nin</em>&nbsp;</td><td>Ignored </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>Ignored </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nout</em>&nbsp;</td><td>Count of arrays in 'out' </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>Array of arrays to store audio to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAIL otherwise</dd></dl>
<p>This function implements the default interface defined in <a class="el" href="audio_8h.html" title="Functions for audio driver output.">fluidsynth/audio.h</a>. NOTE: Should only be called from synthesis thread. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="fluidsynth__fx_8c-example.html#a0">fluidsynth_fx.c</a>.</dd>
</dl>
<p>References <a class="el" href="synth_8h.html#a2e394b30908133eed97fe903d5654bac">fluid_synth_nwrite_float()</a>, <a class="el" href="synth_8h.html#a1ac90e2732aa652679305f78cbd66670">fluid_synth_process()</a>, and <a class="el" href="synth_8h.html#ac86a79a943fc5d5d485ccc5a5fcad03d">fluid_synth_write_float()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a1ac90e2732aa652679305f78cbd66670">fluid_synth_process()</a>.</p>

</div>
</div>
<a class="anchor" id="a4b35dcb250542b8e60cf5dccd0ec1589"></a><!-- doxytag: member="synth.h::fluid_synth_add_sfloader" ref="a4b35dcb250542b8e60cf5dccd0ec1589" args="(fluid_synth_t *synth, fluid_sfloader_t *loader)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_add_sfloader </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct__fluid__sfloader__t.html">fluid_sfloader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>loader</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a SoundFont loader interface. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>loader</em>&nbsp;</td><td>Loader API structure, used directly and should remain allocated as long as the synth instance is used.</td></tr>
  </table>
  </dd>
</dl>
<p>SoundFont loaders are used to add custom instrument loading to FluidSynth. The caller supplied functions for loading files, allocating presets, retrieving information on them and synthesizing note-on events. Using this method even non SoundFont instruments can be synthesized, although limited to the SoundFont synthesis model.</p>
<p>NOTE: Should only be called before any SoundFont files are loaded. </p>

<p>References <a class="el" href="synth_8h.html#a4b35dcb250542b8e60cf5dccd0ec1589">fluid_synth_add_sfloader()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a4b35dcb250542b8e60cf5dccd0ec1589">fluid_synth_add_sfloader()</a>, and <a class="el" href="synth_8h.html#a344f7369c0f57d30f72702d0c88e6178">new_fluid_synth()</a>.</p>

</div>
</div>
<a class="anchor" id="a005a5e8e6b34eb5a44b41d9020ce32d5"></a><!-- doxytag: member="synth.h::fluid_synth_alloc_voice" ref="a005a5e8e6b34eb5a44b41d9020ce32d5" args="(fluid_synth_t *synth, fluid_sample_t *sample, int channum, int key, int vel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#a5123ae5ef2d7806475267380c33604c3">fluid_voice_t</a>* fluid_synth_alloc_voice </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct__fluid__sample__t.html">fluid_sample_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sample</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>vel</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Allocate a synthesis voice. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sample</em>&nbsp;</td><td>Sample to assign to the voice </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel number (0 to MIDI channel count - 1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>MIDI note number for the voice (0-127) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>vel</em>&nbsp;</td><td>MIDI velocity for the voice (0-127) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Allocated synthesis voice or NULL on error</dd></dl>
<p>This function is called by a SoundFont's preset in response to a noteon event. The returned voice comes with default modulators and generators. A single noteon event may create any number of voices, when the preset is layered.</p>
<p>NOTE: Should only be called from within synthesis thread, which includes SoundFont loader preset noteon method. </p>

<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9ea5542b67c606598020b832c31729175fc">FLUID_DBG</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eadfa902517702f2dd8ae849b810175ac4">FLUID_INFO</a>, <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886">FLUID_OK</a>, <a class="el" href="synth_8h.html#a005a5e8e6b34eb5a44b41d9020ce32d5">fluid_synth_alloc_voice()</a>, <a class="el" href="voice_8h.html#aac296fe3c3d6930261b9ead8afe4db2bab6a4717eb5a5f1adc30f89843a0bac4d">FLUID_VOICE_DEFAULT</a>, and <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9ea394460be1ec74fce15e1ff683606df0f">FLUID_WARN</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a005a5e8e6b34eb5a44b41d9020ce32d5">fluid_synth_alloc_voice()</a>.</p>

</div>
</div>
<a class="anchor" id="a9b301e2ce86ca1315e5d6e7e44deba5f"></a><!-- doxytag: member="synth.h::fluid_synth_start_voice" ref="a9b301e2ce86ca1315e5d6e7e44deba5f" args="(fluid_synth_t *synth, fluid_voice_t *voice)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_start_voice </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#a5123ae5ef2d7806475267380c33604c3">fluid_voice_t</a> *&nbsp;</td>
          <td class="paramname"> <em>voice</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Activate a voice previously allocated with <a class="el" href="synth_8h.html#a005a5e8e6b34eb5a44b41d9020ce32d5" title="Allocate a synthesis voice.">fluid_synth_alloc_voice()</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>voice</em>&nbsp;</td><td>Voice to activate</td></tr>
  </table>
  </dd>
</dl>
<p>This function is called by a SoundFont's preset in response to a noteon event. Exclusive classes are processed here.</p>
<p>NOTE: Should only be called from within synthesis thread, which includes SoundFont loader preset noteon method. </p>

<p>References <a class="el" href="synth_8h.html#a9b301e2ce86ca1315e5d6e7e44deba5f">fluid_synth_start_voice()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a9b301e2ce86ca1315e5d6e7e44deba5f">fluid_synth_start_voice()</a>.</p>

</div>
</div>
<a class="anchor" id="a167b297bf209c1b44c052000b21eac21"></a><!-- doxytag: member="synth.h::fluid_synth_get_voicelist" ref="a167b297bf209c1b44c052000b21eac21" args="(fluid_synth_t *synth, fluid_voice_t *buf[], int bufsize, int ID)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_get_voicelist </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#a5123ae5ef2d7806475267380c33604c3">fluid_voice_t</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get list of voices. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>Array to store voices to (NULL terminated if not filled completely) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bufsize</em>&nbsp;</td><td>Count of indexes in buf </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>Voice ID to search for or &lt; 0 to return list of all playing voices</td></tr>
  </table>
  </dd>
</dl>
<p>NOTE: Should only be called from within synthesis thread, which includes SoundFont loader preset noteon methods. Voices are only guaranteed to remain unchanged until next synthesis process iteration. </p>

<p>References <a class="el" href="synth_8h.html#a167b297bf209c1b44c052000b21eac21">fluid_synth_get_voicelist()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a167b297bf209c1b44c052000b21eac21">fluid_synth_get_voicelist()</a>.</p>

</div>
</div>
<a class="anchor" id="a439e1175fa34123b3d0c96a0366d42dd"></a><!-- doxytag: member="synth.h::fluid_synth_handle_midi_event" ref="a439e1175fa34123b3d0c96a0366d42dd" args="(void *data, fluid_midi_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_synth_handle_midi_event </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Handle MIDI event from MIDI router, used as a callback function. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>MIDI event to handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FLUID_OK on success, FLUID_FAILED otherwise </dd></dl>

<p>References <a class="el" href="midi_8h.html#ad6a5072d25f83834d41205d0c0806b9d">fluid_midi_event_get_channel()</a>, <a class="el" href="midi_8h.html#a4f50a77de21c9bfa7207617ef3ff3440">fluid_midi_event_get_control()</a>, <a class="el" href="midi_8h.html#a2ed781f6bc77a94c80d5f33ba63f4b05">fluid_midi_event_get_key()</a>, <a class="el" href="midi_8h.html#ad1f10dd6f386f2a189b7389fd1fac169">fluid_midi_event_get_pitch()</a>, <a class="el" href="midi_8h.html#a49901971bb418efc14b2de5954b4b200">fluid_midi_event_get_program()</a>, <a class="el" href="midi_8h.html#a63c2b0009873e8a1761f3a3365b12244">fluid_midi_event_get_type()</a>, <a class="el" href="midi_8h.html#ac0dfb3cc8be8571ecf2d2dd05b92a9b2">fluid_midi_event_get_value()</a>, <a class="el" href="midi_8h.html#a6462c5c51d6cfa9c328417d2f1f4b6d5">fluid_midi_event_get_velocity()</a>, <a class="el" href="synth_8h.html#a96b535f5acee6f807033d6cc9ccab555">fluid_synth_cc()</a>, <a class="el" href="synth_8h.html#a908d5ea45d97d17757a8a3bda504fd44">fluid_synth_channel_pressure()</a>, <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>, <a class="el" href="synth_8h.html#a5e8f96cacbc6460f7677a6191cbd4472">fluid_synth_noteoff()</a>, <a class="el" href="synth_8h.html#a4a98222fe1c36bfd598dc4cd89f4b75c">fluid_synth_noteon()</a>, <a class="el" href="synth_8h.html#ad5341f8e7c86835b197628f84a2d2c90">fluid_synth_pitch_bend()</a>, <a class="el" href="synth_8h.html#aad8df89a90669268b6bee09da40088a6">fluid_synth_program_change()</a>, <a class="el" href="synth_8h.html#a28f34d0493b102ac4b99c021257b5b5e">fluid_synth_sysex()</a>, and <a class="el" href="synth_8h.html#a3783aa3a825dfd81208d37039b6d2906">fluid_synth_system_reset()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a9c1493b7a7f5a5518aa47e23938139db">fluid_midi_dump_postrouter()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="a150979ca928cfbed4ff179ff62e3f633"></a><!-- doxytag: member="synth.h::fluid_synth_set_midi_router" ref="a150979ca928cfbed4ff179ff62e3f633" args="(fluid_synth_t *synth, fluid_midi_router_t *router)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_synth_set_midi_router </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a> *&nbsp;</td>
          <td class="paramname"> <em>router</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assign a MIDI router to a synth. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>FluidSynth instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>router</em>&nbsp;</td><td>MIDI router to assign to the synth</td></tr>
  </table>
  </dd>
</dl>
<p>NOTE: This should only be done once and prior to using the synth. </p>

<p>References <a class="el" href="synth_8h.html#a150979ca928cfbed4ff179ff62e3f633">fluid_synth_set_midi_router()</a>.</p>

<p>Referenced by <a class="el" href="synth_8h.html#a150979ca928cfbed4ff179ff62e3f633">fluid_synth_set_midi_router()</a>.</p>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Tue Oct 12 2010 for libfluidsynth by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>