<!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: _fluid_sample_t Struct 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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><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="annotated.html"><span>Data Structures</span></a></li> <li><a href="classes.html"><span>Data Structure Index</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-attribs">Data Fields</a> </div> <div class="headertitle"> <h1>_fluid_sample_t Struct Reference</h1> </div> </div> <div class="contents"> <!-- doxytag: class="_fluid_sample_t" --> <p>Virtual SoundFont sample. <a href="#_details">More...</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-attribs"></a> Data Fields</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a054c9821ce07e9c680331bfc29cf7a1f"></a><!-- doxytag: member="_fluid_sample_t::name" ref="a054c9821ce07e9c680331bfc29cf7a1f" args="[21]" --> char </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a054c9821ce07e9c680331bfc29cf7a1f">name</a> [21]</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sample name. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a239a49135dad3eedf6ea9ada921f9583"></a><!-- doxytag: member="_fluid_sample_t::start" ref="a239a49135dad3eedf6ea9ada921f9583" args="" --> unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a239a49135dad3eedf6ea9ada921f9583">start</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Start index. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a955d338a740c562bd9b298d87b165b0c"></a><!-- doxytag: member="_fluid_sample_t::end" ref="a955d338a740c562bd9b298d87b165b0c" args="" --> unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a955d338a740c562bd9b298d87b165b0c">end</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">End index, index of last valid sample point (contrary to SF spec). <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a708e728c1dd67bb62a70e4edd7fc1f1c"></a><!-- doxytag: member="_fluid_sample_t::loopstart" ref="a708e728c1dd67bb62a70e4edd7fc1f1c" args="" --> unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a708e728c1dd67bb62a70e4edd7fc1f1c">loopstart</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Loop start index. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3baa4ca199a55b77c2692d9d3211e0d0"></a><!-- doxytag: member="_fluid_sample_t::loopend" ref="a3baa4ca199a55b77c2692d9d3211e0d0" args="" --> unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a3baa4ca199a55b77c2692d9d3211e0d0">loopend</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Loop end index, first point following the loop (superimposed on loopstart). <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a323da7b5b6db34a67cb59a4b4b0e3e9a"></a><!-- doxytag: member="_fluid_sample_t::samplerate" ref="a323da7b5b6db34a67cb59a4b4b0e3e9a" args="" --> unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a323da7b5b6db34a67cb59a4b4b0e3e9a">samplerate</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sample rate. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1a2bb5f13ed47a3e59b650f9f0cf4bf9"></a><!-- doxytag: member="_fluid_sample_t::origpitch" ref="a1a2bb5f13ed47a3e59b650f9f0cf4bf9" args="" --> int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a1a2bb5f13ed47a3e59b650f9f0cf4bf9">origpitch</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Original pitch (MIDI note number, 0-127). <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a12b4133d7631a3043d008fdaa78eb5dc"></a><!-- doxytag: member="_fluid_sample_t::pitchadj" ref="a12b4133d7631a3043d008fdaa78eb5dc" args="" --> int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a12b4133d7631a3043d008fdaa78eb5dc">pitchadj</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Fine pitch adjustment (+/- 99 cents). <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a081352a55ed01814a219875eee20628b"></a><!-- doxytag: member="_fluid_sample_t::sampletype" ref="a081352a55ed01814a219875eee20628b" args="" --> int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a081352a55ed01814a219875eee20628b">sampletype</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Values: <a class="el" href="sfont_8h.html#a501aa3c84a31b590891c0e080681895f" title="Flag for fluid_sample_t sampletype field for mono samples.">FLUID_SAMPLETYPE_MONO</a>, FLUID_SAMPLETYPE_RIGHT, FLUID_SAMPLETYPE_LEFT, FLUID_SAMPLETYPE_ROM. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad95a25c77565b132e686cc3f14687221"></a><!-- doxytag: member="_fluid_sample_t::valid" ref="ad95a25c77565b132e686cc3f14687221" args="" --> int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#ad95a25c77565b132e686cc3f14687221">valid</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Should be TRUE if sample data is valid, FALSE otherwise (in which case it will not be synthesized). <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c7262f51500369fd1a3e5306b458d55"></a><!-- doxytag: member="_fluid_sample_t::data" ref="a8c7262f51500369fd1a3e5306b458d55" args="" --> short * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a8c7262f51500369fd1a3e5306b458d55">data</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to the sample's data. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#ac054e203acd07ad158256e343f1fd0a5">amplitude_that_reaches_noise_floor_is_valid</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Indicates if <em>amplitude_that_reaches_noise_floor</em> is valid (TRUE), set to FALSE initially to calculate. <a href="#ac054e203acd07ad158256e343f1fd0a5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a91eee4970ca353df88665c0c3119e841">amplitude_that_reaches_noise_floor</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The amplitude at which the sample's loop will be below the noise floor. <a href="#a91eee4970ca353df88665c0c3119e841"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a50767943f4a3110db0d4e724cdbe65ec"></a><!-- doxytag: member="_fluid_sample_t::refcount" ref="a50767943f4a3110db0d4e724cdbe65ec" args="" --> unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a50767943f4a3110db0d4e724cdbe65ec">refcount</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Count of voices using this sample (use <a class="el" href="sfont_8h.html#a0b95cae7587539906dec2602ac29b743" title="Get the reference count of a sample.">fluid_sample_refcount</a> to access this field). <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#aa9b2c5c724062ddb0bacffc38cf83583">notify</a> )(<a class="el" href="struct__fluid__sample__t.html">fluid_sample_t</a> *sample, int reason)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Implement this function to receive notification when sample is no longer used. <a href="#aa9b2c5c724062ddb0bacffc38cf83583"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69e7d313f22e2fd35638d064012bda0a"></a><!-- doxytag: member="_fluid_sample_t::userdata" ref="a69e7d313f22e2fd35638d064012bda0a" args="" --> void * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__fluid__sample__t.html#a69e7d313f22e2fd35638d064012bda0a">userdata</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">User defined data. <br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Virtual SoundFont sample. </p> <hr/><h2>Field Documentation</h2> <a class="anchor" id="ac054e203acd07ad158256e343f1fd0a5"></a><!-- doxytag: member="_fluid_sample_t::amplitude_that_reaches_noise_floor_is_valid" ref="ac054e203acd07ad158256e343f1fd0a5" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="struct__fluid__sample__t.html#ac054e203acd07ad158256e343f1fd0a5">_fluid_sample_t::amplitude_that_reaches_noise_floor_is_valid</a></td> </tr> </table> </div> <div class="memdoc"> <p>Indicates if <em>amplitude_that_reaches_noise_floor</em> is valid (TRUE), set to FALSE initially to calculate. </p> <p>Referenced by <a class="el" href="voice_8h.html#a57eda19dd187b4ba46fcd121c992f3b9">fluid_voice_optimize_sample()</a>.</p> </div> </div> <a class="anchor" id="a91eee4970ca353df88665c0c3119e841"></a><!-- doxytag: member="_fluid_sample_t::amplitude_that_reaches_noise_floor" ref="a91eee4970ca353df88665c0c3119e841" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="struct__fluid__sample__t.html#a91eee4970ca353df88665c0c3119e841">_fluid_sample_t::amplitude_that_reaches_noise_floor</a></td> </tr> </table> </div> <div class="memdoc"> <p>The amplitude at which the sample's loop will be below the noise floor. </p> <p>For voice off optimization, calculated automatically. </p> <p>Referenced by <a class="el" href="voice_8h.html#a57eda19dd187b4ba46fcd121c992f3b9">fluid_voice_optimize_sample()</a>.</p> </div> </div> <a class="anchor" id="aa9b2c5c724062ddb0bacffc38cf83583"></a><!-- doxytag: member="_fluid_sample_t::notify" ref="aa9b2c5c724062ddb0bacffc38cf83583" args=")(fluid_sample_t *sample, int reason)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int(* <a class="el" href="struct__fluid__sample__t.html#aa9b2c5c724062ddb0bacffc38cf83583">_fluid_sample_t::notify</a>)(<a class="el" href="struct__fluid__sample__t.html">fluid_sample_t</a> *sample, int reason)</td> </tr> </table> </div> <div class="memdoc"> <p>Implement this function to receive notification when sample is no longer used. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sample</em> </td><td>Virtual SoundFont sample </td></tr> <tr><td valign="top"></td><td valign="top"><em>reason</em> </td><td><a class="el" href="sfont_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad5841d407c7bcd3b59b787de8d506a7c" title="Sample no longer needed notify.">FLUID_SAMPLE_DONE</a> only currently </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Should return <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl> </div> </div> <hr/>The documentation for this struct was generated from the following file:<ul> <li><a class="el" href="sfont_8h.html">sfont.h</a></li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated on Tue Oct 12 2010 for libfluidsynth by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address> </body> </html>