RythmGame/SimpleGame/fmodstudioapi20307linux/doc/FMOD API User Manual/studio-api-system.html
2025-06-10 17:40:16 +02:00

3340 lines
260 KiB
HTML

<html>
<head>
<title>Studio API Reference | Studio::System</title>
<link rel="stylesheet" href="style/docs.css">
<link rel="stylesheet" href="style/code_highlight.css">
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
<body>
<div class="docs-body">
<div class="manual-toc">
<p>FMOD Engine User Manual 2.03</p>
<ul>
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
<li><a href="studio-guide.html">Studio API Guide</a></li>
<li><a href="core-guide.html">Core API Guide</a></li>
<li><a href="platforms.html">Platform Details</a></li>
<li><a href="white-papers.html">White Papers</a></li>
<li class="manual-current-chapter manual-inactive-chapter"><a href="studio-api.html">Studio API Reference</a><ul class="subchapters"><li><a href="studio-api-common.html">Common</a></li><li class="manual-current-chapter manual-active-chapter"><a href="studio-api-system.html">Studio::System</a></li><li><a href="studio-api-eventdescription.html">Studio::EventDescription</a></li><li><a href="studio-api-eventinstance.html">Studio::EventInstance</a></li><li><a href="studio-api-bus.html">Studio::Bus</a></li><li><a href="studio-api-vca.html">Studio::VCA</a></li><li><a href="studio-api-bank.html">Studio::Bank</a></li><li><a href="studio-api-commandreplay.html">Studio::CommandReplay</a></li></ul></li>
<li><a href="core-api.html">Core API Reference</a></li>
<li><a href="fsbank-api.html">FSBank API Reference</a></li>
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
<li><a href="effects-reference.html">Effects Reference</a></li>
<li><a href="troubleshooting.html">Troubleshooting</a></li>
<li><a href="glossary.html">Glossary</a></li>
</ul>
</div>
<div class="manual-content api">
<h1>6. Studio API Reference | Studio::System</h1>
<p>The main system object for <a href="glossary.html#fmod-studio">FMOD Studio</a>.</p>
<p>Initializing the studio system object also initializes the core <a class="apilink" href="core-api-system.html">System</a> object.</p>
<p><strong>Lifetime:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_create" title="FMOD Studio System creation function.">Studio::System::create</a> FMOD Studio System creation function.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_initialize" title="Initializes the Studio System.">Studio::System::initialize</a> Initializes the Studio System.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_release" title="Shut down and free the Studio System object.">Studio::System::release</a> Shut down and free the Studio System object.</span></li>
</ul>
<hr />
<ul>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_initflags" title="Studio System initialization flags.">FMOD_STUDIO_INITFLAGS</a> Studio System initialization flags.</span></li>
</ul>
<p><strong>Update:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_update" title="Update the studio system.">Studio::System::update</a> Update the <a href="studio-api-system.html">studio system</a>.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_flushcommands" title="Block until all pending commands have been executed.">Studio::System::flushCommands</a> Block until all pending commands have been executed.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_flushsampleloading" title="Block until all sample loading and unloading has completed.">Studio::System::flushSampleLoading</a> Block until all sample loading and unloading has completed.</span></li>
</ul>
<p><strong>Banks:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_loadbankcustom" title="Loads the metadata of a bank using custom read callbacks.">Studio::System::loadBankCustom</a> Loads the <a href="glossary.html#metadata">metadata</a> of a <a href="glossary.html#bank-file">bank</a> using custom read callbacks.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_loadbankfile" title="Loads the metadata of a bank. This does not load the bank's sample data.">Studio::System::loadBankFile</a> Loads the <a href="glossary.html#metadata">metadata</a> of a <a href="glossary.html#bank-file">bank</a>. This does not load the bank's <a href="glossary.html#sample-data">sample data</a>.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_loadbankmemory" title="Loads the metadata of a bank from memory. Does not load the bank's sample data.">Studio::System::loadBankMemory</a> Loads the <a href="glossary.html#metadata">metadata</a> of a <a href="glossary.html#bank-file">bank</a> from memory. Does not load the bank's <a href="glossary.html#sample-data">sample data</a>.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_unloadall" title="Unloads all currently loaded banks.">Studio::System::unloadAll</a> Unloads all currently loaded <a href="glossary.html#bank-file">banks</a>.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getbank" title="Retrieves a loaded bank with the specified file path.">Studio::System::getBank</a> Retrieves a loaded <a href="glossary.html#bank-file">bank</a> with the specified file path.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getbankbyid" title="Retrieves a loaded bank with the specified ID.">Studio::System::getBankByID</a> Retrieves a loaded <a href="glossary.html#bank-file">bank</a> with the specified ID.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getbankcount" title="Retrieves the number of currently-loaded banks.">Studio::System::getBankCount</a> Retrieves the number of currently-loaded <a href="glossary.html#bank-file">banks</a>.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getbanklist" title="Retrieves a list of the currently-loaded banks.">Studio::System::getBankList</a> Retrieves a list of the currently-loaded <a href="glossary.html#bank-file">banks</a>.</span></li>
</ul>
<hr />
<ul>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_bank_info" title="Information for loading a bank using user callbacks.">FMOD_STUDIO_BANK_INFO</a> Information for loading a <a href="glossary.html#bank-file">bank</a> using user callbacks.</span></li>
</ul>
<hr />
<ul>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_load_bank_flags" title="Flags for controlling bank loading.">FMOD_STUDIO_LOAD_BANK_FLAGS</a> Flags for controlling <a href="glossary.html#bank-file">bank</a> loading.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_load_memory_alignment" title="The required memory alignment of banks in user memory.">FMOD_STUDIO_LOAD_MEMORY_ALIGNMENT</a> The required memory alignment of <a href="glossary.html#bank-file">banks</a> in user memory.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_load_memory_mode" title="Specifies how to use the memory buffer passed to Studio::System::loadBankMemory.">FMOD_STUDIO_LOAD_MEMORY_MODE</a> Specifies how to use the memory buffer passed to Studio::System::loadBankMemory.</span></li>
</ul>
<p><strong>Listeners:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_setlistenerattributes" title="Sets the 3D attributes of the listener.">Studio::System::setListenerAttributes</a> Sets the 3D attributes of the listener.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getlistenerattributes" title="Retrieves listener 3D attributes.">Studio::System::getListenerAttributes</a> Retrieves listener 3D attributes.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_setlistenerweight" title="Sets the listener weighting.">Studio::System::setListenerWeight</a> Sets the listener weighting.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getlistenerweight" title="Retrieves listener weighting.">Studio::System::getListenerWeight</a> Retrieves listener weighting.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_setnumlisteners" title="Sets the number of listeners in the 3D sound scene.">Studio::System::setNumListeners</a> Sets the number of listeners in the 3D sound scene.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getnumlisteners" title="Retrieves the number of listeners.">Studio::System::getNumListeners</a> Retrieves the number of listeners.</span></li>
</ul>
<p><strong>Buses:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getbus" title="Retrieves a loaded bus.">Studio::System::getBus</a> Retrieves a loaded bus.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getbusbyid" title="Retrieves a loaded bus.">Studio::System::getBusByID</a> Retrieves a loaded bus.</span></li>
</ul>
<p><strong>Events:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getevent" title="Retrieves an EventDescription of an event or snapshot with the specified file path.">Studio::System::getEvent</a> Retrieves an EventDescription of an event or snapshot with the specified file path.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_geteventbyid" title="Retrieves an EventDescription.">Studio::System::getEventByID</a> Retrieves an EventDescription.</span></li>
</ul>
<p><strong>Parameters:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getparameterbyid" title="Retrieves a global parameter value by unique identifier.">Studio::System::getParameterByID</a> Retrieves a global parameter value by unique identifier.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_setparameterbyid" title="Sets a global parameter value by unique identifier.">Studio::System::setParameterByID</a> Sets a global parameter value by unique identifier.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_setparameterbyidwithlabel" title="Sets a global parameter value by unique identifier, looking up the value label.">Studio::System::setParameterByIDWithLabel</a> Sets a global parameter value by unique identifier, looking up the value label.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_setparametersbyids" title="Sets multiple global parameter values by unique identifier.">Studio::System::setParametersByIDs</a> Sets multiple global parameter values by unique identifier.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getparameterbyname" title="Retrieves a global parameter value by name, including the path if needed.">Studio::System::getParameterByName</a> Retrieves a global parameter value by name, including the path if needed.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_setparameterbyname" title="Sets a global parameter value by name, including the path if needed.">Studio::System::setParameterByName</a> Sets a global parameter value by name, including the path if needed.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_setparameterbynamewithlabel" title="Sets a global parameter value by name, including the path if needed, looking up the value label.">Studio::System::setParameterByNameWithLabel</a> Sets a global parameter value by name, including the path if needed, looking up the value label.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getparameterdescriptionbyname" title="Retrieves a global parameter by name, including the path if needed.">Studio::System::getParameterDescriptionByName</a> Retrieves a global parameter by name, including the path if needed.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getparameterdescriptionbyid" title="Retrieves a global parameter by ID.">Studio::System::getParameterDescriptionByID</a> Retrieves a global parameter by ID.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getparameterdescriptioncount" title="Retrieves the number of global parameters.">Studio::System::getParameterDescriptionCount</a> Retrieves the number of global parameters.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getparameterdescriptionlist" title="Retrieves a list of global parameters.">Studio::System::getParameterDescriptionList</a> Retrieves a list of global parameters.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getparameterlabelbyname" title="Retrieves a global parameter label by name, including the path if needed.">Studio::System::getParameterLabelByName</a> Retrieves a global parameter label by name, including the path if needed.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getparameterlabelbyid" title="Retrieves a global parameter label by ID.">Studio::System::getParameterLabelByID</a> Retrieves a global parameter label by ID.</span></li>
</ul>
<p><strong>VCAs:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getvca" title="Retrieves a loaded VCA.">Studio::System::getVCA</a> Retrieves a loaded VCA.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getvcabyid" title="Retrieves a loaded VCA.">Studio::System::getVCAByID</a> Retrieves a loaded VCA.</span></li>
</ul>
<p><strong>Advanced settings:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_setadvancedsettings" title="Sets advanced settings.">Studio::System::setAdvancedSettings</a> Sets advanced settings.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getadvancedsettings" title="Retrieves advanced settings.">Studio::System::getAdvancedSettings</a> Retrieves advanced settings.</span></li>
</ul>
<hr />
<ul>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_advancedsettings" title="Settings for advanced features like configuring memory and cpu usage.">FMOD_STUDIO_ADVANCEDSETTINGS</a> Settings for advanced features like configuring memory and cpu usage.</span></li>
</ul>
<p><strong>Command capture and replay:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_startcommandcapture" title="Start recording Studio API commands to a file.">Studio::System::startCommandCapture</a> Start recording <a href="glossary.html#studio-api">Studio API</a> commands to a file.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_stopcommandcapture" title="Stop recording Studio API commands.">Studio::System::stopCommandCapture</a> Stop recording <a href="glossary.html#studio-api">Studio API</a> commands.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_loadcommandreplay" title="Load a command replay.">Studio::System::loadCommandReplay</a> Load a command replay.</span></li>
</ul>
<hr />
<ul>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_commandcapture_flags" title="Flags controling command capture.">FMOD_STUDIO_COMMANDCAPTURE_FLAGS</a> Flags controling command capture.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_commandreplay_flags" title="Flags controlling command replay.">FMOD_STUDIO_COMMANDREPLAY_FLAGS</a> Flags controlling command replay.</span></li>
</ul>
<p><strong>Profiling:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getbufferusage" title="Retrieves buffer usage information.">Studio::System::getBufferUsage</a> Retrieves buffer usage information.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_resetbufferusage" title="Resets memory buffer usage statistics.">Studio::System::resetBufferUsage</a> Resets memory buffer usage statistics.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getcpuusage" title="Retrieves the amount of CPU used for different parts of the FMOD Engine.">Studio::System::getCPUUsage</a> Retrieves the amount of CPU used for different parts of the FMOD Engine.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getmemoryusage" title="Retrieves memory usage statistics.">Studio::System::getMemoryUsage</a> Retrieves memory usage statistics.</span></li>
</ul>
<hr />
<ul>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_buffer_info" title="Information for a single buffer in FMOD Studio.">FMOD_STUDIO_BUFFER_INFO</a> Information for a single buffer in <a href="glossary.html#fmod-studio">FMOD Studio</a>.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_buffer_usage" title="Information for FMOD Studio buffer usage.">FMOD_STUDIO_BUFFER_USAGE</a> Information for <a href="glossary.html#fmod-studio">FMOD Studio</a> buffer usage.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_cpu_usage" title="Performance information for Studio API functionality.">FMOD_STUDIO_CPU_USAGE</a> Performance information for Studio API functionality.</span></li>
</ul>
<p><strong>Plug-ins:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_registerplugin" title="Registers a DSP plug-in.">Studio::System::registerPlugin</a> Registers a <a href="glossary.html#dsp">DSP</a> plug-in.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_unregisterplugin" title="Unregisters a DSP plug-in.">Studio::System::unregisterPlugin</a> Unregisters a <a href="glossary.html#dsp">DSP</a> plug-in.</span></li>
</ul>
<p><strong>System callback:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_setcallback" title="Sets a callback for the Studio System.">Studio::System::setCallback</a> Sets a callback for the <a href="studio-api-system.html">Studio System</a>.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_setuserdata" title="Sets the user data.">Studio::System::setUserData</a> Sets the user data.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getuserdata" title="Retrieves the user data.">Studio::System::getUserData</a> Retrieves the user data.</span></li>
</ul>
<hr />
<ul>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_system_callback" title="Callback for Studio system events.">FMOD_STUDIO_SYSTEM_CALLBACK</a> Callback for Studio system events.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_system_callback_type" title="Callback types for the Studio System callback.">FMOD_STUDIO_SYSTEM_CALLBACK_TYPE</a> Callback types for the Studio System callback.</span></li>
</ul>
<p><strong>Sound table:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getsoundinfo" title="Retrieves information for loading a sound from the audio table.">Studio::System::getSoundInfo</a> Retrieves information for loading a sound from the audio table.</span></li>
</ul>
<hr />
<ul>
<li><span><a class="apilink" href="studio-api-system.html#fmod_studio_sound_info" title="Describes a sound in the audio table.">FMOD_STUDIO_SOUND_INFO</a> Describes a sound in the audio table.</span></li>
</ul>
<p><strong>General:</strong></p>
<ul>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_getcoresystem" title="Retrieves the Core System.">Studio::System::getCoreSystem</a> Retrieves the Core System.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_lookupid" title="Retrieves the ID for a bank, event, snapshot, bus or VCA.">Studio::System::lookupID</a> Retrieves the ID for a <a href="glossary.html#bank-file">bank</a>, <span class="dead-link" href="glossary.html#event">event</span class="dead-link">, <span class="dead-link" href="glossary.html#snapshot">snapshot</span class="dead-link">, <span class="dead-link" href="glossary.html#bus">bus</span class="dead-link"> or <span class="dead-link" href="glossary.html#vca">VCA</span class="dead-link">.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_lookuppath" title="Retrieves the path for a bank, event, snapshot, bus or VCA.">Studio::System::lookupPath</a> Retrieves the path for a <a href="glossary.html#bank-file">bank</a>, <span class="dead-link" href="glossary.html#event">event</span class="dead-link">, <span class="dead-link" href="glossary.html#snapshot">snapshot</span class="dead-link">, <span class="dead-link" href="glossary.html#bus">bus</span class="dead-link"> or <span class="dead-link" href="glossary.html#vca">VCA</span class="dead-link">.</span></li>
<li><span><a class="apilink" href="studio-api-system.html#studio_system_isvalid" title="Checks that the System reference is valid and has been initialized.">Studio::System::isValid</a> Checks that the System reference is valid and has been initialized.</span></li>
</ul>
<h2 api="struct" id="fmod_studio_advancedsettings"><a href="#fmod_studio_advancedsettings">FMOD_STUDIO_ADVANCEDSETTINGS</a></h2>
<p>Settings for advanced features like configuring memory and cpu usage.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="k">typedef</span> <span class="k">struct</span> <span class="n">FMOD_STUDIO_ADVANCEDSETTINGS</span> <span class="p">{</span>
<span class="kt">int</span> <span class="n">cbsize</span><span class="p">;</span>
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">commandqueuesize</span><span class="p">;</span>
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">handleinitialsize</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">studioupdateperiod</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">idlesampledatapoolsize</span><span class="p">;</span>
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">streamingscheduledelay</span><span class="p">;</span>
<span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">encryptionkey</span><span class="p">;</span>
<span class="p">}</span> <span class="n">FMOD_STUDIO_ADVANCEDSETTINGS</span><span class="p">;</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">struct</span> <span class="nc">Studio</span><span class="p">.</span><span class="n">ADVANCEDSETTINGS</span>
<span class="p">{</span>
<span class="kt">int</span> <span class="n">cbsize</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">commandqueuesize</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">handleinitialsize</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">studioupdateperiod</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">idlesampledatapoolsize</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">streamingscheduledelay</span><span class="p">;</span>
<span class="n">StringWrapper</span> <span class="n">encryptionkey</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">FMOD_STUDIO_ADVANCEDSETTINGS</span>
<span class="p">{</span>
<span class="nx">commandqueuesize</span><span class="p">,</span>
<span class="nx">handleinitialsize</span><span class="p">,</span>
<span class="nx">studioupdateperiod</span><span class="p">,</span>
<span class="nx">idlesampledatapoolsize</span><span class="p">,</span>
<span class="nx">streamingscheduledelay</span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
<dl>
<dt id="fmod_studio_advancedsettings_cbsize">cbsize</dt>
<dd>Size of this structure in bytes. Must be set to <code>sizeof(FMOD_STUDIO_ADVANCEDSETTINGS)</code> before calling <a class="apilink" href="studio-api-system.html#studio_system_setadvancedsettings">Studio::System::setAdvancedSettings</a> or <a class="apilink" href="studio-api-system.html#studio_system_getadvancedsettings">Studio::System::getAdvancedSettings</a>.</dd>
<dt id="fmod_studio_advancedsettings_commandqueuesize">commandqueuesize</dt>
<dd>
<p>Command queue size for studio async processing.</p>
<ul>
<li><span class="label">Units:</span> Bytes</li>
<li><span class="label">Default:</span> 32768</li>
</ul>
</dd>
<dt id="fmod_studio_advancedsettings_handleinitialsize">handleinitialsize</dt>
<dd>
<p>Initial size to allocate for handles. Memory for handles will grow as needed in pages.</p>
<ul>
<li><span class="label">Units:</span> Bytes</li>
<li><span class="label">Default:</span> 8192 * sizeof(void*)</li>
</ul>
</dd>
<dt id="fmod_studio_advancedsettings_studioupdateperiod">studioupdateperiod</dt>
<dd>
<p>Update period of Studio when in async mode, in milliseconds. Will be quantized to the nearest multiple of mixer duration.</p>
<ul>
<li><span class="label">Units:</span> Milliseconds</li>
<li><span class="label">Default:</span> 20</li>
</ul>
</dd>
<dt id="fmod_studio_advancedsettings_idlesampledatapoolsize">idlesampledatapoolsize</dt>
<dd>
<p>Size in bytes of sample data to retain in memory when no longer used, to avoid repeated disk I/O. Use -1 to disable.</p>
<ul>
<li><span class="label">Units:</span> Bytes</li>
<li><span class="label">Default:</span> 262144</li>
</ul>
</dd>
<dt id="fmod_studio_advancedsettings_streamingscheduledelay">streamingscheduledelay</dt>
<dd>
<p>Specify the schedule delay for streams, in samples. Lower values can reduce latency when scheduling events containing streams but may cause scheduling issues if too small.</p>
<ul>
<li><span class="label">Units:</span> Samples</li>
<li><span class="label">Default:</span> 8192</li>
</ul>
</dd>
<dt id="fmod_studio_advancedsettings_encryptionkey">encryptionkey</dt>
<dd>Specify the key for loading sounds from encrypted <a href="glossary.html#bank-file">banks</a>. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
</dl>
<p>When calling <a class="apilink" href="studio-api-system.html#studio_system_setadvancedsettings">Studio::System::setAdvancedSettings</a> any member other than <code>cbsize</code> may be set to zero to use the default value for that setting.</p>
<h2 api="struct" id="fmod_studio_bank_info"><a href="#fmod_studio_bank_info">FMOD_STUDIO_BANK_INFO</a></h2>
<p>Information for loading a <a href="glossary.html#bank-file">bank</a> using user callbacks.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="k">typedef</span> <span class="k">struct</span> <span class="n">FMOD_STUDIO_BANK_INFO</span> <span class="p">{</span>
<span class="kt">int</span> <span class="n">size</span><span class="p">;</span>
<span class="kt">void</span> <span class="o">*</span><span class="n">userdata</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">userdatalength</span><span class="p">;</span>
<span class="n">FMOD_FILE_OPEN_CALLBACK</span> <span class="n">opencallback</span><span class="p">;</span>
<span class="n">FMOD_FILE_CLOSE_CALLBACK</span> <span class="n">closecallback</span><span class="p">;</span>
<span class="n">FMOD_FILE_READ_CALLBACK</span> <span class="n">readcallback</span><span class="p">;</span>
<span class="n">FMOD_FILE_SEEK_CALLBACK</span> <span class="n">seekcallback</span><span class="p">;</span>
<span class="p">}</span> <span class="n">FMOD_STUDIO_BANK_INFO</span><span class="p">;</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">struct</span> <span class="nc">Studio</span><span class="p">.</span><span class="n">BANK_INFO</span>
<span class="p">{</span>
<span class="kt">int</span> <span class="n">size</span><span class="p">;</span>
<span class="n">IntPtr</span> <span class="n">userdata</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">userdatalength</span><span class="p">;</span>
<span class="n">FILE_OPENCALLBACK</span> <span class="n">opencallback</span><span class="p">;</span>
<span class="n">FILE_CLOSECALLBACK</span> <span class="n">closecallback</span><span class="p">;</span>
<span class="n">FILE_READCALLBACK</span> <span class="n">readcallback</span><span class="p">;</span>
<span class="n">FILE_SEEKCALLBACK</span> <span class="n">seekcallback</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">FMOD_STUDIO_BANK_INFO</span>
<span class="p">{</span>
<span class="nx">userdata</span><span class="p">,</span>
<span class="nx">userdatalength</span><span class="p">,</span>
<span class="nx">opencallback</span><span class="p">,</span>
<span class="nx">closecallback</span><span class="p">,</span>
<span class="nx">readcallback</span><span class="p">,</span>
<span class="nx">seekcallback</span><span class="p">,</span>
<span class="p">};</span>
</pre></div>
<dl>
<dt id="fmod_studio_bank_info_size">size</dt>
<dd>Size of this structure in bytes. Must be set to <code>sizeof(FMOD_STUDIO_BANK_INFO)</code>.</dd>
<dt id="fmod_studio_bank_info_userdata">userdata <span><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>User data to be passed to the file callbacks. If <code>userdatalength</code> is zero, this must remain valid until the bank has been unloaded and all calls to <code>opencallback</code> have been matched by a call to <code>closecallback</code>.</dd>
<dt id="fmod_studio_bank_info_userdatalength">userdatalength</dt>
<dd>Length of user data in bytes. If non-zero the userdata will be copied internally; this copy will be kept until the bank has been unloaded and all calls to <code>opencallback</code> have been matched by a call to <code>closecallback</code>.</dd>
<dt id="fmod_studio_bank_info_opencallback">opencallback</dt>
<dd>Callback for opening the bank file. (<a class="apilink" href="core-api-system.html#fmod_file_open_callback">FMOD_FILE_OPEN_CALLBACK</a>)</dd>
<dt id="fmod_studio_bank_info_closecallback">closecallback</dt>
<dd>Callback for closing the bank file. (<a class="apilink" href="core-api-system.html#fmod_file_close_callback">FMOD_FILE_CLOSE_CALLBACK</a>)</dd>
<dt id="fmod_studio_bank_info_readcallback">readcallback</dt>
<dd>Callback for reading from the bank file. (<a class="apilink" href="core-api-system.html#fmod_file_read_callback">FMOD_FILE_READ_CALLBACK</a>)</dd>
<dt id="fmod_studio_bank_info_seekcallback">seekcallback</dt>
<dd>Callback for seeking within the bank file. (<a class="apilink" href="core-api-system.html#fmod_file_seek_callback">FMOD_FILE_SEEK_CALLBACK</a>)</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_loadbankcustom">Studio::System::loadBankCustom</a></p>
<h2 api="struct" id="fmod_studio_buffer_info"><a href="#fmod_studio_buffer_info">FMOD_STUDIO_BUFFER_INFO</a></h2>
<p>Information for a single buffer in <a href="glossary.html#fmod-studio">FMOD Studio</a>.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="k">typedef</span> <span class="k">struct</span> <span class="n">FMOD_STUDIO_BUFFER_INFO</span> <span class="p">{</span>
<span class="kt">int</span> <span class="n">currentusage</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">peakusage</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">capacity</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">stallcount</span><span class="p">;</span>
<span class="kt">float</span> <span class="n">stalltime</span><span class="p">;</span>
<span class="p">}</span> <span class="n">FMOD_STUDIO_BUFFER_INFO</span><span class="p">;</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">struct</span> <span class="nc">Studio</span><span class="p">.</span><span class="n">BUFFER_INFO</span>
<span class="p">{</span>
<span class="kt">int</span> <span class="n">currentusage</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">peakusage</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">capacity</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">stallcount</span><span class="p">;</span>
<span class="kt">float</span> <span class="n">stalltime</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">FMOD_STUDIO_BUFFER_INFO</span>
<span class="p">{</span>
<span class="nx">currentusage</span><span class="p">,</span>
<span class="nx">peakusage</span><span class="p">,</span>
<span class="nx">capacity</span><span class="p">,</span>
<span class="nx">stallcount</span><span class="p">,</span>
<span class="nx">stalltime</span><span class="p">,</span>
<span class="p">};</span>
</pre></div>
<dl>
<dt id="fmod_studio_buffer_info_currentusage">currentusage</dt>
<dd>Current buffer usage in bytes. </dd>
<dt id="fmod_studio_buffer_info_peakusage">peakusage</dt>
<dd>Peak buffer usage in bytes. </dd>
<dt id="fmod_studio_buffer_info_capacity">capacity</dt>
<dd>Buffer capacity in bytes. </dd>
<dt id="fmod_studio_buffer_info_stallcount">stallcount</dt>
<dd>Cumulative number of stalls due to buffer overflow. </dd>
<dt id="fmod_studio_buffer_info_stalltime">stalltime</dt>
<dd>Cumulative amount of time stalled due to buffer overflow, in seconds. </dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#fmod_studio_buffer_usage">FMOD_STUDIO_BUFFER_USAGE</a></p>
<h2 api="struct" id="fmod_studio_buffer_usage"><a href="#fmod_studio_buffer_usage">FMOD_STUDIO_BUFFER_USAGE</a></h2>
<p>Information for <a href="glossary.html#fmod-studio">FMOD Studio</a> buffer usage.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="k">typedef</span> <span class="k">struct</span> <span class="n">FMOD_STUDIO_BUFFER_USAGE</span> <span class="p">{</span>
<span class="n">FMOD_STUDIO_BUFFER_INFO</span> <span class="n">studiocommandqueue</span><span class="p">;</span>
<span class="n">FMOD_STUDIO_BUFFER_INFO</span> <span class="n">studiohandle</span><span class="p">;</span>
<span class="p">}</span> <span class="n">FMOD_STUDIO_BUFFER_USAGE</span><span class="p">;</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">struct</span> <span class="nc">Studio</span><span class="p">.</span><span class="n">BUFFER_USAGE</span>
<span class="p">{</span>
<span class="n">BUFFER_INFO</span> <span class="n">studiocommandqueue</span><span class="p">;</span>
<span class="n">BUFFER_INFO</span> <span class="n">studiohandle</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">FMOD_STUDIO_BUFFER_USAGE</span>
<span class="p">{</span>
<span class="nx">studiocommandqueue</span><span class="p">,</span>
<span class="nx">studiohandle</span><span class="p">,</span>
<span class="p">};</span>
</pre></div>
<dl>
<dt id="fmod_studio_buffer_usage_studiocommandqueue">studiocommandqueue</dt>
<dd>Information for the Studio Async Command buffer. (<a class="apilink" href="studio-api-system.html#fmod_studio_buffer_info">FMOD_STUDIO_BUFFER_INFO</a>)</dd>
<dt id="fmod_studio_buffer_usage_studiohandle">studiohandle</dt>
<dd>Information for the Studio handle table. (<a class="apilink" href="studio-api-system.html#fmod_studio_buffer_info">FMOD_STUDIO_BUFFER_INFO</a>)</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getbufferusage">Studio::System::getBufferUsage</a></p>
<h2 api="define" id="fmod_studio_commandcapture_flags"><a href="#fmod_studio_commandcapture_flags">FMOD_STUDIO_COMMANDCAPTURE_FLAGS</a></h2>
<p>Flags controling command capture.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="cp">#define FMOD_STUDIO_COMMANDCAPTURE_NORMAL 0x00000000</span>
<span class="cp">#define FMOD_STUDIO_COMMANDCAPTURE_FILEFLUSH 0x00000001</span>
<span class="cp">#define FMOD_STUDIO_COMMANDCAPTURE_SKIP_INITIAL_STATE 0x00000002</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">enum</span> <span class="n">Studio</span><span class="p">.</span><span class="n">COMMANDCAPTURE_FLAGS</span> <span class="p">:</span> <span class="kt">uint</span>
<span class="p">{</span>
<span class="n">NORMAL</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000000</span><span class="p">,</span>
<span class="n">FILEFLUSH</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000001</span><span class="p">,</span>
<span class="n">SKIP_INITIAL_STATE</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000002</span><span class="p">,</span>
<span class="p">}</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">STUDIO_COMMANDCAPTURE_NORMAL</span> <span class="mh">0x00000000</span>
<span class="nx">STUDIO_COMMANDCAPTURE_FILEFLUSH</span> <span class="mh">0x00000001</span>
<span class="nx">STUDIO_COMMANDCAPTURE_SKIP_INITIAL_STATE</span> <span class="mh">0x00000002</span>
</pre></div>
<dl>
<dt id="fmod_studio_commandcapture_normal">FMOD_STUDIO_COMMANDCAPTURE_NORMAL</dt>
<dd>Use default options. </dd>
<dt id="fmod_studio_commandcapture_fileflush">FMOD_STUDIO_COMMANDCAPTURE_FILEFLUSH</dt>
<dd>Call file flush on every command. </dd>
<dt id="fmod_studio_commandcapture_skip_initial_state">FMOD_STUDIO_COMMANDCAPTURE_SKIP_INITIAL_STATE</dt>
<dd>The initial state of <a href="glossary.html#bank-file">banks</a> and instances is captured, unless this flag is set. </dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_startcommandcapture">Studio::System::startCommandCapture</a></p>
<h2 api="define" id="fmod_studio_commandreplay_flags"><a href="#fmod_studio_commandreplay_flags">FMOD_STUDIO_COMMANDREPLAY_FLAGS</a></h2>
<p>Flags controlling command replay.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="cp">#define FMOD_STUDIO_COMMANDREPLAY_NORMAL 0x00000000</span>
<span class="cp">#define FMOD_STUDIO_COMMANDREPLAY_SKIP_CLEANUP 0x00000001</span>
<span class="cp">#define FMOD_STUDIO_COMMANDREPLAY_FAST_FORWARD 0x00000002</span>
<span class="cp">#define FMOD_STUDIO_COMMANDREPLAY_SKIP_BANK_LOAD 0x00000004</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">enum</span> <span class="n">Studio</span><span class="p">.</span><span class="n">COMMANDREPLAY_FLAGS</span> <span class="p">:</span> <span class="kt">uint</span>
<span class="p">{</span>
<span class="n">NORMAL</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000000</span><span class="p">,</span>
<span class="n">SKIP_CLEANUP</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000001</span><span class="p">,</span>
<span class="n">FAST_FORWARD</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000002</span><span class="p">,</span>
<span class="n">SKIP_BANK_LOAD</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000004</span><span class="p">,</span>
<span class="p">}</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">STUDIO_COMMANDREPLAY_NORMAL</span> <span class="mh">0x00000000</span>
<span class="nx">STUDIO_COMMANDREPLAY_SKIP_CLEANUP</span> <span class="mh">0x00000001</span>
<span class="nx">STUDIO_COMMANDREPLAY_FAST_FORWARD</span> <span class="mh">0x00000002</span>
<span class="nx">STUDIO_COMMANDREPLAY_SKIP_BANK_LOAD</span> <span class="mh">0x00000004</span>
</pre></div>
<dl>
<dt id="fmod_studio_commandreplay_normal">FMOD_STUDIO_COMMANDREPLAY_NORMAL</dt>
<dd>Use default options.</dd>
<dt id="fmod_studio_commandreplay_skip_cleanup">FMOD_STUDIO_COMMANDREPLAY_SKIP_CLEANUP</dt>
<dd>Do not free resources at the end of playback.</dd>
<dt id="fmod_studio_commandreplay_fast_forward">FMOD_STUDIO_COMMANDREPLAY_FAST_FORWARD</dt>
<dd>Play back at maximum speed, ignoring the timing of the original replay.</dd>
<dt id="fmod_studio_commandreplay_skip_bank_load">FMOD_STUDIO_COMMANDREPLAY_SKIP_BANK_LOAD</dt>
<dd>Skip commands related to <a href="glossary.html#bank-file">bank</a> loading.</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_loadcommandreplay">Studio::System::loadCommandReplay</a></p>
<h2 api="struct" id="fmod_studio_cpu_usage"><a href="#fmod_studio_cpu_usage">FMOD_STUDIO_CPU_USAGE</a></h2>
<p>Performance information for Studio API functionality.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="k">typedef</span> <span class="k">struct</span> <span class="n">FMOD_STUDIO_CPU_USAGE</span> <span class="p">{</span>
<span class="kt">float</span> <span class="n">update</span><span class="p">;</span>
<span class="p">}</span> <span class="n">FMOD_STUDIO_CPU_USAGE</span><span class="p">;</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">struct</span> <span class="nc">Studio</span><span class="p">.</span><span class="n">CPU_USAGE</span>
<span class="p">{</span>
<span class="kt">float</span> <span class="n">update</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">FMOD_STUDIO_CPU_USAGE</span>
<span class="p">{</span>
<span class="nx">update</span>
<span class="p">};</span>
</pre></div>
<dl>
<dt id="fmod_studio_cpu_usage_update">update</dt>
<dd>
<p><a class="apilink" href="studio-api-system.html#studio_system_update">Studio::System::update</a> CPU usage. Percentage of main thread, or main thread if <a class="apilink" href="studio-api-system.html#fmod_studio_init_synchronous_update">FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE</a> flag is used with <a class="apilink" href="studio-api-system.html#studio_system_initialize">Studio::System::initialize</a>.</p>
<ul>
<li><span class="label">Units:</span> Percent</li>
<li><span class="label">Range:</span> [0, 100]</li>
</ul>
</dd>
</dl>
<p>This structure is filled in with <a class="apilink" href="studio-api-system.html#studio_system_getcpuusage">Studio::System::getCPUUsage</a>.</p>
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_getcpuusage">System::getCPUUsage</a>, <a class="apilink" href="core-api-common.html#fmod_cpu_usage">FMOD_CPU_USAGE</a></p>
<h2 api="define" id="fmod_studio_initflags"><a href="#fmod_studio_initflags">FMOD_STUDIO_INITFLAGS</a></h2>
<p>Studio System initialization flags.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="cp">#define FMOD_STUDIO_INIT_NORMAL 0x00000000</span>
<span class="cp">#define FMOD_STUDIO_INIT_LIVEUPDATE 0x00000001</span>
<span class="cp">#define FMOD_STUDIO_INIT_ALLOW_MISSING_PLUGINS 0x00000002</span>
<span class="cp">#define FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE 0x00000004</span>
<span class="cp">#define FMOD_STUDIO_INIT_DEFERRED_CALLBACKS 0x00000008</span>
<span class="cp">#define FMOD_STUDIO_INIT_LOAD_FROM_UPDATE 0x00000010</span>
<span class="cp">#define FMOD_STUDIO_INIT_MEMORY_TRACKING 0x00000020</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">enum</span> <span class="n">Studio</span><span class="p">.</span><span class="n">INITFLAGS</span> <span class="p">:</span> <span class="kt">uint</span>
<span class="p">{</span>
<span class="n">NORMAL</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000000</span>
<span class="n">LIVEUPDATE</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000001</span>
<span class="n">ALLOW_MISSING_PLUGINS</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000002</span>
<span class="n">SYNCHRONOUS_UPDATE</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000004</span>
<span class="n">DEFERRED_CALLBACKS</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000008</span>
<span class="n">LOAD_FROM_UPDATE</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000010</span>
<span class="n">MEMORY_TRACKING</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000020</span>
<span class="p">}</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">STUDIO_INIT_NORMAL</span> <span class="mh">0x00000000</span>
<span class="nx">STUDIO_INIT_LIVEUPDATE</span> <span class="mh">0x00000001</span>
<span class="nx">STUDIO_INIT_ALLOW_MISSING_PLUGINS</span> <span class="mh">0x00000002</span>
<span class="nx">STUDIO_INIT_SYNCHRONOUS_UPDATE</span> <span class="mh">0x00000004</span>
<span class="nx">STUDIO_INIT_DEFERRED_CALLBACKS</span> <span class="mh">0x00000008</span>
<span class="nx">STUDIO_INIT_LOAD_FROM_UPDATE</span> <span class="mh">0x00000010</span>
<span class="nx">STUDIO_INIT_MEMORY_TRACKING</span> <span class="mh">0x00000020</span>
</pre></div>
<dl>
<dt id="fmod_studio_init_normal">FMOD_STUDIO_INIT_NORMAL</dt>
<dd>Use defaults for all initialization options. </dd>
<dt id="fmod_studio_init_liveupdate">FMOD_STUDIO_INIT_LIVEUPDATE</dt>
<dd>Enable live update. </dd>
<dt id="fmod_studio_init_allow_missing_plugins">FMOD_STUDIO_INIT_ALLOW_MISSING_PLUGINS</dt>
<dd>Load <a href="glossary.html#bank-file">banks</a> even if they reference plug-ins that have not been loaded. </dd>
<dt id="fmod_studio_init_synchronous_update">FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE</dt>
<dd>Disable asynchronous processing and perform all processing on the calling thread instead. </dd>
<dt id="fmod_studio_init_deferred_callbacks">FMOD_STUDIO_INIT_DEFERRED_CALLBACKS</dt>
<dd>Defer timeline callbacks until the main update. See <a class="apilink" href="studio-api-eventinstance.html#studio_eventinstance_setcallback">Studio::EventInstance::setCallback</a> for more information. </dd>
<dt id="fmod_studio_init_load_from_update">FMOD_STUDIO_INIT_LOAD_FROM_UPDATE</dt>
<dd>No additional threads are created for bank and resource loading. Loading is driven from <a class="apilink" href="studio-api-system.html#studio_system_update">Studio::System::update</a>.</dd>
<dt id="fmod_studio_init_memory_tracking">FMOD_STUDIO_INIT_MEMORY_TRACKING</dt>
<dd>Enables detailed memory usage statistics. Increases memory footprint and impacts performance. See <a class="apilink" href="studio-api-bus.html#studio_bus_getmemoryusage">Studio::Bus::getMemoryUsage</a> and <a class="apilink" href="studio-api-eventinstance.html#studio_eventinstance_getmemoryusage">Studio::EventInstance::getMemoryUsage</a> for more information. Implies <a class="apilink" href="core-api-system.html#fmod_init_memory_tracking">FMOD_INIT_MEMORY_TRACKING</a>.</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_initialize">Studio::System::initialize</a></p>
<h2 api="define" id="fmod_studio_load_bank_flags"><a href="#fmod_studio_load_bank_flags">FMOD_STUDIO_LOAD_BANK_FLAGS</a></h2>
<p>Flags for controlling <a href="glossary.html#bank-file">bank</a> loading.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="cp">#define FMOD_STUDIO_LOAD_BANK_NORMAL 0x00000000</span>
<span class="cp">#define FMOD_STUDIO_LOAD_BANK_NONBLOCKING 0x00000001</span>
<span class="cp">#define FMOD_STUDIO_LOAD_BANK_DECOMPRESS_SAMPLES 0x00000002</span>
<span class="cp">#define FMOD_STUDIO_LOAD_BANK_UNENCRYPTED 0x00000004</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">enum</span> <span class="n">Studio</span><span class="p">.</span><span class="n">LOAD_BANK_FLAGS</span> <span class="p">:</span> <span class="kt">uint</span>
<span class="p">{</span>
<span class="n">NORMAL</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000000</span><span class="p">,</span>
<span class="n">NONBLOCKING</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000001</span><span class="p">,</span>
<span class="n">DECOMPRESS_SAMPLES</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000002</span><span class="p">,</span>
<span class="n">UNENCRYPTED</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000004</span><span class="p">,</span>
<span class="p">}</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">STUDIO_LOAD_BANK_NORMAL</span> <span class="mh">0x00000000</span>
<span class="nx">STUDIO_LOAD_BANK_NONBLOCKING</span> <span class="mh">0x00000001</span>
<span class="nx">STUDIO_LOAD_BANK_DECOMPRESS_SAMPLES</span> <span class="mh">0x00000002</span>
<span class="nx">STUDIO_LOAD_BANK_UNENCRYPTED</span> <span class="mh">0x00000004</span>
</pre></div>
<dl>
<dt id="fmod_studio_load_bank_normal">FMOD_STUDIO_LOAD_BANK_NORMAL</dt>
<dd>Standard behavior. </dd>
<dt id="fmod_studio_load_bank_nonblocking">FMOD_STUDIO_LOAD_BANK_NONBLOCKING</dt>
<dd>Bank loading occurs asynchronously rather than occurring immediately. </dd>
<dt id="fmod_studio_load_bank_decompress_samples">FMOD_STUDIO_LOAD_BANK_DECOMPRESS_SAMPLES</dt>
<dd>Force samples to decompress into memory when they are loaded, rather than staying compressed. </dd>
<dt id="fmod_studio_load_bank_unencrypted">FMOD_STUDIO_LOAD_BANK_UNENCRYPTED</dt>
<dd>Ignore the encryption key specified by Studio::System::setAdvancedSettings when loading sounds from this bank (assume the sounds in the bank are not encrypted).</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_loadbankfile">Studio::System::loadBankFile</a>, <a class="apilink" href="studio-api-system.html#studio_system_loadbankmemory">Studio::System::loadBankMemory</a>, <a class="apilink" href="studio-api-system.html#studio_system_loadbankcustom">Studio::System::loadBankCustom</a></p>
<h2 api="define" id="fmod_studio_load_memory_alignment"><a href="#fmod_studio_load_memory_alignment">FMOD_STUDIO_LOAD_MEMORY_ALIGNMENT</a></h2>
<p>The required memory alignment of <a href="glossary.html#bank-file">banks</a> in user memory.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="cp">#define FMOD_STUDIO_LOAD_MEMORY_ALIGNMENT 32</span>
</pre></div>
<div class="admonition language-csharp">
<p>Not supported for C#.</p>
</div>
<div class="admonition language-javascript">
<p>Not supported for JavaScript.</p>
</div>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_loadbankmemory">Studio::System::loadBankMemory</a></p>
<h2 api="enum" id="fmod_studio_load_memory_mode"><a href="#fmod_studio_load_memory_mode">FMOD_STUDIO_LOAD_MEMORY_MODE</a></h2>
<p>Specifies how to use the memory buffer passed to Studio::System::loadBankMemory.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="k">typedef</span> <span class="k">enum</span> <span class="n">FMOD_STUDIO_LOAD_MEMORY_MODE</span> <span class="p">{</span>
<span class="n">FMOD_STUDIO_LOAD_MEMORY</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_LOAD_MEMORY_POINT</span>
<span class="p">}</span> <span class="n">FMOD_STUDIO_LOAD_MEMORY_MODE</span><span class="p">;</span>
</pre></div>
<div class="admonition language-csharp">
<p>Not supported for C#.</p>
</div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">STUDIO_LOAD_MEMORY</span> <span class="mi">0</span>
<span class="nx">STUDIO_LOAD_MEMORY_POINT</span> <span class="mi">1</span>
</pre></div>
<dl>
<dt id="fmod_studio_load_memory">FMOD_STUDIO_LOAD_MEMORY</dt>
<dd>Memory buffer is copied internally. </dd>
<dt id="fmod_studio_load_memory_point">FMOD_STUDIO_LOAD_MEMORY_POINT</dt>
<dd>Memory buffer is used directly in user memory. </dd>
</dl>
<div class="admonition language-javascript">
<p>It is not currently possible for <a href="glossary.html#fmod-engine">the FMOD Engine</a> to use <a href="glossary.html#bank-file">banks</a> loaded into user memory. Only FMOD.STUDIO_LOAD_MEMORY is supported.</p>
</div>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_loadbankmemory">Studio::System::loadBankMemory</a></p>
<h2 api="struct" id="fmod_studio_sound_info"><a href="#fmod_studio_sound_info">FMOD_STUDIO_SOUND_INFO</a></h2>
<p>Describes a sound in the audio table.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="k">typedef</span> <span class="k">struct</span> <span class="n">FMOD_STUDIO_SOUND_INFO</span> <span class="p">{</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name_or_data</span><span class="p">;</span>
<span class="n">FMOD_MODE</span> <span class="n">mode</span><span class="p">;</span>
<span class="n">FMOD_CREATESOUNDEXINFO</span> <span class="n">exinfo</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">subsoundindex</span><span class="p">;</span>
<span class="p">}</span> <span class="n">FMOD_STUDIO_SOUND_INFO</span><span class="p">;</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">class</span> <span class="nc">Studio</span><span class="p">.</span><span class="n">SOUND_INFO</span>
<span class="p">{</span>
<span class="kt">byte</span><span class="p">[]</span> <span class="n">name_or_data</span><span class="p">;</span>
<span class="n">MODE</span> <span class="n">mode</span><span class="p">;</span>
<span class="n">CREATESOUNDEXINFO</span> <span class="n">exinfo</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">subsoundindex</span><span class="p">;</span>
<span class="kt">string</span> <span class="n">name</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="p">}</span>
<span class="p">}</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">FMOD_STUDIO_SOUND_INFO</span>
<span class="p">{</span>
<span class="nx">name_or_data</span><span class="p">,</span>
<span class="nx">mode</span><span class="p">,</span>
<span class="nx">exinfo</span><span class="p">,</span>
<span class="nx">subsoundindex</span><span class="p">,</span>
<span class="p">};</span>
</pre></div>
<dl>
<dt id="fmod_studio_sound_info_name_or_data">name_or_data</dt>
<dd>The filename (<a href="glossary.html#string-format">UTF-8 string</a>) or memory buffer that contains the sound.</dd>
<dt id="fmod_studio_sound_info_mode">mode</dt>
<dd>
<p>Mode flags required for loading the sound. (<a class="apilink" href="core-api-common.html#fmod_mode">FMOD_MODE</a>)</p>
<ul>
<li><span class="label">Default:</span> <a class="apilink" href="core-api-common.html#fmod_default">FMOD_DEFAULT</a></li>
</ul>
</dd>
<dt id="fmod_studio_sound_info_exinfo">exinfo</dt>
<dd>Extra information required for loading the sound. (<a class="apilink" href="core-api-system.html#fmod_createsoundexinfo">FMOD_CREATESOUNDEXINFO</a>)</dd>
<dt id="fmod_studio_sound_info_subsoundindex">subsoundindex</dt>
<dd>Subsound index for loading the sound.</dd>
</dl>
<div class="admonition language-csharp">
<p>The <code>name</code> property is a getter for the <code>name_or_data</code> member which will return null if the sound should be loaded from memory.</p>
</div>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getsoundinfo">Studio::System::getSoundInfo</a></p>
<h2 api="callback" id="fmod_studio_system_callback"><a href="#fmod_studio_system_callback">FMOD_STUDIO_SYSTEM_CALLBACK</a></h2>
<p>Callback for Studio system events.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">F_CALL</span> <span class="nf">FMOD_STUDIO_SYSTEM_CALLBACK</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_SYSTEM_CALLBACK_TYPE</span> <span class="n">type</span><span class="p">,</span>
<span class="kt">void</span> <span class="o">*</span><span class="n">commanddata</span><span class="p">,</span>
<span class="kt">void</span> <span class="o">*</span><span class="n">userdata</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">delegate</span> <span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">SYSTEM_CALLBACK</span><span class="p">(</span>
<span class="n">IntPtr</span> <span class="n">system</span><span class="p">,</span>
<span class="n">SYSTEM_CALLBACK_TYPE</span> <span class="n">type</span><span class="p">,</span>
<span class="n">IntPtr</span> <span class="n">commanddata</span><span class="p">,</span>
<span class="n">IntPtr</span> <span class="n">userdata</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="kd">function</span> <span class="nx">FMOD_STUDIO_SYSTEM_CALLBACK</span><span class="p">(</span>
<span class="nx">system</span><span class="p">,</span>
<span class="nx">type</span><span class="p">,</span>
<span class="nx">commanddata</span><span class="p">,</span>
<span class="nx">userdata</span>
<span class="p">)</span>
</pre></div>
<dl>
<dt>system</dt>
<dd>Studio system. (<a class="apilink" href="studio-api-system.html">Studio::System</a>)</dd>
<dt>type</dt>
<dd>Callback type. (<a class="apilink" href="studio-api-system.html#fmod_studio_system_callback_type">FMOD_STUDIO_SYSTEM_CALLBACK_TYPE</a>)</dd>
<dt>commanddata</dt>
<dd>Data specific to callback type.</dd>
<dt>userdata</dt>
<dd>User data set with <a class="apilink" href="studio-api-system.html#studio_system_setuserdata">Studio::System::setUserData</a>.</dd>
</dl>
<div class="admonition language-cpp">
<p><code>system</code> can be cast to <code>Studio::System *</code>.</p>
</div>
<p><strong>See Also:</strong> <a href="glossary.html#callback-behavior">Callback Behavior</a>, <a href="glossary.html#user-data">User Data</a></p>
<h2 api="define" id="fmod_studio_system_callback_type"><a href="#fmod_studio_system_callback_type">FMOD_STUDIO_SYSTEM_CALLBACK_TYPE</a></h2>
<p>Callback types for the Studio System callback.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-c-cpp"><pre><span></span><span class="cp">#define FMOD_STUDIO_SYSTEM_CALLBACK_PREUPDATE 0x00000001</span>
<span class="cp">#define FMOD_STUDIO_SYSTEM_CALLBACK_POSTUPDATE 0x00000002</span>
<span class="cp">#define FMOD_STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD 0x00000004</span>
<span class="cp">#define FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_CONNECTED 0x00000008</span>
<span class="cp">#define FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_DISCONNECTED 0x00000010</span>
<span class="cp">#define FMOD_STUDIO_SYSTEM_CALLBACK_ALL 0xFFFFFFFF</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">enum</span> <span class="n">Studio</span><span class="p">.</span><span class="n">SYSTEM_CALLBACK_TYPE</span> <span class="p">:</span> <span class="kt">uint</span>
<span class="p">{</span>
<span class="n">PREUPDATE</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000001</span><span class="p">,</span>
<span class="n">POSTUPDATE</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000002</span><span class="p">,</span>
<span class="n">BANK_UNLOAD</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000004</span><span class="p">,</span>
<span class="n">LIVEUPDATE_CONNECTED</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000008</span><span class="p">,</span>
<span class="n">LIVEUPDATE_DISCONNECTED</span> <span class="p">=</span> <span class="m">0</span><span class="n">x00000010</span><span class="p">,</span>
<span class="n">ALL</span> <span class="p">=</span> <span class="m">0</span><span class="n">xFFFFFFFF</span><span class="p">,</span>
<span class="p">}</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">STUDIO_SYSTEM_CALLBACK_PREUPDATE</span> <span class="mh">0x00000001</span>
<span class="nx">STUDIO_SYSTEM_CALLBACK_POSTUPDATE</span> <span class="mh">0x00000002</span>
<span class="nx">STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD</span> <span class="mh">0x00000004</span>
<span class="nx">STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_CONNECTED</span> <span class="mh">0x00000008</span>
<span class="nx">STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_DISCONNECTED</span> <span class="mh">0x00000010</span>
<span class="nx">STUDIO_SYSTEM_CALLBACK_ALL</span> <span class="mh">0xFFFFFFFF</span>
</pre></div>
<dl>
<dt id="fmod_studio_system_callback_preupdate">FMOD_STUDIO_SYSTEM_CALLBACK_PREUPDATE</dt>
<dd>Called at the start of the main Studio update. For async mode this will be on its own thread. </dd>
<dt id="fmod_studio_system_callback_postupdate">FMOD_STUDIO_SYSTEM_CALLBACK_POSTUPDATE</dt>
<dd>Called at the end of the main Studio update. For async mode this will be on its own thread. </dd>
<dt id="fmod_studio_system_callback_bank_unload">FMOD_STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD</dt>
<dd>Called directly when a <a href="glossary.html#bank-file">bank</a> has just been unloaded, after all resources are freed. The <code>commanddata</code> argument is the bank handle.</dd>
<dt id="fmod_studio_system_callback_all">FMOD_STUDIO_SYSTEM_CALLBACK_ALL</dt>
<dd>Pass this mask to <a class="apilink" href="studio-api-system.html#studio_system_setcallback">Studio::System::setCallback</a> to receive all callback types.</dd>
<dt id="fmod_studio_system_callback_liveupdate_connected">FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_CONNECTED</dt>
<dd>Called after a live update connection has been established.</dd>
<dt id="fmod_studio_system_callback_liveupdate_disconnected">FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_DISCONNECTED</dt>
<dd>Called after live update session disconnects.</dd>
</dl>
<p>Callbacks are called from the Studio Update Thread in default / async mode and the main (calling) thread in synchronous mode.</p>
<p><strong>See Also:</strong> <a href="glossary.html#callback-behavior">Callback Behavior</a>, <a class="apilink" href="studio-api-system.html#fmod_studio_system_callback">FMOD_STUDIO_SYSTEM_CALLBACK</a>, <a class="apilink" href="studio-api-system.html#studio_system_setcallback">Studio::System::setCallback</a></p>
<h2 api="function" id="studio_system_create"><a href="#studio_system_create">Studio::System::create</a></h2>
<p>FMOD Studio System creation function.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="k">static</span> <span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">create</span><span class="p">(</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">System</span> <span class="o">**</span><span class="n">system</span><span class="p">,</span>
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">headerversion</span> <span class="o">=</span> <span class="n">FMOD_VERSION</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_Create</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">**</span><span class="n">system</span><span class="p">,</span>
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">headerversion</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="k">static</span> <span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">create</span><span class="p">(</span>
<span class="k">out</span> <span class="n">System</span> <span class="n">system</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="kr">static</span> <span class="nx">Studio_System_Create</span><span class="p">(</span>
<span class="nx">system</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>system <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Studio System object. (<a class="apilink" href="studio-api-system.html">Studio::System</a>)</dd>
<dt language-c-cpp="language-c-cpp">headerversion</dt>
<dd>Expected Studio API version.</dd>
</dl>
<p>Pass <a class="apilink" href="core-api-common.html#fmod_version">FMOD_VERSION</a> in <code>headerversion</code> to ensure the library and header versions being used match.</p>
<p>Call <a class="apilink" href="studio-api-system.html#studio_system_release">Studio::System::release</a> to free the Studio System.</p>
<p><a class="apilink" href="studio-api-system.html#studio_system_create">Studio::System::create</a> and <a class="apilink" href="studio-api-system.html#studio_system_release">Studio::System::release</a> are not thread-safe. Calling either of these functions concurrently with any Studio API function (including these two functions) may cause undefined behavior. External synchronization must be used if calls to <a class="apilink" href="studio-api-system.html#studio_system_create">Studio::System::create</a> or <a class="apilink" href="studio-api-system.html#studio_system_release">Studio::System::release</a> could overlap other Studio API calls. All other Studio API functions are thread safe and may be called freely from any thread unless otherwise documented.</p>
<p><strong>See Also:</strong> <a href="studio-guide.html#creating-the-studio-system">Creating the Studio System</a></p>
<h2 api="function" id="studio_system_flushcommands"><a href="#studio_system_flushcommands">Studio::System::flushCommands</a></h2>
<p>Block until all pending commands have been executed.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">flushCommands</span><span class="p">();</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_FlushCommands</span><span class="p">(</span><span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">flushCommands</span><span class="p">();</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">flushCommands</span><span class="p">();</span>
</pre></div>
<p>This function blocks the calling thread until all pending commands have been executed and all non-blocking <a href="glossary.html#bank-file">bank</a> loads have been completed.</p>
<p>This is equivalent to calling <a class="apilink" href="studio-api-system.html#studio_system_update">Studio::System::update</a> and then sleeping until the asynchronous thread has finished executing all pending commands.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_initialize">Studio::System::initialize</a>, <a class="apilink" href="studio-api-system.html#studio_system_update">Studio::System::update</a>, <a class="apilink" href="studio-api-system.html#studio_system_flushsampleloading">Studio::System::flushSampleLoading</a></p>
<h2 api="function" id="studio_system_flushsampleloading"><a href="#studio_system_flushsampleloading">Studio::System::flushSampleLoading</a></h2>
<p>Block until all sample loading and unloading has completed.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">flushSampleLoading</span><span class="p">();</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_FlushSampleLoading</span><span class="p">(</span><span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">flushSampleLoading</span><span class="p">();</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">flushSampleLoading</span><span class="p">();</span>
</pre></div>
<div class="admonition note">
<p>This function may stall for a long time if other threads are continuing to issue calls to load and unload sample data, e.g. by creating new event instances.</p>
</div>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_flushcommands">Studio::System::flushCommands</a>, <a href="studio-guide.html#sample-data-loading">Sample Data Loading</a></p>
<h2 api="function" id="studio_system_getadvancedsettings"><a href="#studio_system_getadvancedsettings">Studio::System::getAdvancedSettings</a></h2>
<p>Retrieves advanced settings.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getAdvancedSettings</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_ADVANCEDSETTINGS</span> <span class="o">*</span><span class="n">settings</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetAdvancedSettings</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_ADVANCEDSETTINGS</span> <span class="o">*</span><span class="n">settings</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getAdvancedSettings</span><span class="p">(</span>
<span class="k">out</span> <span class="n">ADVANCEDSETTINGS</span> <span class="n">settings</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getAdvancedSettings</span><span class="p">(</span>
<span class="nx">settings</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>settings <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Studio System advanced settings. (<a class="apilink" href="studio-api-system.html#fmod_studio_advancedsettings">FMOD_STUDIO_ADVANCEDSETTINGS</a>)</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_setadvancedsettings">Studio::System::setAdvancedSettings</a></p>
<h2 api="function" id="studio_system_getbank"><a href="#studio_system_getbank">Studio::System::getBank</a></h2>
<p>Retrieves a loaded <a href="glossary.html#bank-file">bank</a> with the specified file path.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getBank</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">Bank</span> <span class="o">**</span><span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetBank</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_BANK</span> <span class="o">**</span><span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getBank</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">path</span><span class="p">,</span>
<span class="k">out</span> <span class="n">Bank</span> <span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getBank</span><span class="p">(</span>
<span class="nx">path</span><span class="p">,</span>
<span class="nx">bank</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>path</dt>
<dd>The bank <a href="glossary.html#studio-guids-and-paths">path</a> or the <a href="glossary.html#studio-guids-and-paths">ID string</a> that identifies the bank. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>bank <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Bank object. (<a class="apilink" href="studio-api-bank.html">Studio::Bank</a>)</dd>
</dl>
<p><code>path</code> may be a path, such as <code>bank:/Weapons</code> or an ID string such as <code>{793cddb6-7fa1-4e06-b805-4c74c0fd625b}</code>.</p>
<p>Note that path lookups will only succeed if the <a href="glossary.html#studio-strings-bank">strings bank</a> has been loaded.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getbankbyid">Studio::System::getBankByID</a></p>
<h2 api="function" id="studio_system_getbankbyid"><a href="#studio_system_getbankbyid">Studio::System::getBankByID</a></h2>
<p>Retrieves a loaded <a href="glossary.html#bank-file">bank</a> with the specified ID.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getBankByID</span><span class="p">(</span>
<span class="k">const</span> <span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">Bank</span> <span class="o">**</span><span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetBankByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_BANK</span> <span class="o">**</span><span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getBankByID</span><span class="p">(</span>
<span class="n">Guid</span> <span class="n">id</span><span class="p">,</span>
<span class="k">out</span> <span class="n">Bank</span> <span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getBankByID</span><span class="p">(</span>
<span class="nx">id</span><span class="p">,</span>
<span class="nx">bank</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>id</dt>
<dd>Bank <a href="glossary.html#guid">GUID</a>. (<a class="apilink" href="core-api-common.html#fmod_guid">FMOD_GUID</a>)</dd>
<dt>bank <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Bank object. (<a class="apilink" href="studio-api-bank.html">Studio::Bank</a>)</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-common.html#studio_parseid">Studio::parseID</a>, <a class="apilink" href="studio-api-system.html#studio_system_lookupid">Studio::System::lookupID</a>, <a class="apilink" href="studio-api-system.html#studio_system_getbank">Studio::System::getBank</a></p>
<h2 api="function" id="studio_system_getbankcount"><a href="#studio_system_getbankcount">Studio::System::getBankCount</a></h2>
<p>Retrieves the number of currently-loaded <a href="glossary.html#bank-file">banks</a>.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getBankCount</span><span class="p">(</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">count</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetBankCount</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">count</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getBankCount</span><span class="p">(</span>
<span class="k">out</span> <span class="kt">int</span> <span class="n">count</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getBankCount</span><span class="p">(</span>
<span class="nx">count</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>count <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Number of loaded banks.</dd>
</dl>
<p>May be used in conjunction with <a class="apilink" href="studio-api-system.html#studio_system_getbanklist">Studio::System::getBankList</a> to enumerate the loaded banks.</p>
<h2 api="function" id="studio_system_getbanklist"><a href="#studio_system_getbanklist">Studio::System::getBankList</a></h2>
<p>Retrieves a list of the currently-loaded <a href="glossary.html#bank-file">banks</a>.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getBankList</span><span class="p">(</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">Bank</span> <span class="o">**</span><span class="n">array</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">capacity</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">count</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetBankList</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_BANK</span> <span class="o">**</span><span class="n">array</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">capacity</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">count</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getBankList</span><span class="p">(</span>
<span class="k">out</span> <span class="n">Bank</span><span class="p">[]</span> <span class="n">array</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getBankList</span><span class="p">(</span>
<span class="nx">array</span><span class="p">,</span>
<span class="nx">capacity</span><span class="p">,</span>
<span class="nx">count</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>array <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Array to receive the list. (<a class="apilink" href="studio-api-bank.html">Studio::Bank</a>)</dd>
<dt>capacity</dt>
<dd>Capacity of <code>array</code>.</dd>
<dt>count <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Number of banks written to <code>array</code>.</dd>
</dl>
<p>May be used in conjunction with <a class="apilink" href="studio-api-system.html#studio_system_getbankcount">Studio::System::getBankCount</a> to enumerate the loaded banks.</p>
<h2 api="function" id="studio_system_getbufferusage"><a href="#studio_system_getbufferusage">Studio::System::getBufferUsage</a></h2>
<p>Retrieves buffer usage information.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getBufferUsage</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_BUFFER_USAGE</span> <span class="o">*</span><span class="n">usage</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetBufferUsage</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_BUFFER_USAGE</span> <span class="o">*</span><span class="n">usage</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getBufferUsage</span><span class="p">(</span>
<span class="k">out</span> <span class="n">BUFFER_USAGE</span> <span class="n">usage</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getBufferUsage</span><span class="p">(</span>
<span class="nx">usage</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>usage <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Buffer usage information. (<a class="apilink" href="studio-api-system.html#fmod_studio_buffer_usage">FMOD_STUDIO_BUFFER_USAGE</a>)</dd>
</dl>
<p>Stall count and time values are cumulative. They can be reset by calling <a class="apilink" href="studio-api-system.html#studio_system_resetbufferusage">Studio::System::resetBufferUsage</a>.</p>
<p>Stalls due to the studio command queue overflowing can be avoided by setting a larger command queue size with <a class="apilink" href="studio-api-system.html#studio_system_setadvancedsettings">Studio::System::setAdvancedSettings</a>.</p>
<h2 api="function" id="studio_system_getbus"><a href="#studio_system_getbus">Studio::System::getBus</a></h2>
<p>Retrieves a loaded bus.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getBus</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">Bus</span> <span class="o">**</span><span class="n">bus</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetBus</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_BUS</span> <span class="o">**</span><span class="n">bus</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getBus</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">path</span><span class="p">,</span>
<span class="k">out</span> <span class="n">Bus</span> <span class="n">bus</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getBus</span><span class="p">(</span>
<span class="nx">path</span><span class="p">,</span>
<span class="nx">bus</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>path</dt>
<dd>The bus <a href="glossary.html#studio-guids-and-paths">path</a> or the <a href="glossary.html#studio-guids-and-paths">ID string</a> that identifies the bus. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>bus <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Bus object. (<a class="apilink" href="studio-api-bus.html">Studio::Bus</a>)</dd>
</dl>
<p>This function allows you to retrieve a handle for any bus in the global mixer.</p>
<p><code>path</code> may be a path, such as <code>bus:/SFX/Ambience</code>, or an ID string, such as <code>{d9982c58-a056-4e6c-b8e3-883854b4bffb}</code>.</p>
<p>Path lookups only succeed if the <a href="glossary.html#studio-strings-bank">strings bank</a> is loaded.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getbusbyid">Studio::System::getBusByID</a></p>
<h2 api="function" id="studio_system_getbusbyid"><a href="#studio_system_getbusbyid">Studio::System::getBusByID</a></h2>
<p>Retrieves a loaded bus.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getBusByID</span><span class="p">(</span>
<span class="k">const</span> <span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">Bus</span> <span class="o">**</span><span class="n">bus</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetBusByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_BUS</span> <span class="o">**</span><span class="n">bus</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getBusByID</span><span class="p">(</span>
<span class="n">Guid</span> <span class="n">id</span><span class="p">,</span>
<span class="k">out</span> <span class="n">Bus</span> <span class="n">bus</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getBusByID</span><span class="p">(</span>
<span class="nx">id</span><span class="p">,</span>
<span class="nx">bus</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>id</dt>
<dd>Bus <a href="glossary.html#guid">GUID</a>. (<a class="apilink" href="core-api-common.html#fmod_guid">FMOD_GUID</a>)</dd>
<dt>bus <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Bus object. (<a class="apilink" href="studio-api-bus.html">Studio::Bus</a>)</dd>
</dl>
<p>This function allows you to retrieve a handle for any bus in the global mixer.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getbus">Studio::System::getBus</a></p>
<h2 api="function" id="studio_system_getcoresystem"><a href="#studio_system_getcoresystem">Studio::System::getCoreSystem</a></h2>
<p>Retrieves the Core System.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getCoreSystem</span><span class="p">(</span>
<span class="n">System</span> <span class="o">**</span><span class="n">system</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetCoreSystem</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_SYSTEM</span> <span class="o">**</span><span class="n">system</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getCoreSystem</span><span class="p">(</span>
<span class="k">out</span> <span class="n">FMOD</span><span class="p">.</span><span class="n">System</span> <span class="n">system</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getCoreSystem</span><span class="p">(</span>
<span class="nx">system</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>system <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Core System object. (<a class="apilink" href="core-api-system.html">System</a>)</dd>
</dl>
<p>The Core System object can be retrieved before initializing the Studio System object to call additional core configuration functions.</p>
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_setfilesystem">System::setFileSystem</a>, <a class="apilink" href="core-api-system.html#system_setdspbuffersize">System::setDSPBufferSize</a>, <a class="apilink" href="core-api-system.html#system_setsoftwarechannels">System::setSoftwareChannels</a>, <a class="apilink" href="core-api-system.html#system_setsoftwareformat">System::setSoftwareFormat</a>, <a class="apilink" href="core-api-system.html#system_setadvancedsettings">System::setAdvancedSettings</a>, <a class="apilink" href="core-api-system.html#system_setcallback">System::setCallback</a></p>
<h2 api="function" id="studio_system_getcpuusage"><a href="#studio_system_getcpuusage">Studio::System::getCPUUsage</a></h2>
<p>Retrieves the amount of CPU used for different parts of the FMOD Engine.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getCPUUsage</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_CPU_USAGE</span> <span class="o">*</span><span class="n">usage</span><span class="p">,</span>
<span class="n">FMOD_CPU_USAGE</span> <span class="o">*</span><span class="n">usage_core</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetCPUUsage</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_CPU_USAGE</span> <span class="o">*</span><span class="n">usage</span><span class="p">,</span>
<span class="n">FMOD_CPU_USAGE</span> <span class="o">*</span><span class="n">usage_core</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getCPUUsage</span><span class="p">(</span>
<span class="k">out</span> <span class="n">CPU_USAGE</span> <span class="n">usage</span><span class="p">,</span>
<span class="k">out</span> <span class="n">FMOD</span><span class="p">.</span><span class="n">CPU_USAGE</span> <span class="n">usage_core</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getCPUUsage</span><span class="p">(</span>
<span class="nx">usage</span><span class="p">,</span>
<span class="nx">usage_core</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>usage <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Studio API performance information. (<a class="apilink" href="studio-api-system.html#fmod_studio_cpu_usage">FMOD_STUDIO_CPU_USAGE</a>)</dd>
<dt>usage_core <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Core API performance information. (<a class="apilink" href="core-api-common.html#fmod_cpu_usage">FMOD_CPU_USAGE</a>)</dd>
</dl>
<p>For readability, the percentage values are smoothed to provide a more stable output.</p>
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_getcpuusage">System::getCPUUsage</a></p>
<h2 api="function" id="studio_system_getevent"><a href="#studio_system_getevent">Studio::System::getEvent</a></h2>
<p>Retrieves an EventDescription of an event or snapshot with the specified file path.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getEvent</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">EventDescription</span> <span class="o">**</span><span class="n">event</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetEvent</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_EVENTDESCRIPTION</span> <span class="o">**</span><span class="n">event</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getEvent</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">path</span><span class="p">,</span>
<span class="k">out</span> <span class="n">EventDescription</span> <span class="n">_event</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getEvent</span><span class="p">(</span>
<span class="nx">path</span><span class="p">,</span>
<span class="nx">event</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>path</dt>
<dd>The <a href="glossary.html#studio-guids-and-paths">path</a> or the <a href="glossary.html#studio-guids-and-paths">ID string</a> that identifies the event or snapshot. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>event <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>EventDescription object. (<a class="apilink" href="studio-api-eventdescription.html">Studio::EventDescription</a>)</dd>
</dl>
<p>This function allows you to retrieve a handle to any loaded event description.</p>
<p><code>path</code> may be a path, such as <code>event:/UI/Cancel</code> or <code>snapshot:/IngamePause</code>, or an ID string, such as <code>{2a3e48e6-94fc-4363-9468-33d2dd4d7b00}</code>.</p>
<p>Path lookups only succeed if the <a href="glossary.html#studio-strings-bank">strings bank</a> is loaded.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-common.html#studio_parseid">Studio::parseID</a>, <a class="apilink" href="studio-api-system.html#studio_system_lookupid">Studio::System::lookupID</a>, <a class="apilink" href="studio-api-system.html#studio_system_geteventbyid">Studio::System::getEventByID</a>, <a class="apilink" href="studio-api-eventdescription.html#studio_eventdescription_issnapshot">Studio::EventDescription::isSnapshot</a>, <a class="apilink" href="studio-api-eventdescription.html#studio_eventdescription_createinstance">Studio::EventDescription::createInstance</a></p>
<h2 api="function" id="studio_system_geteventbyid"><a href="#studio_system_geteventbyid">Studio::System::getEventByID</a></h2>
<p>Retrieves an EventDescription.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getEventByID</span><span class="p">(</span>
<span class="k">const</span> <span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">EventDescription</span> <span class="o">**</span><span class="n">event</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetEventByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_EVENTDESCRIPTION</span> <span class="o">**</span><span class="n">event</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getEventByID</span><span class="p">(</span>
<span class="n">Guid</span> <span class="n">id</span><span class="p">,</span>
<span class="k">out</span> <span class="n">EventDescription</span> <span class="n">_event</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getEventByID</span><span class="p">(</span>
<span class="nx">id</span><span class="p">,</span>
<span class="nx">event</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>id</dt>
<dd>The event or snapshot's <a href="glossary.html#guid">GUID</a>. (<a class="apilink" href="core-api-common.html#fmod_guid">FMOD_GUID</a>)</dd>
<dt>event <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>EventDescription object. (<a class="apilink" href="studio-api-eventdescription.html">Studio::EventDescription</a>)</dd>
</dl>
<p>This function allows you to retrieve a handle to any loaded event description.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getevent">Studio::System::getEvent</a></p>
<h2 api="function" id="studio_system_getlistenerattributes"><a href="#studio_system_getlistenerattributes">Studio::System::getListenerAttributes</a></h2>
<p>Retrieves listener 3D attributes.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getListenerAttributes</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="n">FMOD_3D_ATTRIBUTES</span> <span class="o">*</span><span class="n">attributes</span><span class="p">,</span>
<span class="n">FMOD_VECTOR</span> <span class="o">*</span><span class="n">attenuationposition</span> <span class="o">=</span> <span class="k">nullptr</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetListenerAttributes</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="n">FMOD_3D_ATTRIBUTES</span> <span class="o">*</span><span class="n">attributes</span><span class="p">,</span>
<span class="n">FMOD_VECTOR</span> <span class="o">*</span><span class="n">attenuationposition</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getListenerAttributes</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="k">out</span> <span class="n">_3D_ATTRIBUTES</span> <span class="n">attributes</span>
<span class="p">);</span>
<span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getListenerAttributes</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="k">out</span> <span class="n">_3D_ATTRIBUTES</span> <span class="n">attributes</span><span class="p">,</span>
<span class="k">out</span> <span class="n">VECTOR</span> <span class="n">attenuationposition</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getListenerAttributes</span><span class="p">(</span>
<span class="nx">listener</span><span class="p">,</span>
<span class="nx">attributes</span><span class="p">,</span>
<span class="nx">attenuationposition</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>listener</dt>
<dd>Index of listener to get 3D attributes for. Listeners are indexed from 0, to <a class="apilink" href="core-api-common.html#fmod_max_listeners">FMOD_MAX_LISTENERS</a> - 1, in a multi-listener environment.</dd>
<dt>attributes <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>3D attributes. (<a class="apilink" href="core-api-common.html#fmod_3d_attributes">FMOD_3D_ATTRIBUTES</a>)</dd>
<dt>attenuationposition <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Position used for calculating attenuation. (<a class="apilink" href="core-api-common.html#fmod_vector">FMOD_VECTOR</a>)</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-eventinstance.html#studio_eventinstance_get3dattributes">Studio::EventInstance::get3DAttributes</a>, <a class="apilink" href="studio-api-system.html#studio_system_getnumlisteners">Studio::System::getNumListeners</a>, <a class="apilink" href="studio-api-system.html#studio_system_setlistenerattributes">Studio::System::setListenerAttributes</a></p>
<h2 api="function" id="studio_system_getlistenerweight"><a href="#studio_system_getlistenerweight">Studio::System::getListenerWeight</a></h2>
<p>Retrieves listener weighting.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getListenerWeight</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">weight</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetListenerWeight</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">weight</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getListenerWeight</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="k">out</span> <span class="kt">float</span> <span class="n">weight</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getListenerWeight</span><span class="p">(</span>
<span class="nx">listener</span><span class="p">,</span>
<span class="nx">weight</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>listener</dt>
<dd>Listener index.</dd>
<dt>weight <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Weighting value.</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_setlistenerweight">Studio::System::setListenerWeight</a>, <a class="apilink" href="studio-api-system.html#studio_system_setnumlisteners">Studio::System::setNumListeners</a>, <a class="apilink" href="studio-api-system.html#studio_system_getlistenerattributes">Studio::System::getListenerAttributes</a></p>
<h2 api="function" id="studio_system_getmemoryusage"><a href="#studio_system_getmemoryusage">Studio::System::getMemoryUsage</a></h2>
<p>Retrieves memory usage statistics.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getMemoryUsage</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_MEMORY_USAGE</span> <span class="o">*</span><span class="n">memoryusage</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetMemoryUsage</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_MEMORY_USAGE</span> <span class="o">*</span><span class="n">memoryusage</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getMemoryUsage</span><span class="p">(</span>
<span class="k">out</span> <span class="n">MEMORY_USAGE</span> <span class="n">memoryusage</span>
<span class="p">);</span>
</pre></div>
<div class="admonition language-javascript">
<p>Not supported for JavaScript.</p>
</div>
<dl>
<dt>memoryusage <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Memory usage. (<a class="apilink" href="studio-api-common.html#fmod_studio_memory_usage">FMOD_STUDIO_MEMORY_USAGE</a>)</dd>
</dl>
<p>The memory usage <code>sampledata</code> value for the system is the total size of non-streaming sample data currently loaded.</p>
<p>Memory usage statistics are only available in logging builds, in release builds <code>memoryusage</code> will contain zero for all values after calling this function.</p>
<h2 api="function" id="studio_system_getnumlisteners"><a href="#studio_system_getnumlisteners">Studio::System::getNumListeners</a></h2>
<p>Retrieves the number of listeners.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getNumListeners</span><span class="p">(</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">numlisteners</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetNumListeners</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">numlisteners</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getNumListeners</span><span class="p">(</span>
<span class="k">out</span> <span class="kt">int</span> <span class="n">numlisteners</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getNumListeners</span><span class="p">(</span>
<span class="nx">numlisteners</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>numlisteners <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Number of listeners.</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_setnumlisteners">Studio::System::setNumListeners</a></p>
<h2 api="function" id="studio_system_getparameterbyid"><a href="#studio_system_getparameterbyid">Studio::System::getParameterByID</a></h2>
<p>Retrieves a global parameter value by unique identifier.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getParameterByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">value</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">finalvalue</span> <span class="o">=</span> <span class="k">nullptr</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetParameterByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">value</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">finalvalue</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getParameterByID</span><span class="p">(</span>
<span class="n">PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="k">out</span> <span class="kt">float</span> <span class="k">value</span>
<span class="p">);</span>
<span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getParameterByID</span><span class="p">(</span>
<span class="n">PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="k">out</span> <span class="kt">float</span> <span class="k">value</span><span class="p">,</span>
<span class="k">out</span> <span class="kt">float</span> <span class="n">finalvalue</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getParameterByID</span><span class="p">(</span>
<span class="nx">id</span><span class="p">,</span>
<span class="nx">value</span><span class="p">,</span>
<span class="nx">finalvalue</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>id</dt>
<dd>Parameter identifier. (<a class="apilink" href="studio-api-common.html#fmod_studio_parameter_id">FMOD_STUDIO_PARAMETER_ID</a>)</dd>
<dt>value <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Parameter value as set from the public API.</dd>
<dt>finalvalue <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Final combined value.</dd>
</dl>
<p><code>finalvalue</code> is the final value of the parameter after applying adjustments due to automation, <a href="https://fmod.com/docs/2.03/studio/glossary.html#modulator">modulation</a>, seek speed, and parameter velocity to <code>value</code>. This is calculated asynchronously when the Studio system updates.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_setparameterbyid">Studio::System::setParameterByID</a></p>
<h2 api="function" id="studio_system_getparameterbyname"><a href="#studio_system_getparameterbyname">Studio::System::getParameterByName</a></h2>
<p>Retrieves a global parameter value by name, including the path if needed.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getParameterByName</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">value</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">finalvalue</span> <span class="o">=</span> <span class="k">nullptr</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetParameterByName</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">value</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">finalvalue</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getParameterByName</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">name</span><span class="p">,</span>
<span class="k">out</span> <span class="kt">float</span> <span class="k">value</span>
<span class="p">);</span>
<span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getParameterByName</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">name</span><span class="p">,</span>
<span class="k">out</span> <span class="kt">float</span> <span class="k">value</span><span class="p">,</span>
<span class="k">out</span> <span class="kt">float</span> <span class="n">finalvalue</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getParameterByName</span><span class="p">(</span>
<span class="nx">name</span><span class="p">,</span>
<span class="nx">value</span><span class="p">,</span>
<span class="nx">finalvalue</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>name</dt>
<dd>Parameter name, including the path if needed (case-insensitive). (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>value <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Parameter value as set from the public API.</dd>
<dt>finalvalue <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Final combined value.</dd>
</dl>
<p><code>finalvalue</code> is the final value of the parameter after applying adjustments due to automation, <a href="https://fmod.com/docs/2.03/studio/glossary.html#modulator">modulation</a>, seek speed, and parameter velocity to <code>value</code>. This is calculated asynchronously when the Studio system updates.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_setparameterbyname">Studio::System::setParameterByName</a></p>
<h2 api="function" id="studio_system_getparameterdescriptionbyid"><a href="#studio_system_getparameterdescriptionbyid">Studio::System::getParameterDescriptionByID</a></h2>
<p>Retrieves a global parameter by ID.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getParameterDescriptionByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_PARAMETER_DESCRIPTION</span> <span class="o">*</span><span class="n">parameter</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetParameterDescriptionByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_PARAMETER_DESCRIPTION</span> <span class="o">*</span><span class="n">parameter</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getParameterDescriptionByID</span><span class="p">(</span>
<span class="n">PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="k">out</span> <span class="n">PARAMETER_DESCRIPTION</span> <span class="n">parameter</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getParameterDescriptionByID</span><span class="p">(</span>
<span class="nx">id</span><span class="p">,</span>
<span class="nx">parameter</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>id</dt>
<dd>Parameter ID. (<a class="apilink" href="studio-api-common.html#fmod_studio_parameter_id">FMOD_STUDIO_PARAMETER_ID</a>)</dd>
<dt>parameter <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Parameter description. (<a class="apilink" href="studio-api-common.html#fmod_studio_parameter_description">FMOD_STUDIO_PARAMETER_DESCRIPTION</a>)</dd>
</dl>
<h2 api="function" id="studio_system_getparameterdescriptionbyname"><a href="#studio_system_getparameterdescriptionbyname">Studio::System::getParameterDescriptionByName</a></h2>
<p>Retrieves a global parameter by name, including the path if needed.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getParameterDescriptionByName</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_PARAMETER_DESCRIPTION</span> <span class="o">*</span><span class="n">parameter</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetParameterDescriptionByName</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_PARAMETER_DESCRIPTION</span> <span class="o">*</span><span class="n">parameter</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getParameterDescriptionByName</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">name</span><span class="p">,</span>
<span class="k">out</span> <span class="n">PARAMETER_DESCRIPTION</span> <span class="n">parameter</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getParameterDescriptionByName</span><span class="p">(</span>
<span class="nx">name</span><span class="p">,</span>
<span class="nx">parameter</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>name</dt>
<dd>Parameter name, including the path if needed (case-insensitive). (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>parameter <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Parameter description. (<a class="apilink" href="studio-api-common.html#fmod_studio_parameter_description">FMOD_STUDIO_PARAMETER_DESCRIPTION</a>)</dd>
</dl>
<p><code>name</code> can be the short name (such as 'Wind') or the full path (such as 'parameter:/Ambience/Wind'). Path lookups only succeed if the <a href="glossary.html#studio-strings-bank">strings bank</a> is loaded.</p>
<h2 api="function" id="studio_system_getparameterdescriptioncount"><a href="#studio_system_getparameterdescriptioncount">Studio::System::getParameterDescriptionCount</a></h2>
<p>Retrieves the number of global parameters.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getParameterDescriptionCount</span><span class="p">(</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">count</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetParameterDescriptionCount</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">count</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getParameterDescriptionCount</span><span class="p">(</span>
<span class="k">out</span> <span class="kt">int</span> <span class="n">count</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getParameterDescriptionCount</span><span class="p">(</span>
<span class="nx">count</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>count <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Global parameter count.</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getparameterdescriptionlist">Studio::System::getParameterDescriptionList</a></p>
<h2 api="function" id="studio_system_getparameterdescriptionlist"><a href="#studio_system_getparameterdescriptionlist">Studio::System::getParameterDescriptionList</a></h2>
<p>Retrieves a list of global parameters.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getParameterDescriptionList</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_PARAMETER_DESCRIPTION</span> <span class="o">*</span><span class="n">array</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">capacity</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">count</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetParameterDescriptionList</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_PARAMETER_DESCRIPTION</span> <span class="o">*</span><span class="n">array</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">capacity</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">count</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getParameterDescriptionList</span><span class="p">(</span>
<span class="k">out</span> <span class="n">PARAMETER_DESCRIPTION</span><span class="p">[]</span> <span class="n">array</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getParameterDescriptionList</span><span class="p">(</span>
<span class="nx">array</span><span class="p">,</span>
<span class="nx">capacity</span><span class="p">,</span>
<span class="nx">count</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>array <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Global parameters. (<a class="apilink" href="studio-api-common.html#fmod_studio_parameter_description">FMOD_STUDIO_PARAMETER_DESCRIPTION</a>)</dd>
<dt>capacity</dt>
<dd>Capacity of <code>array</code>.</dd>
<dt>count <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Number of parameters written to array.</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getparameterdescriptioncount">Studio::System::getParameterDescriptionCount</a></p>
<h2 api="function" id="studio_system_getparameterlabelbyid"><a href="#studio_system_getparameterlabelbyid">Studio::System::getParameterLabelByID</a></h2>
<p>Retrieves a global parameter label by ID.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getParameterLabelByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">labelindex</span><span class="p">,</span>
<span class="kt">char</span> <span class="o">*</span><span class="n">label</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">size</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">retrieved</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetParameterLabelByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">labelindex</span><span class="p">,</span>
<span class="kt">char</span> <span class="o">*</span><span class="n">label</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">size</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">retrieved</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getParameterLabelByID</span><span class="p">(</span>
<span class="n">PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">labelindex</span><span class="p">,</span>
<span class="k">out</span> <span class="kt">string</span> <span class="n">label</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getParameterLabelByID</span><span class="p">(</span>
<span class="nx">id</span><span class="p">,</span>
<span class="nx">labelindex</span><span class="p">,</span>
<span class="nx">label</span><span class="p">,</span>
<span class="nx">size</span><span class="p">,</span>
<span class="nx">retrieved</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>id</dt>
<dd>Parameter ID. (<a class="apilink" href="studio-api-common.html#fmod_studio_parameter_id">FMOD_STUDIO_PARAMETER_ID</a>)</dd>
<dt>labelindex</dt>
<dd>
<p>Label index to retrieve.</p>
<ul>
<li><span class="label">Range:</span> [0, <a class="apilink" href="studio-api-common.html#fmod_studio_parameter_description_maximum">FMOD_STUDIO_PARAMETER_DESCRIPTION::maximum</a>].</li>
</ul>
</dd>
<dt>label <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Buffer to receive the label. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>size</dt>
<dd>Size of the label buffer in bytes. Must be 0 if <code>label</code> is null.</dd>
<dt>retrieved <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Length of the label in bytes, including the terminating null character.</dd>
</dl>
<p>If the label is longer than <code>size</code> then it is truncated and this function returns <a class="apilink" href="core-api-common.html#fmod_err_truncated">FMOD_ERR_TRUNCATED</a>.</p>
<p>The <code>retrieved</code> parameter can be used to get the buffer size required to hold the full label.</p>
<h2 api="function" id="studio_system_getparameterlabelbyname"><a href="#studio_system_getparameterlabelbyname">Studio::System::getParameterLabelByName</a></h2>
<p>Retrieves a global parameter label by name, including the path if needed.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getParameterLabelByName</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">labelindex</span><span class="p">,</span>
<span class="kt">char</span> <span class="o">*</span><span class="n">label</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">size</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">retrieved</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetParameterLabelByName</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">labelindex</span><span class="p">,</span>
<span class="kt">char</span> <span class="o">*</span><span class="n">label</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">size</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">retrieved</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getParameterLabelByName</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">name</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">labelindex</span><span class="p">,</span>
<span class="k">out</span> <span class="kt">string</span> <span class="n">label</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getParameterLabelByName</span><span class="p">(</span>
<span class="nx">name</span><span class="p">,</span>
<span class="nx">labelindex</span><span class="p">,</span>
<span class="nx">label</span><span class="p">,</span>
<span class="nx">size</span><span class="p">,</span>
<span class="nx">retrieved</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>name</dt>
<dd>Parameter name, including the path if needed (case-insensitive). (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>labelindex</dt>
<dd>
<p>Label index to retrieve.</p>
<ul>
<li><span class="label">Range:</span> [0, <a class="apilink" href="studio-api-common.html#fmod_studio_parameter_description_maximum">FMOD_STUDIO_PARAMETER_DESCRIPTION::maximum</a>].</li>
</ul>
</dd>
<dt>label <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Buffer to receive the label. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>size</dt>
<dd>Size of the label buffer in bytes. Must be 0 if <code>label</code> is null.</dd>
<dt>retrieved <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Length of the label in bytes, including the terminating null character.</dd>
</dl>
<p><code>name</code> can be the short name (such as 'Wind') or the full path (such as 'parameter:/Ambience/Wind'). Path lookups only succeed if the strings bank is loaded.</p>
<p>If the label is longer than <code>size</code> then it is truncated and this function returns <a class="apilink" href="core-api-common.html#fmod_err_truncated">FMOD_ERR_TRUNCATED</a>.</p>
<p>The <code>retrieved</code> parameter can be used to get the buffer size required to hold the full label.</p>
<h2 api="function" id="studio_system_getsoundinfo"><a href="#studio_system_getsoundinfo">Studio::System::getSoundInfo</a></h2>
<p>Retrieves information for loading a sound from the audio table.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getSoundInfo</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">key</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_SOUND_INFO</span> <span class="o">*</span><span class="n">info</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetSoundInfo</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">key</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_SOUND_INFO</span> <span class="o">*</span><span class="n">info</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getSoundInfo</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">key</span><span class="p">,</span>
<span class="k">out</span> <span class="n">SOUND_INFO</span> <span class="n">info</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getSoundInfo</span><span class="p">(</span>
<span class="nx">key</span><span class="p">,</span>
<span class="nx">info</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>key</dt>
<dd>The key that identifies the sound. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>info <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Sound loading information. (<a class="apilink" href="studio-api-system.html#fmod_studio_sound_info">FMOD_STUDIO_SOUND_INFO</a>)</dd>
</dl>
<p>The <a class="apilink" href="studio-api-system.html#fmod_studio_sound_info">FMOD_STUDIO_SOUND_INFO</a> structure contains information to be passed to <a class="apilink" href="core-api-system.html#system_createsound">System::createSound</a> (which will create a parent sound), along with a subsound index to be passed to <a class="apilink" href="core-api-sound.html#sound_getsubsound">Sound::getSubSound</a> once the parent sound is loaded.</p>
<p>The user is expected to call <a class="apilink" href="core-api-system.html#system_createsound">System::createSound</a> with the given information. It is up to the user to combine in any desired loading flags, such as <a class="apilink" href="core-api-common.html#fmod_createstream">FMOD_CREATESTREAM</a>, <a class="apilink" href="core-api-common.html#fmod_createcompressedsample">FMOD_CREATECOMPRESSEDSAMPLE</a> or <a class="apilink" href="core-api-common.html#fmod_nonblocking">FMOD_NONBLOCKING</a> with the flags in <a class="apilink" href="studio-api-system.html#fmod_studio_sound_info_mode">FMOD_STUDIO_SOUND_INFO::mode</a>.</p>
<p>If the <a href="glossary.html#bank-file">banks</a> were loaded by <a class="apilink" href="studio-api-system.html#studio_system_loadbankmemory">Studio::System::loadBankMemory</a>, the mode is returned as <a class="apilink" href="core-api-common.html#fmod_openmemory_point">FMOD_OPENMEMORY_POINT</a>. This won't work with the default <a class="apilink" href="core-api-common.html#fmod_createsample">FMOD_CREATESAMPLE</a> mode. For in-memory banks, you should add in the <a class="apilink" href="core-api-common.html#fmod_createcompressedsample">FMOD_CREATECOMPRESSEDSAMPLE</a> or <a class="apilink" href="core-api-common.html#fmod_createstream">FMOD_CREATESTREAM</a> flag, or remove <a class="apilink" href="core-api-common.html#fmod_openmemory_point">FMOD_OPENMEMORY_POINT</a> and add <a class="apilink" href="core-api-common.html#fmod_openmemory">FMOD_OPENMEMORY</a> to decompress the sample into a new allocation.</p>
<h2 api="function" id="studio_system_getuserdata"><a href="#studio_system_getuserdata">Studio::System::getUserData</a></h2>
<p>Retrieves the user data.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getUserData</span><span class="p">(</span>
<span class="kt">void</span> <span class="o">**</span><span class="n">userdata</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetUserData</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="kt">void</span> <span class="o">**</span><span class="n">userdata</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getUserData</span><span class="p">(</span>
<span class="k">out</span> <span class="n">IntPtr</span> <span class="n">userdata</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getUserData</span><span class="p">(</span>
<span class="nx">userdata</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>userdata <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>User data set by calling <a class="apilink" href="studio-api-system.html#studio_system_setuserdata">Studio::System::setUserData</a>.</dd>
</dl>
<p>This function allows arbitrary user data to be retrieved from this object. See the <a href="glossary.html#user-data">User Data</a> section of the glossary for an example of how to get and set user data.</p>
<h2 api="function" id="studio_system_getvca"><a href="#studio_system_getvca">Studio::System::getVCA</a></h2>
<p>Retrieves a loaded VCA.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getVCA</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">VCA</span> <span class="o">**</span><span class="n">vca</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetVCA</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_VCA</span> <span class="o">**</span><span class="n">vca</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getVCA</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">path</span><span class="p">,</span>
<span class="k">out</span> <span class="n">VCA</span> <span class="n">vca</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getVCA</span><span class="p">(</span>
<span class="nx">path</span><span class="p">,</span>
<span class="nx">vca</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>path</dt>
<dd>The <a href="glossary.html#studio-guids-and-paths">path</a> or the <a href="glossary.html#studio-guids-and-paths">ID string</a> that identifies the VCA. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>vca <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>VCA object. (<a class="apilink" href="studio-api-vca.html">Studio::VCA</a>)</dd>
</dl>
<p>This function allows you to retrieve a handle for any VCA in the global mixer.</p>
<p><code>path</code> may be a path, such as <code>vca:/MyVCA</code>, or an ID string, such as <code>{d9982c58-a056-4e6c-b8e3-883854b4bffb}</code>.</p>
<p>Path lookups only succeed if the <a href="glossary.html#studio-strings-bank">strings bank</a> is loaded.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getvcabyid">Studio::System::getVCAByID</a></p>
<h2 api="function" id="studio_system_getvcabyid"><a href="#studio_system_getvcabyid">Studio::System::getVCAByID</a></h2>
<p>Retrieves a loaded VCA.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">getVCAByID</span><span class="p">(</span>
<span class="k">const</span> <span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">VCA</span> <span class="o">**</span><span class="n">vca</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_GetVCAByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_VCA</span> <span class="o">**</span><span class="n">vca</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">getVCAByID</span><span class="p">(</span>
<span class="n">Guid</span> <span class="n">id</span><span class="p">,</span>
<span class="k">out</span> <span class="n">VCA</span> <span class="n">vca</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">getVCAByID</span><span class="p">(</span>
<span class="nx">id</span><span class="p">,</span>
<span class="nx">vca</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>id</dt>
<dd>VCA <a href="glossary.html#guid">GUID</a>. (<a class="apilink" href="core-api-common.html#fmod_guid">FMOD_GUID</a>)</dd>
<dt>vca <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>VCA object. (<a class="apilink" href="studio-api-vca.html">Studio::VCA</a>)</dd>
</dl>
<p>This function allows you to retrieve a handle for any VCA in the global mixer.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getvca">Studio::System::getVCA</a></p>
<h2 api="function" id="studio_system_initialize"><a href="#studio_system_initialize">Studio::System::initialize</a></h2>
<p>Initializes the Studio System.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">initialize</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">maxchannels</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_INITFLAGS</span> <span class="n">studioflags</span><span class="p">,</span>
<span class="n">FMOD_INITFLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="kt">void</span> <span class="o">*</span><span class="n">extradriverdata</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_Initialize</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">maxchannels</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_INITFLAGS</span> <span class="n">studioflags</span><span class="p">,</span>
<span class="n">FMOD_INITFLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="kt">void</span> <span class="o">*</span><span class="n">extradriverdata</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">initialize</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">maxchannels</span><span class="p">,</span>
<span class="n">INITFLAGS</span> <span class="n">studioflags</span><span class="p">,</span>
<span class="n">FMOD</span><span class="p">.</span><span class="n">INITFLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="n">IntPtr</span> <span class="n">extradriverdata</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">initialize</span><span class="p">(</span>
<span class="nx">maxchannels</span><span class="p">,</span>
<span class="nx">studioflags</span><span class="p">,</span>
<span class="nx">flags</span><span class="p">,</span>
<span class="nx">extradriverdata</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>maxchannels</dt>
<dd>The maximum number of <a class="apilink" href="core-api-channel.html">Channel</a>s, including both virtual and real, to be used in FMOD.</dd>
<dt>studioflags</dt>
<dd>Studio system initialization flags. (<a class="apilink" href="studio-api-system.html#fmod_studio_initflags">FMOD_STUDIO_INITFLAGS</a>)</dd>
<dt>flags</dt>
<dd>Core system initialization flags. (<a class="apilink" href="core-api-system.html#fmod_initflags">FMOD_INITFLAGS</a>)</dd>
<dt>extradriverdata <span><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Driver specific data to be passed to the output plug-in.</dd>
</dl>
<p>The core <a class="apilink" href="core-api-system.html">system</a> used by the studio system is initialized at the same time as the studio system.</p>
<p>The <code>flags</code> and <code>extradriverdata</code> parameters are passed to <a class="apilink" href="core-api-system.html#system_init">System::init</a> to initialize the core.</p>
<p><strong>See Also:</strong> <a href="studio-guide.html#creating-the-studio-system">Creating the Studio System</a></p>
<h2 api="function" id="studio_system_isvalid"><a href="#studio_system_isvalid">Studio::System::isValid</a></h2>
<p>Checks that the System reference is valid and has been initialized.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="kt">bool</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">isValid</span><span class="p">()</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="kt">bool</span> <span class="n">FMOD_Studio_System_IsValid</span><span class="p">(</span><span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">)</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="kt">bool</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">isValid</span><span class="p">()</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">isValid</span><span class="p">()</span>
</pre></div>
<h2 api="function" id="studio_system_loadbankcustom"><a href="#studio_system_loadbankcustom">Studio::System::loadBankCustom</a></h2>
<p>Loads the <a href="glossary.html#metadata">metadata</a> of a <a href="glossary.html#bank-file">bank</a> using custom read callbacks.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">loadBankCustom</span><span class="p">(</span>
<span class="k">const</span> <span class="n">FMOD_STUDIO_BANK_INFO</span> <span class="o">*</span><span class="n">info</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_LOAD_BANK_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">Bank</span> <span class="o">**</span><span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_LoadBankCustom</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_STUDIO_BANK_INFO</span> <span class="o">*</span><span class="n">info</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_LOAD_BANK_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_BANK</span> <span class="o">**</span><span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">loadBankCustom</span><span class="p">(</span>
<span class="n">BANK_INFO</span> <span class="n">info</span><span class="p">,</span>
<span class="n">LOAD_BANK_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="k">out</span> <span class="n">Bank</span> <span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">loadBankCustom</span><span class="p">(</span>
<span class="nx">info</span><span class="p">,</span>
<span class="nx">flags</span><span class="p">,</span>
<span class="nx">bank</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>info</dt>
<dd>Information for loading the bank. (<a class="apilink" href="studio-api-system.html#fmod_studio_bank_info">FMOD_STUDIO_BANK_INFO</a>)</dd>
<dt>flags</dt>
<dd>Flags to control bank loading. (<a class="apilink" href="studio-api-system.html#fmod_studio_load_bank_flags">FMOD_STUDIO_LOAD_BANK_FLAGS</a>)</dd>
<dt>bank <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Bank object. (<a class="apilink" href="studio-api-bank.html">Studio::Bank</a>)</dd>
</dl>
<p>Sample data must be loaded separately see <a href="studio-guide.html#sample-data-loading">Sample Data Loading</a> for details.</p>
<p>By default this function blocks until the load finishes, and returns the <a class="apilink" href="core-api-common.html#fmod_result">FMOD_RESULT</a> to indicate the result. If the load fails then <code>bank</code> contains NULL.</p>
<p>Using the <a class="apilink" href="studio-api-system.html#fmod_studio_load_bank_nonblocking">FMOD_STUDIO_LOAD_BANK_NONBLOCKING</a> flag causes the bank to be loaded asynchronously. In that case, this function always returns <a class="apilink" href="core-api-common.html#fmod_ok">FMOD_OK</a> and <code>bank</code> contains a valid bank handle. Load errors for asynchronous banks can be detected by calling <a class="apilink" href="studio-api-bank.html#studio_bank_getloadingstate">Studio::Bank::getLoadingState</a>. Failed asynchronous banks should be released by calling <a class="apilink" href="studio-api-bank.html#studio_bank_unload">Studio::Bank::unload</a>.</p>
<p>If <code>info.userdata</code> is set but <code>info.userdatalength</code> is zero, <code>info.userdata</code> must remain valid until the bank is unloaded and each call to <code>info.opencallback</code> is matched by a call to <code>info.closecallback</code>. This requirement allows playback of shared streaming <a href="glossary.html#asset">assets</a> to continue after a bank is unloaded.</p>
<p>If a bank is split, separating out <a href="glossary.html#sample-data">sample data</a> and optionally streams from the <a href="glossary.html#metadata">metadata</a> bank, all parts must be loaded before any APIs that use the data are called. We recommend you load each part one after another (the order in which they are loaded is not important), then proceed with dependent API calls such as <a class="apilink" href="studio-api-bank.html#studio_bank_loadsampledata">Studio::Bank::loadSampleData</a> or <a class="apilink" href="studio-api-system.html#studio_system_getevent">Studio::System::getEvent</a>.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_loadbankfile">Studio::System::loadBankFile</a>, <a class="apilink" href="studio-api-system.html#studio_system_loadbankmemory">Studio::System::loadBankMemory</a></p>
<h2 api="function" id="studio_system_loadbankfile"><a href="#studio_system_loadbankfile">Studio::System::loadBankFile</a></h2>
<p>Loads the <a href="glossary.html#metadata">metadata</a> of a <a href="glossary.html#bank-file">bank</a>. This does not load the bank's <a href="glossary.html#sample-data">sample data</a>.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">loadBankFile</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">filename</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_LOAD_BANK_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">Bank</span> <span class="o">**</span><span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_LoadBankFile</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">filename</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_LOAD_BANK_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_BANK</span> <span class="o">**</span><span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">loadBankFile</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">filename</span><span class="p">,</span>
<span class="n">LOAD_BANK_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="k">out</span> <span class="n">Bank</span> <span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">loadBankFile</span><span class="p">(</span>
<span class="nx">filename</span><span class="p">,</span>
<span class="nx">flags</span><span class="p">,</span>
<span class="nx">bank</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>filename</dt>
<dd>Name of the file on disk. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>flags</dt>
<dd>Flags to control bank loading. (<a class="apilink" href="studio-api-system.html#fmod_studio_load_bank_flags">FMOD_STUDIO_LOAD_BANK_FLAGS</a>)</dd>
<dt>bank <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Bank object. (<a class="apilink" href="studio-api-bank.html">Studio::Bank</a>)</dd>
</dl>
<p>Sample data must be loaded separately see <a href="studio-guide.html#sample-data-loading">Sample Data Loading</a> for details.</p>
<p>By default this function blocks until the file load finishes and returns the <a class="apilink" href="core-api-common.html#fmod_result">FMOD_RESULT</a> to indicate the result. If the load fails, then <code>bank</code> contains NULL.</p>
<p>Using the <a class="apilink" href="studio-api-system.html#fmod_studio_load_bank_nonblocking">FMOD_STUDIO_LOAD_BANK_NONBLOCKING</a> flag causes the bank to be loaded asynchronously. In that case, this function returns <a class="apilink" href="core-api-common.html#fmod_ok">FMOD_OK</a> and <code>bank</code> contains a valid bank handle. Load errors for asynchronous banks can be detected by calling <a class="apilink" href="studio-api-bank.html#studio_bank_getloadingstate">Studio::Bank::getLoadingState</a>. Failed asynchronous banks should be released by calling <a class="apilink" href="studio-api-bank.html#studio_bank_unload">Studio::Bank::unload</a>.</p>
<p>If a bank is split, separating out sample data, metadata, and optionally streams into separate .bank files, all parts of the bank must be loaded before any APIs that use the data are called. We recommend you load each part one after another (the order is not important), then proceed with dependent API calls such as <a class="apilink" href="studio-api-bank.html#studio_bank_loadsampledata">Studio::Bank::loadSampleData</a> or <a class="apilink" href="studio-api-system.html#studio_system_getevent">Studio::System::getEvent</a>.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_loadbankcustom">Studio::System::loadBankCustom</a>, <a class="apilink" href="studio-api-system.html#studio_system_loadbankmemory">Studio::System::loadBankMemory</a></p>
<h2 api="function" id="studio_system_loadbankmemory"><a href="#studio_system_loadbankmemory">Studio::System::loadBankMemory</a></h2>
<p>Loads the <a href="glossary.html#metadata">metadata</a> of a <a href="glossary.html#bank-file">bank</a> from memory. Does not load the bank's <a href="glossary.html#sample-data">sample data</a>.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">loadBankMemory</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">buffer</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">length</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_LOAD_MEMORY_MODE</span> <span class="n">mode</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_LOAD_BANK_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">Bank</span> <span class="o">**</span><span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_LoadBankMemory</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">buffer</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">length</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_LOAD_MEMORY_MODE</span> <span class="n">mode</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_LOAD_BANK_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_BANK</span> <span class="o">**</span><span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">loadBankMemory</span><span class="p">(</span>
<span class="kt">byte</span><span class="p">[]</span> <span class="n">buffer</span><span class="p">,</span>
<span class="n">LOAD_BANK_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="k">out</span> <span class="n">Bank</span> <span class="n">bank</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">loadBankMemory</span><span class="p">(</span>
<span class="nx">buffer</span><span class="p">,</span>
<span class="nx">length</span><span class="p">,</span>
<span class="nx">mode</span><span class="p">,</span>
<span class="nx">flags</span><span class="p">,</span>
<span class="nx">bank</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>buffer</dt>
<dd>The memory buffer.</dd>
<dt>length</dt>
<dd>The length of the memory buffer.</dd>
<dt>mode</dt>
<dd>The loading mode to use. (<a class="apilink" href="studio-api-system.html#fmod_studio_load_memory_mode">FMOD_STUDIO_LOAD_MEMORY_MODE</a>)</dd>
<dt>flags</dt>
<dd>Flags to control bank loading. (<a class="apilink" href="studio-api-system.html#fmod_studio_load_bank_flags">FMOD_STUDIO_LOAD_BANK_FLAGS</a>)</dd>
<dt>bank <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>The bank object. (<a class="apilink" href="studio-api-bank.html">Studio::Bank</a>)</dd>
</dl>
<p>Sample data must be loaded separately. See the <a href="studio-guide.html#sample-data-loading">Sample Data Loading</a> section of the <a href="studio-guide.html">Studio API Guide</a> chapter for details.</p>
<p>When <code>mode</code> is <a class="apilink" href="studio-api-system.html#fmod_studio_load_memory">FMOD_STUDIO_LOAD_MEMORY</a>, the FMOD Engine allocates an internal buffer and copies the data from the passed-in buffer before using it. When used in this mode, there are no alignment restrictions on <code>buffer</code>, and the memory pointed to by <code>buffer</code> may be cleaned up at any time after this function returns.</p>
<p>When <code>mode</code> is <a class="apilink" href="studio-api-system.html#fmod_studio_load_memory_point">FMOD_STUDIO_LOAD_MEMORY_POINT</a>, the FMOD Engine uses the passed memory buffer directly. When using this mode, the buffer must be aligned to <a class="apilink" href="studio-api-system.html#fmod_studio_load_memory_alignment">FMOD_STUDIO_LOAD_MEMORY_ALIGNMENT</a> and the memory must persist until the bank is fully unloaded, which may not happen until some time after calling <a class="apilink" href="studio-api-bank.html#studio_bank_unload">Studio::Bank::unload</a>. You can ensure the memory is not being freed prematurely by only freeing it after receiving the <a class="apilink" href="studio-api-system.html#fmod_studio_system_callback_bank_unload">FMOD_STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD</a> callback.</p>
<p>By default this function blocks until the load finishes and returns the <a class="apilink" href="core-api-common.html#fmod_result">FMOD_RESULT</a> to indicate the result. If the load fails, <code>bank</code> contains NULL.</p>
<p>Using the <a class="apilink" href="studio-api-system.html#fmod_studio_load_bank_nonblocking">FMOD_STUDIO_LOAD_BANK_NONBLOCKING</a> flag causes the bank to be loaded asynchronously. In that case, this function always returns <a class="apilink" href="core-api-common.html#fmod_ok">FMOD_OK</a> and <code>bank</code> contains a valid bank handle. Load errors for asynchronous banks can be detected by calling <a class="apilink" href="studio-api-bank.html#studio_bank_getloadingstate">Studio::Bank::getLoadingState</a>. Failed asynchronous banks should be released by calling <a class="apilink" href="studio-api-bank.html#studio_bank_unload">Studio::Bank::unload</a>.</p>
<p>This function is not compatible with <a class="apilink" href="studio-api-system.html#fmod_studio_advancedsettings_encryptionkey">FMOD_STUDIO_ADVANCEDSETTINGS::encryptionkey</a>, using them together will cause an error to be returned.</p>
<p>If a bank is split, separating out sample data, metadata, and optionally streams into separate .bank files, all parts of the bank must be loaded before any APIs that use the data are called. We recommend you load each part one after another (the order is not important), then proceed with dependent API calls such as <a class="apilink" href="studio-api-bank.html#studio_bank_loadsampledata">Studio::Bank::loadSampleData</a> or <a class="apilink" href="studio-api-system.html#studio_system_getevent">Studio::System::getEvent</a>.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_loadbankfile">Studio::System::loadBankFile</a>, <a class="apilink" href="studio-api-system.html#studio_system_loadbankcustom">Studio::System::loadBankCustom</a>, <a class="apilink" href="studio-api-system.html#studio_system_setcallback">Studio::System::setCallback</a></p>
<h2 api="function" id="studio_system_loadcommandreplay"><a href="#studio_system_loadcommandreplay">Studio::System::loadCommandReplay</a></h2>
<p>Load a command replay.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">loadCommandReplay</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">filename</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_COMMANDREPLAY_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="n">Studio</span><span class="o">::</span><span class="n">CommandReplay</span> <span class="o">**</span><span class="n">replay</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_LoadCommandReplay</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">filename</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_COMMANDREPLAY_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_COMMANDREPLAY</span> <span class="o">**</span><span class="n">replay</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">loadCommandReplay</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">filename</span><span class="p">,</span>
<span class="n">COMMANDREPLAY_FLAGS</span> <span class="n">flags</span><span class="p">,</span>
<span class="k">out</span> <span class="n">Studio</span><span class="p">.</span><span class="n">CommandReplay</span> <span class="n">replay</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">loadCommandReplay</span><span class="p">(</span>
<span class="nx">filename</span><span class="p">,</span>
<span class="nx">flags</span><span class="p">,</span>
<span class="nx">replay</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>filename</dt>
<dd>The name of the file from which to load the command replay. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>flags</dt>
<dd>Flags that control the command replay. (<a class="apilink" href="studio-api-system.html#fmod_studio_commandreplay_flags">FMOD_STUDIO_COMMANDREPLAY_FLAGS</a>)</dd>
<dt>replay <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd>Command replay. (<a class="apilink" href="studio-api-commandreplay.html">Studio::CommandReplay</a>)</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_startcommandcapture">Studio::System::startCommandCapture</a>, <a class="apilink" href="studio-api-system.html#studio_system_stopcommandcapture">Studio::System::stopCommandCapture</a>, <a class="apilink" href="studio-api-commandreplay.html#studio_commandreplay_start">Studio::CommandReplay::start</a>, <a class="apilink" href="studio-api-commandreplay.html#studio_commandreplay_stop">Studio::CommandReplay::stop</a>, <a class="apilink" href="studio-api-commandreplay.html#studio_commandreplay_release">Studio::CommandReplay::release</a></p>
<h2 api="function" id="studio_system_lookupid"><a href="#studio_system_lookupid">Studio::System::lookupID</a></h2>
<p>Retrieves the ID for a <a href="glossary.html#bank-file">bank</a>, <span class="dead-link" href="glossary.html#event">event</span class="dead-link">, <span class="dead-link" href="glossary.html#snapshot">snapshot</span class="dead-link">, <span class="dead-link" href="glossary.html#bus">bus</span class="dead-link"> or <span class="dead-link" href="glossary.html#vca">VCA</span class="dead-link">.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">lookupID</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_LookupID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">lookupID</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">path</span><span class="p">,</span>
<span class="k">out</span> <span class="n">Guid</span> <span class="n">id</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">lookupID</span><span class="p">(</span>
<span class="nx">path</span><span class="p">,</span>
<span class="nx">id</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>path</dt>
<dd><a href="glossary.html#studio-guids-and-paths">Path</a>. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>id <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
<dd><a href="glossary.html#guid">GUID</a>. (<a class="apilink" href="core-api-common.html#fmod_guid">FMOD_GUID</a>)</dd>
</dl>
<p>The <a href="glossary.html#studio-strings-bank">strings bank</a> must be loaded prior to calling this function, otherwise <a class="apilink" href="core-api-common.html#fmod_err_event_notfound">FMOD_ERR_EVENT_NOTFOUND</a> is returned.</p>
<p>The path can be copied to the system clipboard from <a href="glossary.html#fmod-studio">FMOD Studio</a> by using the "Copy Path" context menu command.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_lookuppath">Studio::System::lookupPath</a></p>
<h2 api="function" id="studio_system_lookuppath"><a href="#studio_system_lookuppath">Studio::System::lookupPath</a></h2>
<p>Retrieves the path for a <a href="glossary.html#bank-file">bank</a>, <span class="dead-link" href="glossary.html#event">event</span class="dead-link">, <span class="dead-link" href="glossary.html#snapshot">snapshot</span class="dead-link">, <span class="dead-link" href="glossary.html#bus">bus</span class="dead-link"> or <span class="dead-link" href="glossary.html#vca">VCA</span class="dead-link">.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">lookupPath</span><span class="p">(</span>
<span class="k">const</span> <span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span><span class="p">,</span>
<span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">size</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">retrieved</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_LookupPath</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_GUID</span> <span class="o">*</span><span class="n">id</span><span class="p">,</span>
<span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">size</span><span class="p">,</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">retrieved</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">lookupPath</span><span class="p">(</span>
<span class="n">Guid</span> <span class="n">id</span><span class="p">,</span>
<span class="k">out</span> <span class="kt">string</span> <span class="n">path</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">lookupPath</span><span class="p">(</span>
<span class="nx">id</span><span class="p">,</span>
<span class="nx">path</span><span class="p">,</span>
<span class="nx">size</span><span class="p">,</span>
<span class="nx">retrieved</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>id</dt>
<dd>The <a href="glossary.html#guid">GUID</a>. (<a class="apilink" href="core-api-common.html#fmod_guid">FMOD_GUID</a>)</dd>
<dt>path <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>The buffer to receive the <a href="glossary.html#studio-guids-and-paths">path</a>. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>size</dt>
<dd>The size of the path buffer in bytes. Must be 0 if <code>path</code> is null.</dd>
<dt>retrieved <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>The length of the path in bytes, including the terminating null character.</dd>
</dl>
<p>The <a href="glossary.html#studio-strings-bank">strings bank</a> must be loaded prior to calling this function, otherwise <a class="apilink" href="core-api-common.html#fmod_err_event_notfound">FMOD_ERR_EVENT_NOTFOUND</a> is returned.</p>
<p>If the path is longer than <code>size</code> then it is truncated and this function returns <a class="apilink" href="core-api-common.html#fmod_err_truncated">FMOD_ERR_TRUNCATED</a>.</p>
<p>The <code>retrieved</code> parameter can be used to get the buffer size required to hold the full path.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_lookupid">Studio::System::lookupID</a></p>
<h2 api="function" id="studio_system_registerplugin"><a href="#studio_system_registerplugin">Studio::System::registerPlugin</a></h2>
<p>Registers a <a href="glossary.html#dsp">DSP</a> plug-in.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">registerPlugin</span><span class="p">(</span>
<span class="k">const</span> <span class="n">FMOD_DSP_DESCRIPTION</span> <span class="o">*</span><span class="n">description</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_RegisterPlugin</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_DSP_DESCRIPTION</span> <span class="o">*</span><span class="n">description</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">registerPlugin</span><span class="p">(</span>
<span class="nx">description</span>
<span class="p">);</span>
</pre></div>
<div class="admonition language-csharp">
<p>Not supported for C#.</p>
</div>
<dl>
<dt>description</dt>
<dd>The description of the DSP. (<a class="apilink" href="plugin-api-dsp.html#fmod_dsp_description">FMOD_DSP_DESCRIPTION</a>)</dd>
</dl>
<p>DSP plug-ins used by an <span class="dead-link" href="glossary.html#event">event</span class="dead-link"> must be registered using this function before loading the <a href="glossary.html#bank-file">bank</a> containing the event.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_unregisterplugin">Studio::System::unregisterPlugin</a></p>
<h2 api="function" id="studio_system_release"><a href="#studio_system_release">Studio::System::release</a></h2>
<p>Shut down and free the Studio System object.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">release</span><span class="p">();</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_Release</span><span class="p">(</span><span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">release</span><span class="p">();</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">release</span><span class="p">();</span>
</pre></div>
<p>This function will free the memory used by the Studio System object and everything created under it.</p>
<p><a class="apilink" href="studio-api-system.html#studio_system_create">Studio::System::create</a> and <a class="apilink" href="studio-api-system.html#studio_system_release">Studio::System::release</a> are not thread-safe. Calling either of these functions concurrently with any Studio API function (including these two functions) may cause undefined behavior. External synchronization must be used if calls to <a class="apilink" href="studio-api-system.html#studio_system_create">Studio::System::create</a> or <a class="apilink" href="studio-api-system.html#studio_system_release">Studio::System::release</a> could overlap other Studio API calls. All other Studio API functions are thread safe and may be called freely from any thread unless otherwise documented.</p>
<p>All handles or pointers to objects associated with a Studio System object become invalid when the Studio System object is released. The Studio API attempts to protect against stale handles and pointers being used with a different Studio System object but this protection cannot be guaranteed and attempting to use stale handles or pointers may cause undefined behavior.</p>
<p><strong>See Also:</strong> <a href="studio-guide.html#creating-the-studio-system">Creating the Studio System</a></p>
<h2 api="function" id="studio_system_resetbufferusage"><a href="#studio_system_resetbufferusage">Studio::System::resetBufferUsage</a></h2>
<p>Resets memory buffer usage statistics.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">resetBufferUsage</span><span class="p">();</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_ResetBufferUsage</span><span class="p">(</span><span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">resetBufferUsage</span><span class="p">();</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">resetBufferUsage</span><span class="p">();</span>
</pre></div>
<p>This function resets the buffer usage data tracked by the <a href="studio-api-system.html">Studio system</a>.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#fmod_studio_buffer_usage">FMOD_STUDIO_BUFFER_USAGE</a>, <a class="apilink" href="studio-api-system.html#studio_system_getbufferusage">Studio::System::getBufferUsage</a></p>
<h2 api="function" id="studio_system_setadvancedsettings"><a href="#studio_system_setadvancedsettings">Studio::System::setAdvancedSettings</a></h2>
<p>Sets advanced settings.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">setAdvancedSettings</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_ADVANCEDSETTINGS</span> <span class="o">*</span><span class="n">settings</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_SetAdvancedSettings</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_ADVANCEDSETTINGS</span> <span class="o">*</span><span class="n">settings</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setAdvancedSettings</span><span class="p">(</span>
<span class="n">ADVANCEDSETTINGS</span> <span class="n">settings</span>
<span class="p">);</span>
<span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setAdvancedSettings</span><span class="p">(</span>
<span class="n">ADVANCEDSETTINGS</span> <span class="n">settings</span><span class="p">,</span>
<span class="n">String</span> <span class="n">encryptionkey</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">setAdvancedSettings</span><span class="p">(</span>
<span class="nx">settings</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>settings</dt>
<dd>The <a href="studio-api-system.html">Studio system</a>'s advanced settings. (<a class="apilink" href="studio-api-system.html#fmod_studio_advancedsettings">FMOD_STUDIO_ADVANCEDSETTINGS</a>)</dd>
<dt>encryptionkey <span><a class="token" href="glossary.html#documentation-conventions" title="C#only">C#</a></span></dt>
<dd>The key for loading sounds from encrypted banks. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
</dl>
<p>This function must be called prior to Studio system initialization.</p>
<div class="admonition language-csharp">
<p>Use the overloaded function to provide a C# string rather than directly setting ADVANCEDSETTINGS.encryptionkey.</p>
</div>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getadvancedsettings">Studio::System::getAdvancedSettings</a>, <a class="apilink" href="studio-api-system.html#studio_system_initialize">Studio::System::initialize</a></p>
<h2 api="function" id="studio_system_setcallback"><a href="#studio_system_setcallback">Studio::System::setCallback</a></h2>
<p>Sets a callback for the <a href="studio-api-system.html">Studio System</a>.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">setCallback</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM_CALLBACK</span> <span class="n">callback</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_SYSTEM_CALLBACK_TYPE</span> <span class="n">callbackmask</span> <span class="o">=</span> <span class="n">FMOD_STUDIO_SYSTEM_CALLBACK_ALL</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_SetCallback</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_SYSTEM_CALLBACK</span> <span class="n">callback</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_SYSTEM_CALLBACK_TYPE</span> <span class="n">callbackmask</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setCallback</span><span class="p">(</span>
<span class="n">SYSTEM_CALLBACK</span> <span class="n">callback</span><span class="p">,</span>
<span class="n">SYSTEM_CALLBACK_TYPE</span> <span class="n">callbackmask</span> <span class="p">=</span> <span class="n">SYSTEM_CALLBACK_TYPE</span><span class="p">.</span><span class="n">ALL</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">setCallback</span><span class="p">(</span>
<span class="nx">callback</span><span class="p">,</span>
<span class="nx">callbackmask</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>callback</dt>
<dd>System callback function. (<a class="apilink" href="studio-api-system.html#fmod_studio_system_callback">FMOD_STUDIO_SYSTEM_CALLBACK</a>)</dd>
<dt>callbackmask</dt>
<dd>A bitfield specifying which callback types are required. Defaults to <a class="apilink" href="studio-api-system.html#fmod_studio_system_callback_all">FMOD_STUDIO_SYSTEM_CALLBACK_ALL</a>. (<a class="apilink" href="studio-api-system.html#fmod_studio_system_callback_type">FMOD_STUDIO_SYSTEM_CALLBACK_TYPE</a>)</dd>
</dl>
<p>The system callback function is called for a variety of reasons, use the <code>callbackmask</code> to choose which callbacks you are interested in.</p>
<p>Callbacks are called from the Studio Update Thread in default / async mode and the main (calling) thread in synchronous mode. See the <a class="apilink" href="studio-api-system.html#fmod_studio_system_callback_type">FMOD_STUDIO_SYSTEM_CALLBACK_TYPE</a> for details.</p>
<p><strong>See Also:</strong> <a href="glossary.html#callback-behavior">Callback Behavior</a>, <a class="apilink" href="studio-api-system.html#studio_system_setuserdata">Studio::System::setUserData</a></p>
<h2 api="function" id="studio_system_setlistenerattributes"><a href="#studio_system_setlistenerattributes">Studio::System::setListenerAttributes</a></h2>
<p>Sets the 3D attributes of the listener.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">setListenerAttributes</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_3D_ATTRIBUTES</span> <span class="o">*</span><span class="n">attributes</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_VECTOR</span> <span class="o">*</span><span class="n">attenuationposition</span> <span class="o">=</span> <span class="k">nullptr</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_SetListenerAttributes</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_3D_ATTRIBUTES</span> <span class="o">*</span><span class="n">attributes</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_VECTOR</span> <span class="o">*</span><span class="n">attenuationposition</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setListenerAttributes</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="n">_3D_ATTRIBUTES</span> <span class="n">attributes</span>
<span class="p">);</span>
<span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setListenerAttributes</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="n">_3D_ATTRIBUTES</span> <span class="n">attributes</span><span class="p">,</span>
<span class="n">VECTOR</span> <span class="n">attenuationposition</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">setListenerAttributes</span><span class="p">(</span>
<span class="nx">listener</span><span class="p">,</span>
<span class="nx">attributes</span><span class="p">,</span>
<span class="nx">attenuationposition</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>listener</dt>
<dd>Index of listener to set 3D attributes on. Listeners are indexed from 0, to <a class="apilink" href="core-api-common.html#fmod_max_listeners">FMOD_MAX_LISTENERS</a> - 1, in a multi-listener environment.</dd>
<dt>attributes</dt>
<dd>3D attributes. (<a class="apilink" href="core-api-common.html#fmod_3d_attributes">FMOD_3D_ATTRIBUTES</a>)</dd>
<dt>attenuationposition <span><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
<dd>Position used for calculating attenuation. (<a class="apilink" href="core-api-common.html#fmod_vector">FMOD_VECTOR</a>)</dd>
</dl>
<p>Passing NULL for <code>attenuationposition</code> will result in the listener only using the position in <code>attributes</code>.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getlistenerattributes">Studio::System::getListenerAttributes</a></p>
<h2 api="function" id="studio_system_setlistenerweight"><a href="#studio_system_setlistenerweight">Studio::System::setListenerWeight</a></h2>
<p>Sets the listener weighting.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">setListenerWeight</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="kt">float</span> <span class="n">weight</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_SetListenerWeight</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="kt">float</span> <span class="n">weight</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setListenerWeight</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">listener</span><span class="p">,</span>
<span class="kt">float</span> <span class="n">weight</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">setListenerWeight</span><span class="p">(</span>
<span class="nx">listener</span><span class="p">,</span>
<span class="nx">weight</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>listener</dt>
<dd>Listener index.</dd>
<dt>weight</dt>
<dd>
<p>Weighting value.</p>
<ul>
<li><span class="label">Range:</span> [0, 1]</li>
<li><span class="label">Default:</span> 1</li>
</ul>
</dd>
</dl>
<p>Listener weighting is a factor which determines how much the listener influences the mix. It is taken into account for 3D panning, doppler, and the <a href="glossary.html#automatic-parameter">automatic</a> distance event parameter. A listener with a weight of 0 has no effect on the mix.</p>
<p>Listener weighting can be used to fade in and out multiple listeners. For example to do a crossfade, an additional listener can be created with a weighting of 0 that ramps up to 1 while the old listener weight is ramped down to 0. After the crossfade is finished the number of listeners can be reduced to 1 again.</p>
<p>The sum of all the listener weights should add up to at least 1. It is a user error to set all listener weights to 0.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getlistenerweight">Studio::System::getListenerWeight</a>, <a class="apilink" href="studio-api-system.html#studio_system_setnumlisteners">Studio::System::setNumListeners</a></p>
<h2 api="function" id="studio_system_setnumlisteners"><a href="#studio_system_setnumlisteners">Studio::System::setNumListeners</a></h2>
<p>Sets the number of listeners in the 3D sound scene.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">setNumListeners</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">numlisteners</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_SetNumListeners</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">numlisteners</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setNumListeners</span><span class="p">(</span>
<span class="kt">int</span> <span class="n">numlisteners</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">setNumListeners</span><span class="p">(</span>
<span class="nx">numlisteners</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>numlisteners</dt>
<dd>
<p>Number of listeners.</p>
<ul>
<li><span class="label">Range:</span> [1, <a class="apilink" href="core-api-common.html#fmod_max_listeners">FMOD_MAX_LISTENERS</a>]</li>
<li><span class="label">Default:</span> 1</li>
</ul>
</dd>
</dl>
<p>If the number of listeners is set to more than 1 then FMOD uses a 'closest sound to the listener' method to determine what should be heard.</p>
<p>See the <a href="white-papers-studio-3d-events.html#multiple-listeners">Studio 3D Events</a> white paper for more information.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getnumlisteners">Studio::System::getNumListeners</a>, <a class="apilink" href="studio-api-system.html#studio_system_setlistenerattributes">Studio::System::setListenerAttributes</a>, <a class="apilink" href="studio-api-system.html#studio_system_setlistenerweight">Studio::System::setListenerWeight</a></p>
<h2 api="function" id="studio_system_setparameterbyid"><a href="#studio_system_setparameterbyid">Studio::System::setParameterByID</a></h2>
<p>Sets a global parameter value by unique identifier.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">setParameterByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="kt">float</span> <span class="n">value</span><span class="p">,</span>
<span class="kt">bool</span> <span class="n">ignoreseekspeed</span> <span class="o">=</span> <span class="nb">false</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_SetParameterByID</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="kt">float</span> <span class="n">value</span><span class="p">,</span>
<span class="n">FMOD_BOOL</span> <span class="n">ignoreseekspeed</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setParameterByID</span><span class="p">(</span>
<span class="n">PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="kt">float</span> <span class="k">value</span><span class="p">,</span>
<span class="kt">bool</span> <span class="n">ignoreseekspeed</span> <span class="p">=</span> <span class="k">false</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">setParameterByID</span><span class="p">(</span>
<span class="nx">id</span><span class="p">,</span>
<span class="nx">value</span><span class="p">,</span>
<span class="nx">ignoreseekspeed</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>id</dt>
<dd>Parameter identifier. (<a class="apilink" href="studio-api-common.html#fmod_studio_parameter_id">FMOD_STUDIO_PARAMETER_ID</a>)</dd>
<dt>value</dt>
<dd>Value for given identifier.</dd>
<dt>ignoreseekspeed</dt>
<dd>
<p>Specifies whether to ignore the parameter's seek speed and set the value immediately.</p>
<ul>
<li><span class="label">Units:</span> Boolean</li>
</ul>
</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_setparameterbyname">Studio::System::setParameterByName</a>, <a class="apilink" href="studio-api-system.html#studio_system_setparametersbyids">Studio::System::setParametersByIDs</a>, <a class="apilink" href="studio-api-system.html#studio_system_getparameterbyid">Studio::System::getParameterByID</a>, <a class="apilink" href="studio-api-system.html#studio_system_getparameterbyname">Studio::System::getParameterByName</a></p>
<h2 api="function" id="studio_system_setparameterbyidwithlabel"><a href="#studio_system_setparameterbyidwithlabel">Studio::System::setParameterByIDWithLabel</a></h2>
<p>Sets a global parameter value by unique identifier, looking up the value label.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">setParameterByIDWithLabel</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">label</span><span class="p">,</span>
<span class="kt">bool</span> <span class="n">ignoreseekspeed</span> <span class="o">=</span> <span class="nb">false</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_SetParameterByIDWithLabel</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">label</span><span class="p">,</span>
<span class="n">FMOD_BOOL</span> <span class="n">ignoreseekspeed</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setParameterByIDWithLabel</span><span class="p">(</span>
<span class="n">PARAMETER_ID</span> <span class="n">id</span><span class="p">,</span>
<span class="kt">string</span> <span class="n">label</span><span class="p">,</span>
<span class="kt">bool</span> <span class="n">ignoreseekspeed</span> <span class="p">=</span> <span class="k">false</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">setParameterByIDWithLabel</span><span class="p">(</span>
<span class="nx">id</span><span class="p">,</span>
<span class="nx">label</span><span class="p">,</span>
<span class="nx">ignoreseekspeed</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>id</dt>
<dd>Parameter identifier. (<a class="apilink" href="studio-api-common.html#fmod_studio_parameter_id">FMOD_STUDIO_PARAMETER_ID</a>)</dd>
<dt>label</dt>
<dd>Labeled value for given identifier.</dd>
<dt>ignoreseekspeed</dt>
<dd>Specifies whether to ignore the parameter's seek speed and set the value immediately.</dd>
</dl>
<p>If the specified label is not found, <a class="apilink" href="core-api-common.html#fmod_err_event_notfound">FMOD_ERR_EVENT_NOTFOUND</a> is returned. This lookup is case sensitive.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_setparameterbyname">Studio::System::setParameterByName</a>, <a class="apilink" href="studio-api-system.html#studio_system_setparametersbyids">Studio::System::setParametersByIDs</a>, <a class="apilink" href="studio-api-system.html#studio_system_getparameterbyid">Studio::System::getParameterByID</a>, <a class="apilink" href="studio-api-system.html#studio_system_getparameterbyname">Studio::System::getParameterByName</a></p>
<h2 api="function" id="studio_system_setparameterbyname"><a href="#studio_system_setparameterbyname">Studio::System::setParameterByName</a></h2>
<p>Sets a global parameter value by name, including the path if needed.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">setParameterByName</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
<span class="kt">float</span> <span class="n">value</span><span class="p">,</span>
<span class="kt">bool</span> <span class="n">ignoreseekspeed</span> <span class="o">=</span> <span class="nb">false</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_SetParameterByName</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
<span class="kt">float</span> <span class="n">value</span><span class="p">,</span>
<span class="n">FMOD_BOOL</span> <span class="n">ignoreseekspeed</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setParameterByName</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">name</span><span class="p">,</span>
<span class="kt">float</span> <span class="k">value</span><span class="p">,</span>
<span class="kt">bool</span> <span class="n">ignoreseekspeed</span> <span class="p">=</span> <span class="k">false</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">setParameterByName</span><span class="p">(</span>
<span class="nx">name</span><span class="p">,</span>
<span class="nx">value</span><span class="p">,</span>
<span class="nx">ignoreseekspeed</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>name</dt>
<dd>Parameter name, including the path if needed (case-insensitive). (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>value</dt>
<dd>Value for given name.</dd>
<dt>ignoreseekspeed</dt>
<dd>
<p>Specifies whether to ignore the parameter's seek speed and set the value immediately.</p>
<ul>
<li><span class="label">Units:</span> Boolean</li>
</ul>
</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_setparameterbyid">Studio::System::setParameterByID</a>, <a class="apilink" href="studio-api-system.html#studio_system_setparametersbyids">Studio::System::setParametersByIDs</a>, <a class="apilink" href="studio-api-system.html#studio_system_getparameterbyid">Studio::System::getParameterByID</a>, <a class="apilink" href="studio-api-system.html#studio_system_getparameterbyname">Studio::System::getParameterByName</a></p>
<h2 api="function" id="studio_system_setparameterbynamewithlabel"><a href="#studio_system_setparameterbynamewithlabel">Studio::System::setParameterByNameWithLabel</a></h2>
<p>Sets a global parameter value by name, including the path if needed, looking up the value label.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">setParameterByNameWithLabel</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">label</span><span class="p">,</span>
<span class="kt">bool</span> <span class="n">ignoreseekspeed</span> <span class="o">=</span> <span class="nb">false</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_SetParameterByNameWithLabel</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">label</span><span class="p">,</span>
<span class="n">FMOD_BOOL</span> <span class="n">ignoreseekspeed</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setParameterByNameWithLabel</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">name</span><span class="p">,</span>
<span class="kt">string</span> <span class="n">label</span><span class="p">,</span>
<span class="kt">bool</span> <span class="n">ignoreseekspeed</span> <span class="p">=</span> <span class="k">false</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">setParameterByNameWithLabel</span><span class="p">(</span>
<span class="nx">name</span><span class="p">,</span>
<span class="nx">label</span><span class="p">,</span>
<span class="nx">ignoreseekspeed</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>name</dt>
<dd>Parameter name, including the path if needed (case-insensitive). (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>label</dt>
<dd>Labeled value for given name.</dd>
<dt>ignoreseekspeed</dt>
<dd>Specifies whether to ignore the parameter's seek speed and set the value immediately.</dd>
</dl>
<p>If the specified label is not found, <a class="apilink" href="core-api-common.html#fmod_err_event_notfound">FMOD_ERR_EVENT_NOTFOUND</a> is returned. This lookup is case sensitive.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_setparameterbyid">Studio::System::setParameterByID</a>, <a class="apilink" href="studio-api-system.html#studio_system_setparametersbyids">Studio::System::setParametersByIDs</a>, <a class="apilink" href="studio-api-system.html#studio_system_getparameterbyid">Studio::System::getParameterByID</a>, <a class="apilink" href="studio-api-system.html#studio_system_getparameterbyname">Studio::System::getParameterByName</a></p>
<h2 api="function" id="studio_system_setparametersbyids"><a href="#studio_system_setparametersbyids">Studio::System::setParametersByIDs</a></h2>
<p>Sets multiple global parameter values by unique identifier.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">setParametersByIDs</span><span class="p">(</span>
<span class="k">const</span> <span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="o">*</span><span class="n">ids</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">values</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">count</span><span class="p">,</span>
<span class="kt">bool</span> <span class="n">ignoreseekspeed</span> <span class="o">=</span> <span class="nb">false</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_SetParametersByIDs</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="n">FMOD_STUDIO_PARAMETER_ID</span> <span class="o">*</span><span class="n">ids</span><span class="p">,</span>
<span class="kt">float</span> <span class="o">*</span><span class="n">values</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">count</span><span class="p">,</span>
<span class="n">FMOD_BOOL</span> <span class="n">ignoreseekspeed</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setParametersByIDs</span><span class="p">(</span>
<span class="n">PARAMETER_ID</span><span class="p">[]</span> <span class="n">ids</span><span class="p">,</span>
<span class="kt">float</span><span class="p">[]</span> <span class="n">values</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">count</span><span class="p">,</span>
<span class="kt">bool</span> <span class="n">ignoreseekspeed</span> <span class="p">=</span> <span class="k">false</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">setParametersByIDs</span><span class="p">(</span>
<span class="nx">ids</span><span class="p">,</span>
<span class="nx">values</span><span class="p">,</span>
<span class="nx">count</span><span class="p">,</span>
<span class="nx">ignoreseekspeed</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>ids</dt>
<dd>Array of parameter identifiers. (<a class="apilink" href="studio-api-common.html#fmod_studio_parameter_id">FMOD_STUDIO_PARAMETER_ID</a>)</dd>
<dt>values</dt>
<dd>Array of values for each given identifier.</dd>
<dt>count</dt>
<dd>
<p>Number of items in the given arrays.</p>
<ul>
<li><span class="label">Range:</span> [1, 32]</li>
</ul>
</dd>
<dt>ignoreseekspeed</dt>
<dd>
<p>Specifies whether to ignore the parameter's seek speed and set the value immediately.</p>
<ul>
<li><span class="label">Units:</span> Boolean</li>
</ul>
</dd>
</dl>
<p>If any ID is set to all zeroes then the corresponding value will be ignored.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_setparameterbyid">Studio::System::setParameterByID</a>, <a class="apilink" href="studio-api-system.html#studio_system_setparameterbyname">Studio::System::setParameterByName</a>, <a class="apilink" href="studio-api-system.html#studio_system_getparameterbyid">Studio::System::getParameterByID</a>, <a class="apilink" href="studio-api-system.html#studio_system_getparameterbyname">Studio::System::getParameterByName</a></p>
<h2 api="function" id="studio_system_setuserdata"><a href="#studio_system_setuserdata">Studio::System::setUserData</a></h2>
<p>Sets the user data.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">setUserData</span><span class="p">(</span>
<span class="kt">void</span> <span class="o">*</span><span class="n">userdata</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_SetUserData</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="kt">void</span> <span class="o">*</span><span class="n">userdata</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">setUserData</span><span class="p">(</span>
<span class="n">IntPtr</span> <span class="n">userdata</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">setUserData</span><span class="p">(</span>
<span class="nx">userdata</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>userdata</dt>
<dd>User data to store within the system.</dd>
</dl>
<p>This function allows arbitrary user data to be attached to this object, which wll be passed through the <code>userdata</code> parameter in any <a class="apilink" href="studio-api-system.html#fmod_studio_system_callback">FMOD_STUDIO_SYSTEM_CALLBACK</a>s. See the <a href="glossary.html#user-data">User Data</a> section of the glossary for an example of how to get and set user data.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_getuserdata">Studio::System::getUserData</a>, <a class="apilink" href="studio-api-system.html#studio_system_setcallback">Studio::System::setCallback</a></p>
<h2 api="function" id="studio_system_startcommandcapture"><a href="#studio_system_startcommandcapture">Studio::System::startCommandCapture</a></h2>
<p>Start recording <a href="glossary.html#studio-api">Studio API</a> commands to a file.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">startCommandCapture</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">filename</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_COMMANDCAPTURE_FLAGS</span> <span class="n">flags</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_StartCommandCapture</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">filename</span><span class="p">,</span>
<span class="n">FMOD_STUDIO_COMMANDCAPTURE_FLAGS</span> <span class="n">flags</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">startCommandCapture</span><span class="p">(</span>
<span class="kt">string</span> <span class="n">filename</span><span class="p">,</span>
<span class="n">COMMANDCAPTURE_FLAGS</span> <span class="n">flags</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">startCommandCapture</span><span class="p">(</span>
<span class="nx">filename</span><span class="p">,</span>
<span class="nx">flags</span>
<span class="p">);</span>
</pre></div>
<dl>
<dt>filename</dt>
<dd>The name of the file to which the recorded commands are to be written. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
<dt>flags</dt>
<dd>Flags that control command capturing. (<a class="apilink" href="studio-api-system.html#fmod_studio_commandcapture_flags">FMOD_STUDIO_COMMANDCAPTURE_FLAGS</a>)</dd>
</dl>
<p>Commands generated by the Studio API can be captured and later replayed for debugging and profiling purposes.</p>
<p>Unless the <a class="apilink" href="studio-api-system.html#fmod_studio_commandcapture_skip_initial_state">FMOD_STUDIO_COMMANDCAPTURE_SKIP_INITIAL_STATE</a> flag is specified, the command capture first records the set of all <a href="glossary.html#bank-file">banks</a> and <span class="dead-link" href="glossary.html#event-instance">event instances</span class="dead-link"> that currently exist.</p>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_stopcommandcapture">Studio::System::stopCommandCapture</a>, <a class="apilink" href="studio-api-system.html#studio_system_loadcommandreplay">Studio::System::loadCommandReplay</a></p>
<h2 api="function" id="studio_system_stopcommandcapture"><a href="#studio_system_stopcommandcapture">Studio::System::stopCommandCapture</a></h2>
<p>Stop recording <a href="glossary.html#studio-api">Studio API</a> commands.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">stopCommandCapture</span><span class="p">();</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_StopCommandCapture</span><span class="p">(</span><span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">stopCommandCapture</span><span class="p">();</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">stopCommandCapture</span><span class="p">();</span>
</pre></div>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_startcommandcapture">Studio::System::startCommandCapture</a>, <a class="apilink" href="studio-api-system.html#studio_system_loadcommandreplay">Studio::System::loadCommandReplay</a></p>
<h2 api="function" id="studio_system_unloadall"><a href="#studio_system_unloadall">Studio::System::unloadAll</a></h2>
<p>Unloads all currently loaded <a href="glossary.html#bank-file">banks</a>.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">unloadAll</span><span class="p">();</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_UnloadAll</span><span class="p">(</span><span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">unloadAll</span><span class="p">();</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">unloadAll</span><span class="p">();</span>
</pre></div>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_loadbankfile">Studio::System::loadBankFile</a>, <a class="apilink" href="studio-api-system.html#studio_system_loadbankmemory">Studio::System::loadBankMemory</a>, <a class="apilink" href="studio-api-system.html#studio_system_loadbankcustom">Studio::System::loadBankCustom</a></p>
<h2 api="function" id="studio_system_unregisterplugin"><a href="#studio_system_unregisterplugin">Studio::System::unregisterPlugin</a></h2>
<p>Unregisters a <a href="glossary.html#dsp">DSP</a> plug-in.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">unregisterPlugin</span><span class="p">(</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_UnregisterPlugin</span><span class="p">(</span>
<span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span>
<span class="p">);</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">unregisterPlugin</span><span class="p">(</span>
<span class="nx">name</span>
<span class="p">);</span>
</pre></div>
<div class="admonition language-csharp">
<p>Not supported for C#.</p>
</div>
<dl>
<dt>name</dt>
<dd>The name of the DSP. This must match the description passed to <a class="apilink" href="studio-api-system.html#studio_system_registerplugin">Studio::System::registerPlugin</a>.</dd>
</dl>
<p><strong>See Also:</strong> <a class="apilink" href="studio-api-system.html#studio_system_registerplugin">Studio::System::registerPlugin</a></p>
<h2 api="function" id="studio_system_update"><a href="#studio_system_update">Studio::System::update</a></h2>
<p>Update the <a href="studio-api-system.html">studio system</a>.</p>
<p>
<div class="language-selector">
<div class="language-tab" data-language="language-c">C</div>
<div class="language-tab" data-language="language-cpp">C++</div>
<div class="language-tab" data-language="language-csharp">C#</div>
<div class="language-tab" data-language="language-javascript">JS</div>
</div>
</p>
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Studio</span><span class="o">::</span><span class="n">System</span><span class="o">::</span><span class="n">update</span><span class="p">();</span>
</pre></div>
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Studio_System_Update</span><span class="p">(</span><span class="n">FMOD_STUDIO_SYSTEM</span> <span class="o">*</span><span class="n">system</span><span class="p">);</span>
</pre></div>
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Studio</span><span class="p">.</span><span class="n">System</span><span class="p">.</span><span class="n">update</span><span class="p">();</span>
</pre></div>
<div class="highlight language-javascript"><pre><span></span><span class="nx">Studio</span><span class="p">.</span><span class="nx">System</span><span class="p">.</span><span class="nx">update</span><span class="p">();</span>
</pre></div>
<p>When Studio is initialized in the default asynchronous processing mode this function submits all buffered commands for execution on the <a href="glossary.html#studio-update-thread">Studio Update thread</a> for asynchronous processing. This is a fast operation since the commands are not processed on the calling thread. If Studio is initialized with <a class="apilink" href="studio-api-system.html#fmod_studio_init_deferred_callbacks">FMOD_STUDIO_INIT_DEFERRED_CALLBACKS</a> then any deferred callbacks fired during any asynchronous updates since the last call to this function will be called. If an error occurred during any asynchronous updates since the last call to this function then this function will return the error result.</p>
<p>When Studio is initialized with <a class="apilink" href="studio-api-system.html#fmod_studio_init_synchronous_update">FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE</a> queued commands will be processed immediately when calling this function, the scheduling and update logic for the Studio system are executed and all callbacks are fired. This may block the calling thread for a substantial amount of time.</p>
<p><strong>See Also:</strong> <a href="studio-guide.html#studio-system-processing">Studio System Processing</a></p></div>
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). &copy; 2025 Firelight Technologies Pty Ltd.</p>
</body>
</html>
</div>