1047 lines
122 KiB
HTML
1047 lines
122 KiB
HTML
<html>
|
||
<head>
|
||
<title>Effects Reference</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><a href="studio-api.html">Studio API Reference</a></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 class="manual-current-chapter manual-active-chapter"><a href="effects-reference.html">Effects Reference</a><ul>
|
||
<li><a href="#current-effects">Current Effects</a><ul>
|
||
<li><a href="#channel-mix">Channel Mix</a><ul>
|
||
<li><a href="#performance">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#chorus">Chorus</a><ul>
|
||
<li><a href="#performance_1">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#compressor">Compressor</a><ul>
|
||
<li><a href="#performance_2">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#convolution-reverb">Convolution Reverb</a><ul>
|
||
<li><a href="#creation-of-an-impulse-response-for-use-with-the-convolution-reverb-effect">Creation of an impulse response for use with the convolution reverb effect</a></li>
|
||
<li><a href="#performance_3">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#delay">Delay</a><ul>
|
||
<li><a href="#performance_4">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#distortion">Distortion</a><ul>
|
||
<li><a href="#performance_5">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#echo">Echo</a><ul>
|
||
<li><a href="#performance_6">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#fader">Fader</a><ul>
|
||
<li><a href="#performance_7">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#fft">FFT</a><ul>
|
||
<li><a href="#performance_8">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#flange">Flange</a><ul>
|
||
<li><a href="#performance_9">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#it-echo">IT Echo</a><ul>
|
||
<li><a href="#performance_10">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#it-low-pass">IT Low Pass</a><ul>
|
||
<li><a href="#performance_11">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#limiter">Limiter</a><ul>
|
||
<li><a href="#performance_12">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#multiband-dynamics">Multiband Dynamics</a><ul>
|
||
<li><a href="#performance_13">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#multiband-equalizer">Multiband Equalizer</a><ul>
|
||
<li><a href="#performance_14">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#normalize">Normalize</a><ul>
|
||
<li><a href="#performance_15">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#object-panner">Object Panner</a><ul>
|
||
<li><a href="#performance_16">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#oscillator">Oscillator</a><ul>
|
||
<li><a href="#performance_17">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#pan">Pan</a><ul>
|
||
<li><a href="#2d-stereo-output-mode">2D Stereo Output Mode</a></li>
|
||
<li><a href="#2d-surround-output-mode">2D Surround Output Mode</a></li>
|
||
<li><a href="#2d-surround-output-mode-extent">2D Surround Output Mode: Extent</a></li>
|
||
<li><a href="#2d-surround-output-mode-direction">2D Surround Output Mode: Direction</a></li>
|
||
<li><a href="#2d-surround-output-mode-rotation">2D Surround Output Mode: Rotation</a></li>
|
||
<li><a href="#2d-surround-output-mode-lfe-level">2D Surround Output Mode: LFE Level</a></li>
|
||
<li><a href="#2d-surround-output-mode-stereo-source-discrete-panning">2D Surround Output Mode: Stereo Source Discrete Panning</a></li>
|
||
<li><a href="#2d-surround-output-mode-stereo-axis">2D Surround Output Mode: Stereo Axis</a></li>
|
||
<li><a href="#2d-surround-output-mode-stereo-separation">2D Surround Output Mode: Stereo Separation</a></li>
|
||
<li><a href="#2d-surround-output-mode-height">2D Surround Output Mode: Height</a></li>
|
||
<li><a href="#3d-surround-output-mode-3d-pan-blend">3D Surround Output Mode: 3D Pan Blend</a></li>
|
||
<li><a href="#3d-surround-output-mode-position">3D Surround Output Mode: Position</a></li>
|
||
<li><a href="#3d-surround-output-mode-roll-off">3D Surround Output Mode: Roll-off</a></li>
|
||
<li><a href="#3d-surround-output-mode-min-distance">3D Surround Output Mode: Min Distance</a></li>
|
||
<li><a href="#3d-surround-output-mode-max-distance">3D Surround Output Mode: Max Distance</a></li>
|
||
<li><a href="#3d-surround-output-mode-extent-mode">3D Surround Output Mode: Extent Mode</a></li>
|
||
<li><a href="#3d-surround-output-mode-sound-size">3D Surround Output Mode: Sound Size</a></li>
|
||
<li><a href="#3d-surround-output-mode-min-extent">3D Surround Output Mode: Min Extent</a></li>
|
||
<li><a href="#general-settings-enabled-speakers">General settings: Enabled Speakers</a></li>
|
||
<li><a href="#general-settings-lfe-up-mix-enabled">General settings: LFE Up-mix Enabled</a></li>
|
||
<li><a href="#general-settings-overall-gain">General settings: Overall Gain</a></li>
|
||
<li><a href="#general-settings-surround-speaker-mode">General settings: Surround Speaker Mode</a></li>
|
||
<li><a href="#performance_18">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#pitch-shifter">Pitch Shifter</a><ul>
|
||
<li><a href="#performance_19">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#return">Return</a><ul>
|
||
<li><a href="#performance_20">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#send">Send</a><ul>
|
||
<li><a href="#performance_21">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#sfx-reverb">SFX Reverb</a><ul>
|
||
<li><a href="#performance_22">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#three-eq">Three EQ</a><ul>
|
||
<li><a href="#performance_23">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#transceiver">Transceiver</a><ul>
|
||
<li><a href="#performance_24">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#tremolo">Tremolo</a><ul>
|
||
<li><a href="#performance_25">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#legacy-effects">Legacy Effects</a><ul>
|
||
<li><a href="#high-pass">High Pass</a><ul>
|
||
<li><a href="#performance_26">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#high-pass-simple">High Pass Simple</a><ul>
|
||
<li><a href="#performance_27">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#low-pass">Low Pass</a><ul>
|
||
<li><a href="#performance_28">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#low-pass-simple">Low Pass Simple</a><ul>
|
||
<li><a href="#performance_29">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#parametric-eq">Parametric EQ</a><ul>
|
||
<li><a href="#performance_30">Performance</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</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>10. Effects Reference</h1>
|
||
<p>This chapter describes the suite of <a href="glossary.html#effect">effects</a> built in to the FMOD Engine, as well as their purposes, performance characteristics, and implementation details.</p>
|
||
<h2 id="current-effects"><a href="#current-effects">10.1 Current Effects</a></h2>
|
||
<p>This section contains high level descriptions of currently supported built in <a href="glossary.html#effect">effects</a>.</p>
|
||
<p>Effects are categorized in each description for performance as:</p>
|
||
<ul>
|
||
<li><strong>low overhead</strong> - Can be used freely without much CPU impact.</li>
|
||
<li><strong>medium overhead</strong> - Use carefully with a medium CPU impact.</li>
|
||
<li><strong>high overhead</strong> - Use sparingly with a higher CPU impact.</li>
|
||
</ul>
|
||
<p>These categories are only broad guidelines, however, and cannot account for every project's unique requirements and resource budget. For a more accurate measurement of the performance impact of the effects in your project, use the <a href="https://fmod.com/docs/2.03/studio/profiling.html">FMOD Studio profiler</a> or <a href="glossary.html#core-api-profiler-tool">Core API profiler tool</a>.</p>
|
||
<h3 id="channel-mix"><a href="#channel-mix">10.1.1 Channel Mix</a></h3>
|
||
<p>The channel mix <a href="glossary.html#effect">effect</a> allows you to group, manipulate and route the individual channels of the <a href="glossary.html#signal">signal</a>.</p>
|
||
<p>Larger channel count multi-channel audio formats benefit the most from this <a href="glossary.html#effect">effect</a>, as mono and stereo signals are usually easily manipulated with a simple pan or volume setting. With larger multi-channel audio formats, the channels in the signal can be routed to any speaker that is required, and each volume level of each channel can be individually set.</p>
|
||
<p>Example: 8 stereo streams being interleaved into a single 16 channel stream. Normally FMOD would not know how to pan this type of signal. The grouping feature would let you describe it as 'all stereo' to allow the signal to pan correctly as 8 pairs of stereo signals. There are a variety of grouping modes to choose from.</p>
|
||
<p>The channel mix effect provides the following features:</p>
|
||
<ul>
|
||
<li>Per Channel Gain (up to 32 channels). For each channel in a signal, each input gain level can be individually.<br />
|
||
<img alt="Per channel gain" src="images/dsp-channelmix-levels.svg" /><br />
|
||
<em>In this example, gain levels have been set on a 5.1 signal. Setting gain for a channel applies to all samples in the signal.</em></li>
|
||
<li>Output Channel Grouping. A multi-channel input signal can be described to play as a group of lower channel count speaker formats. By default, the channel mix effect passes the input channel format to the output without changing it.<br />
|
||
<img alt="Per channel gain" src="images/dsp-channelmix-grouping.svg" /><br />
|
||
<em>In this example, a multi-channel input signal is being described as multiple stereo signals out using the 'All Stereo' setting.</em></li>
|
||
<li>Input to output channel routing. The output speaker for each input channel of a signal can be set individually. By default, the routing for each input channels maps directly to the output equivalent.<br />
|
||
<img alt="Input to output channel routing" src="images/dsp-channelmix-routing.svg" /><br />
|
||
<em>In this example, a multi-channel input signal has its 6 channels of audio routed to custom speakers on the output.</em></li>
|
||
</ul>
|
||
<p>The channel mix effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Per channel gain - This has a range of -80 dB to +10 dB with a default of 0 dB. This can be set using the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_channelmix_gain_ch0">FMOD_DSP_CHANNELMIX_GAIN_CH0</a> through to <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_channelmix_gain_ch31">FMOD_DSP_CHANNELMIX_GAIN_CH31</a> parameters.</li>
|
||
<li>Output channel grouping - This is configurable via group modes such as 'all lfe', 'all mono', 'all stereo', and in-between speaker modes up to 'all 7.4.1', with a default of speaker mode in = speaker mode out. This can be set using the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_channelmix_output">FMOD_DSP_CHANNELMIX_OUTPUT</a> parameter.</li>
|
||
<li>Per channel speaker mapping - This allows for each input channel to specify an output speaker number for complex routing flexibility. Channel mapping for each channel can be set using the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_channelmix_output_ch0">FMOD_DSP_CHANNELMIX_OUTPUT_CH0</a> through to <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_channelmix_output_ch31">FMOD_DSP_CHANNELMIX_OUTPUT_CH31</a> parameters.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_channelmix">FMOD_DSP_TYPE_CHANNELMIX</a></p>
|
||
<h4 id="performance"><a href="#performance">Performance</a></h4>
|
||
<p>Channel mix is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<p>To avoid the bandwidth overhead of many <a href="glossary.html#stream">streams</a> playing at once, many streams can be interleaved into one using an external tool. The resulting file can then be streamed as a single sound, and the grouping feature can describe the sound as many lower channel count sounds.</p>
|
||
<hr />
|
||
<h3 id="chorus"><a href="#chorus">10.1.2 Chorus</a></h3>
|
||
<p>The chorus <a href="glossary.html#effect">effect</a> is often used in music, generated by interference of the source <a href="glossary.html#signal">signal</a> with delayed copies of the original that modulate their delay offsets over time. The effect works best on sounds which are sustaining in nature, and has a full / shimmering characteristic.</p>
|
||
<p>The chorus effect is characterized by a single delay line per channel of the signal, where each delay line oscillates its time offset in a sinusoidal manner, at a rate and range specified by the user.</p>
|
||
<p><img alt="Input to output channel routing" src="images/dsp-chorus-wave.svg" /><br />
|
||
<em>A signal (black) having a copy (grey) added to itself, at a delay that oscillates back and forth in time with a speed of </em><em>chorus rate</em><em>, to a maximum delay of </em><em>chorus depth</em><em>. The original and copy of itself are gain balanced so that the signal does not get louder.</em></p>
|
||
<p>In multi-channel signals each subsequent channel has its delay incremented by 90 degrees in the sinusoidal cycle, and wrapping around back to a 90 degree offset each time. i.e.</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Speaker Configuration</th>
|
||
<th></th>
|
||
<th></th>
|
||
<th></th>
|
||
<th></th>
|
||
<th></th>
|
||
<th></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>Stereo</strong></td>
|
||
<td>L = 90deg</td>
|
||
<td>R = 180deg</td>
|
||
<td></td>
|
||
<td></td>
|
||
<td></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Surround 5.1</strong></td>
|
||
<td>FL = 90deg</td>
|
||
<td>FR = 180deg</td>
|
||
<td>C = 270deg</td>
|
||
<td>LFE = 90deg</td>
|
||
<td>SL = 180deg</td>
|
||
<td>SR = 270deg</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>The chorus effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Depth - Delay used to achieve the effect. Has a range of 0 to 100ms with a default of 3 ms. Set with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_chorus_depth">FMOD_DSP_CHORUS_DEPTH</a> parameter.</li>
|
||
<li>Rate - Speed of oscillation. Has a range of 0 to 20 Hz with a default of 0.8 Hz. Set with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_chorus_rate">FMOD_DSP_CHORUS_RATE</a> parameter.</li>
|
||
<li>Mix - Percentage of effect applied to the input signal. The mix is a scale between the wet and the dry signal per channel, so that the loudness of the output stays consistent. Has a range of 0 to 100% with a default of 50%. Set with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_chorus_mix">FMOD_DSP_CHORUS_MIX</a> parameter.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_chorus">FMOD_DSP_TYPE_CHORUS</a></p>
|
||
<h4 id="performance_1"><a href="#performance_1">Performance</a></h4>
|
||
<p>Chorus is a <a href="effects-reference.html#current-effects">medium overhead</a> effect.</p>
|
||
<p>Chorus is a comb filter which means it uses extra memory to buffer audio.</p>
|
||
<hr />
|
||
<h3 id="compressor"><a href="#compressor">10.1.3 Compressor</a></h3>
|
||
<p>The compressor <a href="glossary.html#effect">effect</a> reduces the volume of loud sounds above a certain threshold, reducing or compressing an audio <a href="glossary.html#signal">signal</a>'s dynamic range.</p>
|
||
<p>The compressor reacts to the signal exceeding the 'threshold', which is a dB setting set by the user. If the signal exceeds this threshold a gain envelope is applied to the signal to reduce the signal by an amount specified as the 'ratio'.</p>
|
||
<p>The ratio is the fraction of the input level that is above the threshold, that the signal is reduced to in dB. If a ratio is set to 2, for every 2 dB above the threshold, the compressor only allows 1 dB above the threshold through. If a ratio is set to 4, for every 4 dB above the threshold, the compressor only allows 1 dB above the threshold through. The higher the ratio, the more audible and agressive it will be while a low ratio will provide gentler compression.</p>
|
||
<p>The reduction is controlled by a timed envelope which modifies the gain. The envelope has an attack and release period. The start of the attack happens when the threshold is exceeded. This can be set in milliseconds. Once the input signal level is below the threshold, the release stage starts will return the gain back to the starting value.</p>
|
||
<p><img alt="Compressor" src="images/dsp-compressor.svg" /><br />
|
||
A signal suddenly exceeding the threshold is aggressively gain reduced with a high ratio. Attack and release states of an envelope control the timing of the reduction and the return to the original level after the signal drops back below the threshold.*</p>
|
||
<p>Characteristics of the compressor effect:</p>
|
||
<ul>
|
||
<li>Uniform across the whole spectrum, so all frequencies are affected equally.</li>
|
||
<li>Analysis of the input signal to compare against threshold is 'peak sensing' and not 'RMS sensing'.</li>
|
||
<li>Envelope transitions are 'hard knee' which is the shape of the envelope when the attack and release phase start and stop.</li>
|
||
</ul>
|
||
<p>The compressor effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Threshold - The threshold level has a range of -80 dB to 0 dB and has a default of 0 dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_compressor_threshold">FMOD_DSP_COMPRESSOR_THRESHOLD</a>.</li>
|
||
<li>Ratio - The ratio has a range of 1 to 50 and has a default of 2.5. The higher the ratio the more aggressive the compression. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_compressor_ratio">FMOD_DSP_COMPRESSOR_RATIO</a>.</li>
|
||
<li>Linked mode - Multi-channel, so each individual channel reacts independently of each other. Linked Mode is also available which mixes all channels into a mono signal before processing. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_compressor_linked">FMOD_DSP_COMPRESSOR_LINKED</a>.</li>
|
||
<li>Side chain - Side chaining is available to allow an outside signal to control the level rather than the incoming signal. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_compressor_usesidechain">FMOD_DSP_COMPRESSOR_USESIDECHAIN</a>. To connect a sidechain to the compressor, the <a href="core-api-dsp.html">DSP API</a> is used to add another <a href="glossary.html#dsp">DSP</a> using <a class="apilink" href="core-api-dsp.html#dsp_addinput">DSP::addInput</a> and <a class="apilink" href="core-api-dspconnection.html#fmod_dspconnection_type_sidechain">FMOD_DSPCONNECTION_TYPE_SIDECHAIN</a>.</li>
|
||
<li>Attack speed - Attack speed of the gain envelope is available, having a range of 0.1 ms to 1000 ms with a default of 20 ms. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_compressor_attack">FMOD_DSP_COMPRESSOR_ATTACK</a>.</li>
|
||
<li>Release speed - Release speed of the gain envelope is available, having a range of 10 ms to 5000 ms with a default of 100 ms. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_compressor_release">FMOD_DSP_COMPRESSOR_RELEASE</a>.</li>
|
||
<li>Gain make-up - Gain make-up allows a constant gain to be applied at the output having a range of 0 dB to 30dB, with a default of 0 dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_compressor_gainmakeup">FMOD_DSP_COMPRESSOR_GAINMAKEUP</a>.</li>
|
||
</ul>
|
||
<div class="admonition warning">
|
||
<p>In a real-time audio engine, the compressor is not guaranteed to catch every peak above the threshold level, because it cannot apply gain reduction instantaneously. The time delay is determined by the attack time. However setting the attack time too short will distort the sound, so it is a compromise. High level peaks can be avoided by using a short attack time - but not too short, and setting the threshold a few decibels below the critical level.</p>
|
||
</div>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_compressor">FMOD_DSP_TYPE_COMPRESSOR</a></p>
|
||
<h4 id="performance_2"><a href="#performance_2">Performance</a></h4>
|
||
<p>Compressor is a <a href="effects-reference.html#current-effects">medium overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="convolution-reverb"><a href="#convolution-reverb">10.1.4 Convolution Reverb</a></h3>
|
||
<p>The convolution reverb <a href="glossary.html#effect">effect</a> is used to simulate an environment by processing audio with a recording of a real world location (the 'impulse response'), in order to reproduce the reverberation characteristics of that environment.</p>
|
||
<p>Convolution reverb differs to FMOD's <a class="apilink" href="#sfx-reverb">SFX Reverb</a>, in that it is not controlled by a set of parameters, but instead is set by an impulse response file, which has been previously recorded and supplied to the effect.</p>
|
||
<p>This has the advantage of reproducing a space's reverberation characteristics very faithfully, but has the disadvantage of not being flexible. The convolution reverb environment cannot be easily morphed into a different environment, <br />
|
||
compared to the <a class="apilink" href="#sfx-reverb">SFX Reverb</a> effect which can set different tuning parameters to get the desired result in realtime. A workaround for this might be to have more than 1 convolution reverb running and cross fade between them, but it will use more CPU power to do so.</p>
|
||
<p>Convolution reverb is a relatively expensive effect, due to it being processed in the frequency domain which includes costly spectral to time domain conversions and vice versa, as well as the process of convolving the input <a href="glossary.html#signal">signal</a> with the impulse response in real-time.</p>
|
||
<p>The convolution effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>The impulse - This must be <a href="glossary.html#sample-data">16 bit PCM</a>, and have the same sample rate as the output rate of the project / application. The impulse response data can supplied with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_convolution_reverb_param_ir">FMOD_DSP_CONVOLUTION_REVERB_PARAM_IR</a>.</li>
|
||
<li>Linked mode - The input signal is mixed down to mono by default before being convolved through the reverb processor. 1:1 channel mapping from input to impulse if possible is available through the channel linking feature. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_convolution_reverb_param_linked">FMOD_DSP_CONVOLUTION_REVERB_PARAM_LINKED</a>.</li>
|
||
<li>Mix - The mix of the convolved signal (wet) vs the original signal (dry) which both have a range of -80 dB to +10 dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_convolution_reverb_param_wet">FMOD_DSP_CONVOLUTION_REVERB_PARAM_WET</a> and <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_convolution_reverb_param_dry">FMOD_DSP_CONVOLUTION_REVERB_PARAM_DRY</a>.</li>
|
||
</ul>
|
||
<p>The output channel count of the <a href="glossary.html#dsp">DSP</a> is the channel count of the impulse response source.</p>
|
||
<h4 id="creation-of-an-impulse-response-for-use-with-the-convolution-reverb-effect"><a href="#creation-of-an-impulse-response-for-use-with-the-convolution-reverb-effect">Creation of an impulse response for use with the convolution reverb effect</a></h4>
|
||
<p>For Impulse response data, you can purchase/download professionally recorded space data and feed it straight into the FMOD convolution reverb effect, or you can make your own.</p>
|
||
<p><img alt="Impulse response" src="images/dsp-convolution-impulse.svg" /><br />
|
||
<em>A typical impulse starts with an exciter, such as a burst of noise, and then the resulting sound contains the reverberation of the exciter from the surrounding environment.</em></p>
|
||
<p>To make your own requires recording an 'impulse' (a burst of white noise or a longer sine wave sweep sound) in the space, and the idea is to record the resulting reverberation from the surroundings.</p>
|
||
<p>An impulse needs both power and full spectrum to capture the room’s full response. An ideal impulse cannot exist in reality, so an approximation is used, for example the popping of a balloon or a shot from a starter pistol.</p>
|
||
<p>The next step after this is to deconvolve the recording to produce an impulse response. 3rd party tools exist for this. When saving a response, for a 3D real-time environment it is best to use a monophonic (1 channel) impulse, as you do not want directionality baked into the impulse itself. FMOD's 3D engine will position sounds in 3D an pan them in any speakers, and because of the nature of reverb, any directionality is generally lost in the real world.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_convolutionreverb">FMOD_DSP_TYPE_CONVOLUTIONREVERB</a></p>
|
||
<h4 id="performance_3"><a href="#performance_3">Performance</a></h4>
|
||
<p>Convolution reverb is a <a href="effects-reference.html#current-effects">high overhead</a> effect.</p>
|
||
<p>Although it is a high overhead effect in nature, FMOD's convolution engine has been highly optimized to use platform specific vector processing, as well as multiple CPU threads to reduce impact on the main <a href="white-papers-threads.html#mixer-thread">DSP mixing thread</a>.</p>
|
||
<p>To save CPU time and memory, the shorter an impulse response is, the faster it will be. Longer impulses use larger amounts of CPU time.</p>
|
||
<hr />
|
||
<h3 id="delay"><a href="#delay">10.1.5 Delay</a></h3>
|
||
<p>The delay <a href="glossary.html#effect">effect</a> is used to delay individual channels of a <a href="glossary.html#signal">signal</a>. It is simpler than an echo, and is used to manipulate the timing of multi-channel signals with greater control.</p>
|
||
<p>The delay effect is achieved by storing the signal for each channel then playing it back after periods of time specified by the user.</p>
|
||
<p><img alt="Delay" src="images/dsp-delay-wave.svg" /><br />
|
||
<em>A stereo signal having its left and right channel delayed into the mix with different delay lengths.</em></p>
|
||
<p>The delay effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Per channel delay. Each channel can have its own delay, up to 16 channels, with a range of 0 to 10 seconds and a default of 0. Set with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_delay_ch0">FMOD_DSP_DELAY_CH0</a> to <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_delay_ch15">FMOD_DSP_DELAY_CH15</a> parameters.</li>
|
||
<li>Maximum delay. Because delay requires buffering of audio signals, a maximum delay can be set to control memory usage. Per channel delay must be smaller or equal to this value. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_delay_maxdelay">FMOD_DSP_DELAY_MAXDELAY</a> parameter.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_delay">FMOD_DSP_TYPE_DELAY</a></p>
|
||
<h4 id="performance_4"><a href="#performance_4">Performance</a></h4>
|
||
<p>Delay is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<p>Delay is a stores a history which means it uses more memory due to the buffering of audio signals. Control maximum delay lengths with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_delay_maxdelay">FMOD_DSP_DELAY_MAXDELAY</a>.</p>
|
||
<hr />
|
||
<h3 id="distortion"><a href="#distortion">10.1.6 Distortion</a></h3>
|
||
<p>The distortion <a href="glossary.html#effect">effect</a> is used to alter the shape of a <a href="glossary.html#signal">signal</a> to make it 'noisier'. Among other things, distortion may be used to simulate low quality equipment or a low quality communications channel.</p>
|
||
<p>The effect is achieved by amplifying then clipping the signal at levels controlled by the user. The loudness characteristic of the distortion is not levelled, and may need an additional fader to compensate for the increased loudness.</p>
|
||
<p><img alt="Distortion" src="images/dsp-distortion-wave.svg" /><br />
|
||
<em>A signal being distorted with some compensation afterwards to bring the loudness of the output into line with the input.</em></p>
|
||
<p>The distortion effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Distortion level - The amount of distortion is controlled by with one parameter with a range between 0 (none) and 1 (full) and a default of 0.5. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_distortion_level">FMOD_DSP_DISTORTION_LEVEL</a>.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_distortion">FMOD_DSP_TYPE_DISTORTION</a></p>
|
||
<h4 id="performance_5"><a href="#performance_5">Performance</a></h4>
|
||
<p>Distortion is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="echo"><a href="#echo">10.1.7 Echo</a></h3>
|
||
<p>The echo <a href="glossary.html#effect">effect</a> simulates the reflection of a sound that arrives with a delay after the initial sound is heard. With feedback, it can then continue to be heard at a diminished volume level until the sound fully attenuates. This effect is a cheaper, simple way to simulate an environment and its early / harsher reflections than a full reverb effect.</p>
|
||
<p>Echo is achieved by mixing the incoming <a href="glossary.html#signal">signal</a> into an echo buffer at an offset determined by the delay time, and then mixing that buffer back into the original input signal with a volume level determined by the feedback.</p>
|
||
<p><img alt="Distortion" src="images/dsp-echo-wave.svg" /><br />
|
||
<em>A short sound playing (black) and its delayed copy playing back, then continuing to feed itself back in with the same delay each time, but with diminished power.</em></p>
|
||
<p>The echo effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Delay - The time taken to hear an echo of the original signal is specified with the 'delay' parameter, which ranges between 10ms and 5000ms and has a default of 500ms. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_echo_delay">FMOD_DSP_ECHO_DELAY</a>.</li>
|
||
<li>Feedback - The amount of the signal fed back into the echo buffer after the initial delay is specified with the 'feedback' parameter, which is defined as a percentage between 0% and 100%, with a default of 50%. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_echo_feedback">FMOD_DSP_ECHO_FEEDBACK</a>.</li>
|
||
<li>Wet Mix and Dry Mix - Wet and dry mix of the echo effect can be set separately, which both have a range of -80 dB to +10 dB and a default of 0 dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_echo_drylevel">FMOD_DSP_ECHO_DRYLEVEL</a> and <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_echo_wetlevel">FMOD_DSP_ECHO_WETLEVEL</a>.</li>
|
||
<li>Delay Change Mode - The method used to smooth delay changes. Ramp will fade-in the new delay value and fade-out the old delay value. Lerp will use linear interpolation to approach the new delay target. None will disable value smoothing between delay changes. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_echo_delaychangemode">FMOD_DSP_ECHO_DELAYCHANGEMODE</a>.</li>
|
||
</ul>
|
||
<p>The outgoing channel count of the echo effect is always be the same as the number coming in.<br />
|
||
Due to the initial delay tap having no attenuation, simulating attenuation from the first tap onwards can be done by scaling the whole effect with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_echo_wetlevel">FMOD_DSP_ECHO_WETLEVEL</a> parameter.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_echo">FMOD_DSP_TYPE_ECHO</a></p>
|
||
<h4 id="performance_6"><a href="#performance_6">Performance</a></h4>
|
||
<p>Echo is a <a href="effects-reference.html#current-effects">medium overhead</a> effect.</p>
|
||
<p>Echo is a comb filter which means it uses extra memory to buffer audio.</p>
|
||
<hr />
|
||
<h3 id="fader"><a href="#fader">10.1.8 Fader</a></h3>
|
||
<p>The fader <a href="glossary.html#effect">effect</a> is used to scale the volume of a <a href="glossary.html#signal">signal</a>. Its <a href="glossary.html#dsp">DSP</a> is used commonly, both by <a class="apilink" href="core-api-channel.html">Channel</a>s and <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a>s as their main source of volume control and by <a href="glossary.html#fmod-studio">FMOD Studio</a>'s gain effect.</p>
|
||
<p>The fader effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Gain - The fader can attenuate the signal, potentially even to silence, or amplify it. This gain value has a range of -80 dB to +10 dB with a default of 0 dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fader_gain">FMOD_DSP_FADER_GAIN</a>.</li>
|
||
<li>Overall gain - The fader can be used as a source of information to query the overall attenuation of the signal. Get with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fader_overall_gain">FMOD_DSP_FADER_OVERALL_GAIN</a>.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_fader">FMOD_DSP_TYPE_FADER</a></p>
|
||
<h4 id="performance_7"><a href="#performance_7">Performance</a></h4>
|
||
<p>Fader is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="fft"><a href="#fft">10.1.9 FFT</a></h3>
|
||
<p>The FFT (Fast Fourier Transform) <a href="glossary.html#effect">effect</a> analyzes the <a href="glossary.html#signal">signal</a> and provides information about its frequency spectrum. This can be used to provide information about the dominant pitch of a sound (for pitch detection), or for display or measurement of the power of different parts of the spectrum at the same time.</p>
|
||
<p>The FFT <a href="glossary.html#dsp">DSP</a> is a process that converts a time domain signal to a frequency domain representation in real time.</p>
|
||
<p><img alt="FFT" src="images/dsp-fft-process.png" /><br />
|
||
<em>A sine wave playing at 20hz in the time domain (top) and a spectrum representation (bottom) of the same wave after an FFT has processed it.</em></p>
|
||
<p>The FFT effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Block Size - The FFT analyzes the signal in blocks of samples. The block size is a power of 2 between 128 and 16384, with a default setting of 2048. The size has a trade-off of accuracy vs cpu expense and latency. Smaller blocks are more efficient and have lower latency, but have less results, so are coarser in their accuracy. Larger blocks are less efficient and have higher latency, but have more data and are better in their accuracy. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_windowsize">FMOD_DSP_FFT_WINDOWSIZE</a>. </li>
|
||
<li>Windowing - Each time a block is processed, the FFT must taper the start and end to avoid unwanted spectral leakage or transient signals interfering with the analysis. This is done by applying a window to the data before processing it. The default window type is the 'Hamming' type. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_window">FMOD_DSP_FFT_WINDOW</a>.</li>
|
||
<li>Analysis band - The effect calculates RMS and spectral centroid values for frequencies within the analysis band. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_band_start_freq">FMOD_DSP_FFT_BAND_START_FREQ</a> and <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_band_stop_freq">FMOD_DSP_FFT_BAND_STOP_FREQ</a>.</li>
|
||
<li>Multichannel signals - The effect can analyze all channels of the signal independently, just analyze a single channel, or downmix to a single channel before analysis. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_downmix">FMOD_DSP_FFT_DOWNMIX</a> and <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_channel">FMOD_DSP_FFT_CHANNEL</a>.</li>
|
||
<li>Spectrum data - The spectrum data can be retrieved as an array of signal power values, one for each frequency interval. Get with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_spectrumdata">FMOD_DSP_FFT_SPECTRUMDATA</a>. </li>
|
||
<li>RMS - This is a single representative value, calculated as the sum of the signal power values within the analysis band. Get with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_rms">FMOD_DSP_FFT_RMS</a>.</li>
|
||
<li>Spectral centroid - This is a single representative value, calculated as a weighted average of the frequency components within the analysis band. Useful for simple pitch detection. Get with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_spectral_centroid">FMOD_DSP_FFT_SPECTRAL_CENTROID</a>.</li>
|
||
<li>Immediate mode - Use this to control how the data is processed. When set to true, data requests will have no delay on first time use, and no hardware acceleration will be used. When set to false, data requests will have a delay on first time use and hardware acceleration, if available, will be used. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_immediate_mode">FMOD_DSP_FFT_IMMEDIATE_MODE</a>.</li>
|
||
</ul>
|
||
<p>Cyclic signals such as a sine wave that repeat their cycle in a multiple of the window size do not need windowing. I.e. If the sine wave repeats every 1024, 512, 256 etc samples and the FMOD FFT window is 1024, then the signal would not need windowing. Not windowing is represented by <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_window_rect">FMOD_DSP_FFT_WINDOW_RECT</a>.</p>
|
||
<p>For more natural sounds, and more complex sounds, different window shapes can be used which are supported by this effect. See <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_fft_window_type">FMOD_DSP_FFT_WINDOW_TYPE</a> for a list of window types and examples of their shapes.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_fft">FMOD_DSP_TYPE_FFT</a></p>
|
||
<h4 id="performance_8"><a href="#performance_8">Performance</a></h4>
|
||
<p>FFT is a <a href="effects-reference.html#current-effects">high overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="flange"><a href="#flange">10.1.10 Flange</a></h3>
|
||
<p>The flange <a href="glossary.html#effect">effect</a> is generated by interference of the <a href="glossary.html#signal">signal</a> with a single delayed copy of that signal that slowly modulates its delay offset over time. This produces a wooshing, sweeping effect. Typically used in music, it can also be used to create an otherworldly repetitive effect for atmosphere.</p>
|
||
<p>In this effect a copy of the incoming signal is delayed and mixed back in at a varying offset that cycles on a sinusoidal shape. The delay has a maximum depth of 10ms. As there are 2 versions of the same signal, by default each signal is given 50% mix, so that the total loudness is generally not louder than the original signal.</p>
|
||
<p><img alt="Flange" src="images/dsp-flange-wave.svg" /><br />
|
||
<em>A sound being fed in (black) and the gain reduced version (grey) being added to a copy (grey) at a delay that changes over time, according to a sinusoidal shape. The delay has an adjustable rate and depth.</em></p>
|
||
<p>The flange effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Depth - This can be set between 0.01 and 1, with a default of 1. A value of 1 represents around 10 ms shift from the original signal. Anything above 10ms is not considered flange because to the ear it begins to 'echo' so 10ms is the highest value possible. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_flange_depth">FMOD_DSP_FLANGE_DEPTH</a>.</li>
|
||
<li>Rate - Flange rate is measured in Hz and has a range of 0 to 20 Hz, with a default of 0.1 Hz. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_flange_rate">FMOD_DSP_FLANGE_RATE</a>.</li>
|
||
<li>Mix - Flange balance is the mix between the original signal and the delayed copy, with a range of 0% to 100%, with a default to 50%. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_flange_mix">FMOD_DSP_FLANGE_MIX</a>.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_flange">FMOD_DSP_TYPE_FLANGE</a></p>
|
||
<h4 id="performance_9"><a href="#performance_9">Performance</a></h4>
|
||
<p>Flange is a <a href="effects-reference.html#current-effects">medium overhead</a> effect.</p>
|
||
<p>Flange is a comb filter which means it uses extra memory to buffer audio.</p>
|
||
<hr />
|
||
<h3 id="it-echo"><a href="#it-echo">10.1.11 IT Echo</a></h3>
|
||
<p>The IT echo <a href="glossary.html#effect">effect</a> is a variation of the original <a class="apilink" href="#echo">echo</a> effect, which simulates the reflection of a sound that arrives with a delay after the initial sound is heard. With feedback it can then continue to be heard at a diminished volume level until the sound fully attenuates.</p>
|
||
<p>This version of echo is stereo only, but has a variable delay per channel, and allows bouncing the echo from left to right speakers and vice versa. It was originally introduced to support the type of echo used in <a href="https://en.wikipedia.org/wiki/Impulse_Tracker">.IT</a> music files.</p>
|
||
<p>This echo variation originated to support <a href="https://en.wikipedia.org/wiki/Impulse_Tracker">.IT</a> music files. The effect emulates in software, the Microsoft Direct X echo which is the employed by the <a href="https://openmpt.org">Mod Plug Tracker program</a>.</p>
|
||
<p>The IT echo effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Left / right delay - As this is a stereo filter made intended for .IT playback, it is targeted for stereo <a href="glossary.html#signal">signals</a>. With mono signals only the left delay is used. For multi-channel signals (>2) there is no echo on the extra channels. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_itecho_leftdelay">FMOD_DSP_ITECHO_LEFTDELAY</a> and <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_itecho_rightdelay">FMOD_DSP_ITECHO_RIGHTDELAY</a>.</li>
|
||
<li>Pan Delay - Panning of the stereo delays can be set to ping-pong left and right with each successive echo. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_itecho_pandelay">FMOD_DSP_ITECHO_PANDELAY</a>.</li>
|
||
<li>Feedback level - Amount of output signal that is passed back in as an input signal in successive updates. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_itecho_feedback">FMOD_DSP_ITECHO_FEEDBACK</a></li>
|
||
<li>Wet / Dry mix - Percentage of input signal vs processed signal that is sent to output. By default the percentage is set to 50 for an even mix, with 0 being no effect passed to output, with 100 being no original dry signal passed to the output. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_itecho_wetdrymix">FMOD_DSP_ITECHO_WETDRYMIX</a></li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_itecho">FMOD_DSP_TYPE_ITECHO</a></p>
|
||
<div class="admonition warning">
|
||
<p>This echo does not have interpolation between changes in delay, which means every time the delay is changed the echo buffer is cleared and a period of silence will occur.</p>
|
||
</div>
|
||
<h4 id="performance_10"><a href="#performance_10">Performance</a></h4>
|
||
<p>IT Echo is a <a href="effects-reference.html#current-effects">medium overhead</a> effect.</p>
|
||
<p>Echo is a comb filter which means it uses extra memory to buffer audio.</p>
|
||
<hr />
|
||
<h3 id="it-low-pass"><a href="#it-low-pass">10.1.12 IT Low Pass</a></h3>
|
||
<p>The IT low pass <a href="glossary.html#effect">effect</a> is used to attenuate or remove high frequencies in a <a href="glossary.html#signal">signal</a>, controlled with a cutoff frequency that is specified by the user. The resonance attribute or 'Q' value of the filter can also be specified, to affect the gain of the signal at the cutoff frequency, to further alter the characteristics of the sound.</p>
|
||
<p>This low pass variation originated to support <a href="https://en.wikipedia.org/wiki/Impulse_Tracker">.IT</a> music files. The effect emulates low pass filter effect employed by the Impulse Tracker program.</p>
|
||
<p>Characteristics of the IT low pass effect:</p>
|
||
<ul>
|
||
<li>This is different to the default <a href="#low-pass">Low Pass</a>, <a href="#multiband-equalizer">Multi Band Equalizer</a> or <a href="#low-pass-simple">Low Pass Simple</a> effects in that it uses a different quality algorithm and is the filter used to produce the correct sounding playback in .IT files.</li>
|
||
<li>This filter actually has a limited cutoff frequency below the specified maximum, due to its limited design (8060hz), so for a more open range filter use <a href="#low-pass">Low Pass</a>, <a href="#multiband-equalizer">Multi Band Equalizer</a> or for a filter with no resonance control, <a href="#low-pass-simple">Low Pass Simple</a>.</li>
|
||
</ul>
|
||
<p>The IT low pass effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Cutoff frequency - The frequency for the low pass filter ranges between 1 Hz and 22 kHz with a default of 5 kHz. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_itlowpass_cutoff">FMOD_DSP_ITLOWPASS_CUTOFF</a>.</li>
|
||
<li>Resonance - The low pass resonance or Q value is a linear value that ranges between 0 and 127 with a default of 1. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_itlowpass_resonance">FMOD_DSP_ITLOWPASS_RESONANCE</a>.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_itlowpass">FMOD_DSP_TYPE_ITLOWPASS</a></p>
|
||
<h4 id="performance_11"><a href="#performance_11">Performance</a></h4>
|
||
<p>IT low pass is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="limiter"><a href="#limiter">10.1.13 Limiter</a></h3>
|
||
<p>The limiter <a href="glossary.html#effect">effect</a> prevents the <a href="glossary.html#signal">signal</a> from exceeding a certain amplitude. Originally limiters were used to quickly avoid audio from overworking electronics and damaging them. Now they are used to control dynamics and avoid noisy clipping.</p>
|
||
<p><img alt="Limiter in action" src="images/dsp-limiter-signals.svg" /><br />
|
||
<em>When the input signal exceeds a threshold (the ceiling), it immediately reduces the gain to avoid clipping or excessive loudness. When the input signal returns to a level underneath the ceiling, the gain is not immediately returned to normal, it is ramped back with a release envelope.</em></p>
|
||
<p>The Limiter effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Ceiling - The FMOD limiter is a hard limiter, which detects peaks and immediately limits them by scaling the whole signal to stay within the ceiling. The ceiling has a range of -12 dB to 0 dB and has a default of 0 dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_limiter_ceiling">FMOD_DSP_LIMITER_CEILING</a>.</li>
|
||
<li>When peaks drop below the desired ceiling setting, the scale applied downwards to the signal is gradually reduced or released over the time specified in the release. The release time has a range of 1 ms to 1000 ms with a default of 10ms. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_limiter_releasetime">FMOD_DSP_LIMITER_RELEASETIME</a>.</li>
|
||
<li>Linked mode - The processing mode for the effect can be 'linked' which means all channels in a signal are summed together and treated as mono first (no per channel processing), or 'unlinked' which is the default and is individual processing per channel. The default setting is unlinked. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_limiter_mode">FMOD_DSP_LIMITER_MODE</a>.</li>
|
||
<li>Maximizer gain - The input signal can have a gain applied to it which is overridden by the ceiling, making the signal louder but reducing dynamic range. The maximizer gain has a range of 0 dB to +12 dB with a default of 0 dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_limiter_maximizergain">FMOD_DSP_LIMITER_MAXIMIZERGAIN</a>.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_limiter">FMOD_DSP_TYPE_LIMITER</a></p>
|
||
<h4 id="performance_12"><a href="#performance_12">Performance</a></h4>
|
||
<p>Limiter is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="multiband-dynamics"><a href="#multiband-dynamics">10.1.14 Multiband Dynamics</a></h3>
|
||
<p>Three band dynamic processor. This effect is used to dynamically attenuate and amplify frequencies within each band based on the envelope of the <a href="glossary.html#sample-data">signal</a>.</p>
|
||
<p>The multiband dynamics effect processes each channel of the incoming signal by splitting it into one of three frequency bands, applying dynamic processing to each band individually, and combining the resulting bands back together.</p>
|
||
<p>The available dynamic processing operations are:</p>
|
||
<ul>
|
||
<li><strong>Downward Compression:</strong> Attenuates the signal when it is above a defined threshold, by a factor determined by the ratio.<br />
|
||
<img alt="Downward Compression" src="images/dynamic-response-compress-down.svg" title="Downward Compresion" /><br />
|
||
<em>Dynamic response shown in red, depicting the output signal decreasing in response to input values above the threshold.</em><br />
|
||
This is the mode that the existing FMOD Compressor uses, and is useful for bringing down harsh percussive sounds, such as plosives and sibilance in the upper frequency range.<br />
|
||
Select with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_multiband_dynamics_mode_compress_down">FMOD_DSP_MULTIBAND_DYNAMICS_MODE_COMPRESS_DOWN</a>.</li>
|
||
<li><strong>Upward Compression:</strong> Amplifies the signal when it is below a defined threshold, by a factor determined by the ratio.<br />
|
||
<img alt="Upward Compression" src="images/dynamic-response-compress-up.svg" title="Upward Compresion" /><br />
|
||
<em>Dynamic response shown in red, depicting the output signal increasing in response to input values below the threshold.</em><br />
|
||
Upward Compression can be useful for bringing out quieter details in sounds, such as breath in the middle frequency range of vocals, or fret noise in the upper frequency range of a guitar.<br />
|
||
Select with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_multiband_dynamics_mode_compress_up">FMOD_DSP_MULTIBAND_DYNAMICS_MODE_COMPRESS_UP</a>.</li>
|
||
<li><strong>Downward Expansion:</strong> Attenuates the signal when it is below a defined threshold, by a factor determined by the ratio.<br />
|
||
<img alt="Downward Expansion" src="images/dynamic-response-expand-down.svg" title="Downward Expansion" /><br />
|
||
<em>Dynamic response shown in red, depicting the output signal decreasing in response to input values below the threshold.</em><br />
|
||
Downward Epansion be useful for removing noise in the signal, such as bird chirps in the upper frequency range, or room tone in the lower frequency range.<br />
|
||
Select with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_multiband_dynamics_mode_expand_down">FMOD_DSP_MULTIBAND_DYNAMICS_MODE_EXPAND_DOWN</a>.</li>
|
||
<li><strong>Upward Expansion:</strong> Amplifies the signal when it is above a defined threshold, by a factor determined by the ratio.<br />
|
||
<img alt="Upward Expansion" src="images/dynamic-response-expand-up.svg" title="Upward Expansion" /><br />
|
||
<em>Dynamic response shown in red, depicting the output signal increasing in response to input values above the threshold.</em><br />
|
||
Upward Expansion can easily cause clipping, so use with caution, but can be useful for bringing percussive sounds forward, such as snares in the upper frequency range or explosions in the lower frequency range.<br />
|
||
Select with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_multiband_dynamics_mode_expand_up">FMOD_DSP_MULTIBAND_DYNAMICS_MODE_EXPAND_UP</a>.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_multiband_dynamics">FMOD_DSP_TYPE_MULTIBAND_DYNAMICS</a></p>
|
||
<h4 id="performance_13"><a href="#performance_13">Performance</a></h4>
|
||
<p>Multiband Dynamics is a <a href="effects-reference.html#current-effects">medium overhead</a> effect. When a band is collpased it will not be processed, reducing CPU overhead of the effect.</p>
|
||
<hr />
|
||
<h3 id="multiband-equalizer"><a href="#multiband-equalizer">10.1.15 Multiband Equalizer</a></h3>
|
||
<p>A flexible five band parametric equalizer. This <a href="glossary.html#effect">effect</a> is used to attenuate and accentuate frequencies for greater control over frequency shaping within a <a href="glossary.html#signal">signal</a>.</p>
|
||
<p>The multiband equalizer effect processes each channel of the incoming signal by passing it through up to 5 selectable filter types in series (one after another) from A to E.</p>
|
||
<p><img alt="Multiband EQ curves" src="images/dsp-multibandeq-bands.svg" /><br />
|
||
<em>Frequency response curve shown in red (phase response in gray) with three enabled filter types. (A) 12dB high-pass filter set at 70Hz. (B) Peaking filter set at 1kHz. (C) 24dB low-pass filter set at 10kHz.</em></p>
|
||
<p>The different filter types selectable are:</p>
|
||
<ul>
|
||
<li><strong>Low-pass:</strong> Resonant filter that attenuates frequencies above the specified cutoff frequency at a rate of 12dB, 24dB or 48dB per octave. Specified Q (quality factor) controls the resonance of the effect which is a linear gain applied at the cutoff frequency, the default of 0.707 ensures no signal boost below to the cutoff frequency. The 6dB option does not have the Q factor option.<br />
|
||
Select with <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_lowpass_6db">FMOD_DSP_MULTIBAND_EQ_FILTER_LOWPASS_6DB</a>, <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_lowpass_12db">FMOD_DSP_MULTIBAND_EQ_FILTER_LOWPASS_12DB</a>, <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_lowpass_24db">FMOD_DSP_MULTIBAND_EQ_FILTER_LOWPASS_24DB</a> or <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_lowpass_48db">FMOD_DSP_MULTIBAND_EQ_FILTER_LOWPASS_48DB</a></li>
|
||
<li><strong>High-pass:</strong> Resonant filter that attenuates frequencies below the specified cutoff frequency at a rate of 12dB, 24dB or 48dB per octave. Specified Q (quality factor) controls the resonance of the effect which is a linear gain applied at the cutoff frequency, the default of 0.707 ensures no signal boost above the cutoff frequency. The 6dB option does not have the Q factor option.<br />
|
||
Select with <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_highpass_6db">FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHPASS_6DB</a>, <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_highpass_12db">FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHPASS_12DB</a>, <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_highpass_24db">FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHPASS_24DB</a> or <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_highpass_48db">FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHPASS_48DB</a></li>
|
||
<li><strong>Low-shelf:</strong> Filter that boosts or attenuates lower frequencies to a specified gain amount. The transition slope is fixed at the steepest possible to achieve half the desired gain modification at the specific midpoint frequency.<br />
|
||
Select with <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_lowshelf">FMOD_DSP_MULTIBAND_EQ_FILTER_LOWSHELF</a>.</li>
|
||
<li><strong>High-shelf:</strong> Filter that boosts or attenuates higher frequencies to a specified gain amount. The transition slope is fixed at the steepest possible to achieve half the desired gain modification at the specific midpoint frequency.<br />
|
||
Select with <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_highshelf">FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHSHELF</a>.</li>
|
||
<li><strong>Peaking:</strong> Filter that boosts or attenuates frequencies at a specified center frequency by a specified gain amount. Specified Q (quality factor) controls the bandwidth of the effect which governs how narrow or broad the affected frequency range is.<br />
|
||
Select with <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_peaking">FMOD_DSP_MULTIBAND_EQ_FILTER_PEAKING</a>.</li>
|
||
<li><strong>Band-pass:</strong> Filter that attenuates frequencies surrounding a specified center frequency. Specified Q (quality factor) controls how sharply the frequencies attenuate.<br />
|
||
Select with <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_bandpass">FMOD_DSP_MULTIBAND_EQ_FILTER_BANDPASS</a>.</li>
|
||
<li><strong>Notch:</strong> Filter that attenuates frequencies at a specified center frequency. Specified Q (quality factor) controls the bandwidth of the effect which governs how narrow or broad the affected frequency range is.<br />
|
||
Select with <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_notch">FMOD_DSP_MULTIBAND_EQ_FILTER_NOTCH</a>.</li>
|
||
<li><strong>All-pass:</strong> Filter that modifies the phase response at the specified frequency. Specified Q (quality factor) controls the sharpness of the phase transition.<br />
|
||
Select with <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_filter_allpass">FMOD_DSP_MULTIBAND_EQ_FILTER_ALLPASS</a>.</li>
|
||
</ul>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> The 5 bands (A to E) can have the relative <strong>Frequency</strong>, <strong>Q (quality factor)</strong> or <strong>Gain</strong> values for a filter type with the following API parameters.</p>
|
||
<p><strong>Frequency</strong><br />
|
||
A - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_a_frequency">FMOD_DSP_MULTIBAND_EQ_A_FREQUENCY</a><br />
|
||
B - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_b_frequency">FMOD_DSP_MULTIBAND_EQ_B_FREQUENCY</a><br />
|
||
C - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_c_frequency">FMOD_DSP_MULTIBAND_EQ_C_FREQUENCY</a><br />
|
||
D - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_d_frequency">FMOD_DSP_MULTIBAND_EQ_D_FREQUENCY</a><br />
|
||
E - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_e_frequency">FMOD_DSP_MULTIBAND_EQ_E_FREQUENCY</a></p>
|
||
<p><strong>Q (quality factor)</strong><br />
|
||
A - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_a_q">FMOD_DSP_MULTIBAND_EQ_A_Q</a><br />
|
||
B - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_b_q">FMOD_DSP_MULTIBAND_EQ_B_Q</a><br />
|
||
C - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_c_q">FMOD_DSP_MULTIBAND_EQ_C_Q</a><br />
|
||
D - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_d_q">FMOD_DSP_MULTIBAND_EQ_D_Q</a><br />
|
||
E - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_e_q">FMOD_DSP_MULTIBAND_EQ_E_Q</a></p>
|
||
<p><strong>Gain</strong><br />
|
||
A - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_a_gain">FMOD_DSP_MULTIBAND_EQ_A_GAIN</a><br />
|
||
B - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_b_gain">FMOD_DSP_MULTIBAND_EQ_B_GAIN</a><br />
|
||
C - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_c_gain">FMOD_DSP_MULTIBAND_EQ_C_GAIN</a><br />
|
||
D - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_d_gain">FMOD_DSP_MULTIBAND_EQ_D_GAIN</a><br />
|
||
E - <a href="core-api-common-dsp-effects.html#fmod_dsp_multiband_eq_e_gain">FMOD_DSP_MULTIBAND_EQ_E_GAIN</a></p>
|
||
</div>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_multiband_eq">FMOD_DSP_TYPE_MULTIBAND_EQ</a></p>
|
||
<h4 id="performance_14"><a href="#performance_14">Performance</a></h4>
|
||
<p>Multiband EQ is a <a href="effects-reference.html#current-effects">low overhead</a> to <a href="effects-reference.html#current-effects">medium overhead</a> effect.</p>
|
||
<p>Each band of the effect is a separate filter that carries the same CPU cost regardless of fundamental type (except 24dB / 48dB variations - see below). Performance scales linearly as each band is enabled, i.e. running the effect with two enabled filters costs twice the CPU performance of running with a single filter enabled. If the signal has multiple channels performance scales approximately linearly with the channel count with some reductions due to multi-channel optimizations.</p>
|
||
<p>Some filter types have 12, 24 or 48 dB (decibel) variations, these variations indicate the filter is run once (12dB), twice (24dB) or four times (48dB) to achieve steeper roll off curves. As with all the provided filter types, performance scales linearly with the number of times the filter is run, therefore a 48dB filter (which runs four times) has approximately four times the CPU cost as a single 12dB filter with some reduction due to optimizations. The 6dB variation runs once like the 12dB version, but is slightly faster.</p>
|
||
<hr />
|
||
<h3 id="normalize"><a href="#normalize">10.1.16 Normalize</a></h3>
|
||
<p>Normalize amplifies the sound based on the maximum peaks within the <a href="glossary.html#signal">signal</a>. This is used to increase the loudness of a signal to a uniform maximum level.</p>
|
||
<p>The normalize filter analyzes the signal in realtime and scales the output based on maximum peaks detected. The lower limit of peak detection, and upper scale multiplier can be controlled by the user.</p>
|
||
<p>The normalize <a href="glossary.html#effect">effect</a> is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Fade time - To avoid reacting too quickly to sudden changes, the process occurs over a longer time to avoid pops and sudden bursts of noise. The duration is controlled with the normalize 'fade time' parameter which has a range of 0 to 20,000 ms, with a default of 5000 ms. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_normalize_fadetime">FMOD_DSP_NORMALIZE_FADETIME</a>.</li>
|
||
<li>Threshold - Below certain signal levels, normalization is not desired. A low level signal that is normalized by its small peaks may cause excessive amplification of things like background hiss so a threshold setting can be used. The Threshold setting ranges from 0 to 1 as a linear value, with a default of 0.1. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_normalize_threshold">FMOD_DSP_NORMALIZE_THRESHOLD</a>.</li>
|
||
<li>Maximum Amplification - To avoid excessive amplification, a limit can be set on the maximum amplification factor. Maximum amplification has a range of 1 to 100,000 with a default of 20. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_normalize_maxamp">FMOD_DSP_NORMALIZE_MAXAMP</a>.</li>
|
||
</ul>
|
||
<p>By default the normalizer takes the highest peak value and scale it to 0 dB, scaling the rest of the signal by the same scale factor.</p>
|
||
<p><img alt="Normalize in action" src="images/dsp-normalize-signals.svg" /><br />
|
||
<em>A signal with low gain having its gain slowly increased until it reaches a ceiling level.</em></p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_normalize">FMOD_DSP_TYPE_NORMALIZE</a></p>
|
||
<h4 id="performance_15"><a href="#performance_15">Performance</a></h4>
|
||
<p>Normalize is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="object-panner"><a href="#object-panner">10.1.17 Object Panner</a></h3>
|
||
<p>The object panner <a href="glossary.html#effect">effect</a> is specifically designed to work with 3D platform-specific technologies such as Windows Sonic, PlayStation VR, and Dolby Atmos. It functions by routing the <a href="glossary.html#signal">signal</a> and the event's 3D positional information directly to a hardware device, instead of through the <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a>s and <a href="glossary.html#dsp">DSPs</a> into which the signal is nominally routed.</p>
|
||
<div class="admonition note">
|
||
<p><a href="glossary.html#fmod-studio">FMOD Studio</a> and the <a href="https://fmod.com/docs/2.03/studio">FMOD Studio User Manual</a> refer to this effect as an 'Object Spatializer'.</p>
|
||
</div>
|
||
<p>As a result of the signal bypassing the mixer, the signal does not encounter any effects or sends "downstream" of the object panner. Unlike the <a href="#pan">Pan</a> effect or built in Core API <a href="core-guide.html#3d-sound-and-spatialization">panning</a>, the object panner does not automatically up-mix the signal to your project's surround speaker mode.</p>
|
||
<p>Signals processed by this effect are sent to the global object mixer (effectively a send), any DSP connected after this will receive silence.</p>
|
||
<p><img alt="Object panner bypassing mixer" src="images/dsp-objectpanner-diagram.svg" /><br />
|
||
<em>The signal flow above shows that the object panner sends the signal to the final output, bypassing the mixing engine.</em></p>
|
||
<p>For best results this effect should be used with <a href="core-api-system.html#fmod_outputtype_winsonic">Win Sonic</a> or <a href="core-api-system.html#fmod_outputtype_audio3d">Audio 3D</a> to get height panning. Playback with any other output results in fallback panning.</p>
|
||
<div class="admonition note">
|
||
<p>For a description of the parameters for an Object Panner, see the <a href="#pan">Panner</a> effect reference as it shares a subset of the same parameters.</p>
|
||
</div>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_objectpan">FMOD_DSP_TYPE_OBJECTPAN</a></p>
|
||
<h4 id="performance_16"><a href="#performance_16">Performance</a></h4>
|
||
<p>Object Panner is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="oscillator"><a href="#oscillator">10.1.18 Oscillator</a></h3>
|
||
<p>The Oscillator <a href="glossary.html#effect">effect</a> is a pure tone generator. It can be used to generate a variety of wave form shapes such as sine, saw, square and noise. Using a tone generator is an efficient way to create sound without using any memory.</p>
|
||
<p>The oscillator is a generator effect. This means it ignores incoming <a href="glossary.html#signal">signals</a> and writes out audio as a mono output signal. There are 5 different types of oscillator shape.</p>
|
||
<p><img alt="Oscillator wave shapes" src="images/dsp-oscillator-waves.svg" /><br />
|
||
<em>The different wave shapes that the oscillator effect supports.</em></p>
|
||
<p>The oscillator effect is controllable by the parameters:</p>
|
||
<p>Wave Shape - wave shape such as sine, square, triangle, saw, noise. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_oscillator_type">FMOD_DSP_OSCILLATOR_TYPE</a>.<br />
|
||
Rate - The rate in Hz at which the audio is generated for different pitched tones. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_oscillator_rate">FMOD_DSP_OSCILLATOR_RATE</a>.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_oscillator">FMOD_DSP_TYPE_OSCILLATOR</a></p>
|
||
<h4 id="performance_17"><a href="#performance_17">Performance</a></h4>
|
||
<p>Oscillator is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="pan"><a href="#pan">10.1.19 Pan</a></h3>
|
||
<p>The pan <a href="glossary.html#effect">effect</a> is a multi channel, multi speaker <a href="glossary.html#signal">signal</a> distribution effect with 2D and 3D panning controls. Pan control allows you to specify which speakers the signal should be audible in, and can be used to convey a sense of movement by changing the panning of a sound in real time.</p>
|
||
<div class="admonition note">
|
||
<p><a href="glossary.html#fmod-studio">FMOD Studio</a> and the <a href="https://fmod.com/docs/2.03/studio">FMOD Studio User Manual</a> refers to this effect as a 'spatializer' when using its 3D functionality.</p>
|
||
</div>
|
||
<p>The pan effect can pan a signal based on a 3D emitter/listener position, or on a 2D basis where the speakers are panned to directly as if they were laid out on a stereo X axis or on a surround sound circle, where in both cases the listener is situated in the middle.<br />
|
||
There are several options for panning, so the guide below lists the different cases and features and how they are implemented.</p>
|
||
<p>The panner can be used in a purely 2D mode, or 3D mode, or a mixture of the two by utilizing the <a href="#3d-surround-output-mode-3d-pan-blend">pan blend</a> parameter.</p>
|
||
<p>The parameters for the pan effect are listed as topics below to elaborate on their functionality:</p>
|
||
<h4 id="2d-stereo-output-mode"><a href="#2d-stereo-output-mode">2D Stereo Output Mode</a></h4>
|
||
<p>When the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_mode_type">FMOD_DSP_PAN_MODE_TYPE</a> is <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_mode_stereo">FMOD_DSP_PAN_MODE_STEREO</a>, a simple position control can be used to pan a sound between left and right speakers, where a value of -100 is full left, 0 is in the middle and +100 is full right.</p>
|
||
<p><img alt="2D Stereo Output Mode" src="images/dsp-pan-2d-stereo-anim.gif" /><br />
|
||
<em>The audible position of a sound in between stereo speakers can be set with a single stereo position value.</em></p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Positioning sound between left and right in a stereo speaker mode can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_2d_stereo_position">FMOD_DSP_PAN_2D_STEREO_POSITION</a> parameter.</p>
|
||
</div>
|
||
<p>The channels of a source signal are interpreted in different ways when panned to a stereo output:</p>
|
||
<ul>
|
||
<li>A mono signal is distributed with a constant power level with different left/right contributions based on the position value.</li>
|
||
<li>Stereo and above channel counts have their channels faded in and out in their matching left or right speaker, rather than moved between speakers as a mono signal would.</li>
|
||
</ul>
|
||
<h4 id="2d-surround-output-mode"><a href="#2d-surround-output-mode">2D Surround Output Mode</a></h4>
|
||
<p>When the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_mode_type">FMOD_DSP_PAN_MODE_TYPE</a> is <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_mode_surround">FMOD_DSP_PAN_MODE_SURROUND</a> (more than stereo, for example quad / 4.1 or 7.1), the source signal is distributed through the output speaker mode using a relevant <a href="glossary.html#up-mixing">up mix</a> or <a href="glossary.html#down-mixing">down mix</a> algorithm.</p>
|
||
<p>When panning any type of signal in a surround output mode, the distribution is described as a proportion of a set of speakers laid out on a circle. This is described by:</p>
|
||
<ul>
|
||
<li><a href="#2d-surround-output-mode-direction">Direction</a>. Relative angle to the front facing position from the center point (or listener position) of a circle.</li>
|
||
<li><a href="#2d-surround-output-mode-extent">Extent</a>. Amount of distribution on a circle relative to the direction.</li>
|
||
</ul>
|
||
<p><img alt="2D Surround Output Mode" src="images/dsp-pan-2d.svg" /><br />
|
||
<em>A default <a href="#2d-surround-output-mode-direction">direction</a> of 0 (front center) and an <a href="#2d-surround-output-mode-extent">extent</a> of 360 (black circle), in a 7.1 speaker mode. The source signal's channels are distributed between all speakers in their default positions. The dot is a virtual representation of an equivalent x,y position of a signal in the circle.</em></p>
|
||
<h4 id="2d-surround-output-mode-extent"><a href="#2d-surround-output-mode-extent">2D Surround Output Mode: Extent</a></h4>
|
||
<p>The extent is the size of the arc in the output speaker circle that has sound distributed to it. An extent of 360 means the source signal channels are distributed as they natively do to the whole speaker circle. An extent of 0 means the source signal channels are scaled within a single point on the circle.</p>
|
||
<p><img alt="2D Surround Output Mode: Extent 360" src="images/dsp-pan-2d-surround-anim.gif" /><br />
|
||
<em>A pan with a 30 degree <a href="#2d-surround-output-mode-direction">direction</a>, and an extent (the black arc), that changes from 360 degrees with distribution in all speakers, down to a 10 degree extent that makes the audio focus on front right speaker only. The dot is a virtual representation of an equivalent x,y position of a signal in the circle.</em></p>
|
||
<p>The channel mapping of a source signal is scaled into the extent angle.</p>
|
||
<p><img alt="2D Surround Output Mode: Extent 5ch" src="images/dsp-pan-2d-surround-extent-5ch.png" /><br />
|
||
<em>A pan with a 30 degree <a href="#2d-surround-output-mode-direction">direction</a>, a 60 degree extent, and the channels of a 5 channel source signal being scaled within the extent.</em></p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the extent value can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_2d_extent">FMOD_DSP_PAN_2D_EXTENT</a> parameter.</p>
|
||
</div>
|
||
<h4 id="2d-surround-output-mode-direction"><a href="#2d-surround-output-mode-direction">2D Surround Output Mode: Direction</a></h4>
|
||
<p>The direction is the orientation of the arc (<a href="#2d-surround-output-mode-extent">extent</a>) in the output speaker circle that has sound distributed to it. A direction of 0 means audio is distributed towards the front of the listener. A direction of -90 is to the left, +90 is to the right, with -180 and +180 being behind the listener.</p>
|
||
<p><img alt="2D Surround Output Mode: Direction" src="images/dsp-pan-2d-surround-direction-anim.gif" /><br />
|
||
<em>A pan with a 60 degree <a href="#2d-surround-output-mode-extent">extent</a> (the black arc) with a direction that starts at 30 degrees then does a full rotation around the speaker circle to end up where it started.</em></p>
|
||
<p>The channel mapping of a source signal maintains its original orientation regardless of the direction setting. As an example a 5.1 signal that has a direction of 90 degrees does not rotate this signal's channels, but concentrates the signal towards the direction depending on now narrow the <a href="#2d-surround-output-mode-extent">extent</a> is.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the direction value can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_2d_direction">FMOD_DSP_PAN_2D_DIRECTION</a> parameter.</p>
|
||
</div>
|
||
<h4 id="2d-surround-output-mode-rotation"><a href="#2d-surround-output-mode-rotation">2D Surround Output Mode: Rotation</a></h4>
|
||
<p>For a multi-channel source signal, the channels inside the signal can be rotated from their original mapping, contained within the <a href="#2d-surround-output-mode-extent">extent</a>.</p>
|
||
<p><img alt="2D Surround Output Mode: Rotation" src="images/dsp-pan-2d-surround-rotate-anim.gif" /><br />
|
||
<em>A pan with a fixed 30 degree <a href="#2d-surround-output-mode-direction">direction</a> and 60 degree <a href="#2d-surround-output-mode-extent">extent</a>, with a 5 channel source signal having its channels rotated over time inside the extent.</em></p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the rotation value can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_2d_rotation">FMOD_DSP_PAN_2D_ROTATION</a> parameter.</p>
|
||
</div>
|
||
<h4 id="2d-surround-output-mode-lfe-level"><a href="#2d-surround-output-mode-lfe-level">2D Surround Output Mode: LFE Level</a></h4>
|
||
<p>The LFE (Low Frequency Effects) channel of a signal is not positionable, but its level can be set independently. This is only available for surround output speaker modes.</p>
|
||
<p>The LFE level can be set to -80 dB for full attenuation up to +20 dB for amplification.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the LFE value can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_2d_lfe_level">FMOD_DSP_PAN_2D_LFE_LEVEL</a> parameter.</p>
|
||
</div>
|
||
<h4 id="2d-surround-output-mode-stereo-source-discrete-panning"><a href="#2d-surround-output-mode-stereo-source-discrete-panning">2D Surround Output Mode: Stereo Source Discrete Panning</a></h4>
|
||
<p>A stereo source signal is by default treated the same as other multi-channel source signals, with the left and right channels scaled within the <a href="#2d-surround-output-mode-extent">extent</a> (half of the <a href="#2d-surround-output-mode-extent">extent</a> dedicated to the left channel, half to the right).</p>
|
||
<p>Stereo source signals have an extra mode for discrete left/right panning in a circle, to give more focused distribution. The pan behavior for stereo source signals can be altered by setting the pan effect's 2D stereo mode parameter from 'Distributed' to 'Discrete'.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Switching stereo signal pan behavior from distributed to discrete can be set with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_2d_stereo_mode">FMOD_DSP_PAN_2D_STEREO_MODE</a> parameter.</p>
|
||
</div>
|
||
<p>In discrete mode, the left and right channels are not evenly distributed over an <a href="#2d-surround-output-mode-extent">extent</a> range, they are rather audibly located to the extreme left and right of that range, with no distribution of the signal to speakers in-between.</p>
|
||
<p>Distributed mode continues to use <a href="#2d-surround-output-mode-extent">extent</a> and <a href="#2d-surround-output-mode-direction">direction</a> parameters to control distribution, whereas 'Discrete' mode uses 2 different parameters called 'Separation' and 'Axis'.</p>
|
||
<h4 id="2d-surround-output-mode-stereo-axis"><a href="#2d-surround-output-mode-stereo-axis">2D Surround Output Mode: Stereo Axis</a></h4>
|
||
<p>For a stereo sound in discrete mode, the orientation is denoted by an angle inside the circle pointing to the outside of the circle, called 'Axis' parameter. This can be set between -180 for behind in the left direction, and +180 degrees for behind in the right direction.</p>
|
||
<p><img alt="2D Surround Output Mode: Discrete Axis" src="images/dsp-pan-2d-surround-discrete-anim.gif" /><br />
|
||
<em>A pan of a stereo signal with a rotating axis and 60 degree separation.</em></p>
|
||
<p>As compared to distributed mode, in discrete mode the stereo axis setting rotates the mapping of the source signal channels around the circle, so that at +/- 180 degrees position the L and R source channels are reversed in the output speakers.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the Stereo axis value can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_2d_stereo_axis">FMOD_DSP_PAN_2D_STEREO_AXIS</a> parameter.</p>
|
||
</div>
|
||
<h4 id="2d-surround-output-mode-stereo-separation"><a href="#2d-surround-output-mode-stereo-separation">2D Surround Output Mode: Stereo Separation</a></h4>
|
||
<p>For a stereo sound in discrete mode, The width of the pan distribution is known as 'Separation' and is represented by an angle with a range of -180 to +180 degrees, and a default of 60 degrees. </p>
|
||
<p>A default of 60 degrees with an axis of 0 degrees puts left in the front left speaker, and right in the front right speaker. Setting it to 0 puts the left and right in the same position and when it is negative the left and right source signal positions are swapped around.</p>
|
||
<p><img alt="2D Surround Output Mode: Stereo Separation" src="images/dsp-pan-2d-surround-discretesep-anim.gif" /><br />
|
||
<em>A discrete mode pan of a stereo signal with a 0 degree axis and a separation that starts at 60 degrees then shrinks to 10 degrees, then flips the left and right by moving to a -60 degree separation value.</em></p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the Stereo Separation value can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_2d_stereo_separation">FMOD_DSP_PAN_2D_STEREO_SEPARATION</a> parameter.</p>
|
||
</div>
|
||
<h4 id="2d-surround-output-mode-height"><a href="#2d-surround-output-mode-height">2D Surround Output Mode: Height</a></h4>
|
||
<p>In a speaker setup with height speakers, the pan can be blended between the standard ground level speaker circle and its pan distribution, with the </p>
|
||
<p>When the input or <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_surround_speaker_mode">FMOD_DSP_PAN_SURROUND_SPEAKER_MODE</a> has height speakers, control the blend between ground and height. -1.0 (push top speakers to ground), 0.0 (preserve top / ground separation), 1.0 (push ground speakers to top).</p>
|
||
<p><img alt="2D Surround Output Mode: Height Top" src="images/dsp-pan-2d-height.svg" /><br />
|
||
<em>A 7.1.4 speaker layout, viewed from the top. The 'T' (Top) based speakers are located in the ceiling of the listener's room.</em></p>
|
||
<p><img alt="2D Surround Output Mode: Height Side Mono" src="images/dsp-pan-2d-surround-height.gif" /><br />
|
||
<em>A side view of a 7.1.4 speaker layout, with a mono signal (dot) adjusting its height from the ground level (0) to the ceiling level (1).</em></p>
|
||
<p>With a signal containing no height speakers of its own (ie all standard ground based speaker layouts of mono to 7.1), any height value below 0 is capped to 0. Negative height values are reserved for signals with height speakers.</p>
|
||
<p>The height value behaves differently for 7.1.4 source signals.</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Height value</th>
|
||
<th>7.1.4 signal behavior</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>0</strong></td>
|
||
<td>Default position, leaving ground and ceiling level signal channels in their relative ground and ceiling level output speaker locations.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>0 to 1</strong></td>
|
||
<td>Affects height of ground level signal channels. Leaves the ceiling signal channels alone. Has the effect of raising up the source signal's ground channels the higher the number is.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>0 to -1</strong></td>
|
||
<td>Affects height of ceiling level signal channels. Leaves the ground signal channels alone. Has the effect of lowering the ceiling channels the lower the number is.</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p><img alt="2D Surround Output Mode: Height Side 7.1.4 Up" src="images/dsp-pan-2d-surround-height-714up.gif" /><br />
|
||
<em>A side view of a 7.1.4 speaker layout, with a 7.1.4 signal (multiple dots) adjusting its ground level channels from the ground level (0) to the ceiling level (1).</em></p>
|
||
<p><img alt="2D Surround Output Mode: Height Side 7.1.4 Down" src="images/dsp-pan-2d-surround-height-714down.gif" /><br />
|
||
<em>A side view of a 7.1.4 speaker layout, with a 7.1.4 signal (multiple dots) adjusting its ceiling level channels from the ceiling level (0) to the ground level (-1).</em></p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the Stereo Separation value can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_2d_height_blend">FMOD_DSP_PAN_2D_HEIGHT_BLEND</a> parameter.</p>
|
||
</div>
|
||
<h4 id="3d-surround-output-mode-3d-pan-blend"><a href="#3d-surround-output-mode-3d-pan-blend">3D Surround Output Mode: 3D Pan Blend</a></h4>
|
||
<p>As the pan effect can simultaneously utilise 2D commands and 3D commands to achieve the desired signal distribution among the output speakers, to hear the result of 2D commands only or 3D commands only or a mixture of both, the Pan Blend setting can be used.</p>
|
||
<p>The setting has a linear range of 0 to 1 and a default of 0, which is the equivalent of all 2D output only. The opposite value is 1, and the equivalent of 3D output only. Values in-between allow for a mixture of the two, which allows for 2D to 3D pan morphing or vice versa.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the 3D Pan Blend can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_3d_pan_blend">FMOD_DSP_PAN_3D_PAN_BLEND</a> parameter.</p>
|
||
</div>
|
||
<p><strong>See Also:</strong> <a href="glossary.html#2d-vs-3d">2D vs 3D</a></p>
|
||
<h4 id="3d-surround-output-mode-position"><a href="#3d-surround-output-mode-position">3D Surround Output Mode: Position</a></h4>
|
||
<p>For positioning of audio in speakers, setting the 3D position of objects is the key step to correct panning. Panning is based in 3D mode based on the position and orientation of a virtual 'listener' (ie the player / the camera position) vs the sound (or in this case the <a href="effects-reference.html#pan">pan DSP</a>).</p>
|
||
<p>The pan effect allows more than 1 listener, which is most useful for <a href="white-papers-3d-sounds.html#split-screen-multiple-listeners">split screen</a> type scenarios.</p>
|
||
<p><img alt="3D Surround Output Mode: Position" src="images/dsp-pan-3d-position.svg" /><br />
|
||
<em>2 sounds playing in a 3D space (X/Z plane only) with 2 listeners active. The output takes both listeners into account to produce the current gain and pan for a sound.</em></p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the 3D Position can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_3d_position">FMOD_DSP_PAN_3D_POSITION</a> parameter.</p>
|
||
</div>
|
||
<h4 id="3d-surround-output-mode-roll-off"><a href="#3d-surround-output-mode-roll-off">3D Surround Output Mode: Roll-off</a></h4>
|
||
<p>Roll-off is the simulation of distance between the listener and the sound source, which translates to gain or in some cases gain of certain frequencies. The further a sound source is from a listener, the quieter it will be. The Roll-off is based on an attenuation curve which is configurable, depending on requirements.</p>
|
||
<p>Below is a list of the various roll-off modes supported, with a description of its features below. A common control for each roll-off mode is the <a href="#3d-surround-output-mode-min-distance">Minimum Distance</a> and <a href="#3d-surround-output-mode-min-distance">Maximum Distance</a>. These controls help simulate the size of the sound and the space that it is in.</p>
|
||
<p>Linear Roll-off:<br />
|
||
<img alt="3D Surround Output Mode: Roll Off Linear" src="images/dsp-pan-3d-rolloff-linear.svg" /><br />
|
||
<em>Linear roll-off keeps the volume unattenuated below the min distance, then attenuates to silence using a linear gradient to silence at the max distance.</em></p>
|
||
<p>Linear Squared Roll-off (Default setting):<br />
|
||
<img alt="3D Surround Output Mode: Roll Off Linear Squared" src="images/dsp-pan-3d-rolloff-linsquared.svg" /><br />
|
||
<em>Linear Squared roll-off keeps the volume unattenuated below the min distance, then attenuates to silence using a linear squared gradient to silence at the max distance. This gives it a faster roll-off near the min distance, and a slower roll-off nearer to the max distance than linear mode.</em></p>
|
||
<p>Inverse Roll-off:<br />
|
||
<img alt="3D Surround Output Mode: Roll Off Inverse" src="images/dsp-pan-3d-rolloff-inverse.svg" /><br />
|
||
<em>Inverse roll-off keeps the volume unattenuated below the min distance, then attenuates at a rate using min distance / distance as the gradient until it reaches max distance where it stops attenuating.</em></p>
|
||
<p>Inverse Tapered Roll-off:<br />
|
||
<img alt="3D Surround Output Mode: Roll Off Inverse Tapered" src="images/dsp-pan-3d-rolloff-invtaper.svg" /><br />
|
||
<em>Inverse tapered is a combination of Inverse Roll-off and Linear Squared Roll-off. From min distance onwards Inverse is used, then if the gain is lower with Linear Squared, it will switch to that to ensure the gain hits silence at the max distance.</em></p>
|
||
<p>Custom Roll-off:<br />
|
||
<img alt="3D Surround Output Mode: Custom Roll-off" src="images/dsp-pan-3d-rolloff-custom.svg" /><br />
|
||
<em>Custom roll-off can be defined by the programmer setting volume manually. Attenuation in the pan DSP is turned off in this mode.</em></p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the 3D Roll-off can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_3d_rolloff">FMOD_DSP_PAN_3D_ROLLOFF</a> parameter.</p>
|
||
</div>
|
||
<h4 id="3d-surround-output-mode-min-distance"><a href="#3d-surround-output-mode-min-distance">3D Surround Output Mode: Min Distance</a></h4>
|
||
<p>The minimum distance, in <a href="#3d-surround-output-mode-roll-off">all roll-off modes</a> is the distance from the listener that the gain starts attenuating.</p>
|
||
<p>In <a href="#3d-surround-output-mode-roll-off">Custom roll-off mode</a> the Min Distance is ignored.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the 3D Min Distance can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_3d_min_distance">FMOD_DSP_PAN_3D_MIN_DISTANCE</a> parameter.</p>
|
||
</div>
|
||
<h4 id="3d-surround-output-mode-max-distance"><a href="#3d-surround-output-mode-max-distance">3D Surround Output Mode: Max Distance</a></h4>
|
||
<p>The maximum distance, is the distance from the listener that the gain stops attenuating (<a href="#3d-surround-output-mode-roll-off">Inverse roll-off mode</a>), or attenuates to silence (<a href="#3d-surround-output-mode-roll-off">Linear, Linear Squared and Inverse Tapered roll-off modes</a>).</p>
|
||
<p>In <a href="#3d-surround-output-mode-roll-off">Custom roll-off mode</a> the Max Distance is ignored.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the 3D Max Distance can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_3d_max_distance">FMOD_DSP_PAN_3D_MAX_DISTANCE</a> parameter.</p>
|
||
</div>
|
||
<h4 id="3d-surround-output-mode-extent-mode"><a href="#3d-surround-output-mode-extent-mode">3D Surround Output Mode: Extent Mode</a></h4>
|
||
<p>In 3D, the speaker distribution method as described in <a href="#2d-surround-output-mode-extent">2D Extent</a> is controlled via a combination of <a href="#3d-surround-output-mode-min-extent">3D Minimum Extent</a> and and <a href="#3d-surround-output-mode-sound-size">3D Sound Size</a>.<br />
|
||
Both are controlled manually, automatically, or they can be disabled. In 3D the <a href="#2d-surround-output-mode-direction">direction</a> is determined automatically based on <a href="#3d-surround-output-mode-position">3D positioning</a>.</p>
|
||
<p>Automatic Mode:<br />
|
||
In Automatic Mode the <a href="#3d-surround-output-mode-sound-size">3D Sound Size</a> is automatically controlled based on sound source distance from listener (closer = bigger) and works off a base of 2 times the <a href="#3d-surround-output-mode-min-distance">Minimum Distance</a>. <a href="#3d-surround-output-mode-min-extent">3D Minimum Extent</a> is set to 0.<br />
|
||
<img alt="3D Surround Output Mode: Extent Auto" src="images/dsp-pan-2d-surround-anim.gif" /><br />
|
||
<em>In automatic mode, the signal distribution arc gets smaller as the sound source gets further away from the listener. As it approaches the listener, it gets bigger to distribute the signal throughout more speakers. This alleviates the source signal instantly flipping from one speaker to another if it crosses through the position of the listener.</em></p>
|
||
<p>Off Mode:<br />
|
||
In Off Mode the <a href="#3d-surround-output-mode-sound-size">3D Sound Size</a> is set to 0, and <a href="#3d-surround-output-mode-min-extent">3D Minimum Extent</a> is set to 0.<br />
|
||
<img alt="3D Surround Output Mode: Extent Off" src="images/dsp-pan-3d-extent-off.gif" /><br />
|
||
<em>In off mode, the signal distribution arc becomes a point which pinpoints the distribution of the signal into one location, regardless of the sound source distance from the listener.</em></p>
|
||
<p>User Mode:<br />
|
||
In User Mode, the <a href="#3d-surround-output-mode-min-extent">3D Minimum Extent</a> and <a href="#3d-surround-output-mode-sound-size">3D Sound Size</a> are set by the user using the parameters provided.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the 3D Extent Mode can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_3d_extent_mode">FMOD_DSP_PAN_3D_EXTENT_MODE</a> parameter.</p>
|
||
</div>
|
||
<h4 id="3d-surround-output-mode-sound-size"><a href="#3d-surround-output-mode-sound-size">3D Surround Output Mode: Sound Size</a></h4>
|
||
<p>The sound size parameter has an affect on the panner's <a href="#2d-surround-output-mode-extent">extent</a>, based on how 'large' the sound is. A very small sound is be concentrated more into a point source (a small extent) and a large sound is spread around the speakers more to convey a sense of envelopment (a large extent).</p>
|
||
<p><img alt="3D Surround Output Mode: Sound Size" src="images/dsp-pan-3d-surround-soundsize.gif" /><br />
|
||
<em>A source signal that is located near a speaker and does not move, but the apparent 'size' of the source changes from small to large, affecting the extent of the pan distribution around the circle.</em></p>
|
||
<p>This parameter is only available to be set in 'User' <a href="#3d-surround-output-mode-extent-mode">Extent Mode</a>. In 'Automatic' and 'Off' mode, the sound size parameter is set automatically.</p>
|
||
<p>The sound size's affect on the extent can be clamped to a minimum angle, set with <a href="#3d-surround-output-mode-min-extent">Min Extent</a>.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the 3D Sound Size can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_3d_sound_size">FMOD_DSP_PAN_3D_SOUND_SIZE</a> parameter.</p>
|
||
</div>
|
||
<h4 id="3d-surround-output-mode-min-extent"><a href="#3d-surround-output-mode-min-extent">3D Surround Output Mode: Min Extent</a></h4>
|
||
<p>The min extent parameter has an affect on the panner's extent, by acting as a clamp against the <a href="#3d-surround-output-mode-sound-size">sound size</a>'s affect on it. If a sound size becomes small which can reduce the distribution of pan to a point source, the min extent parameter can set an angle to guarantee that the panner does not distribute the signal below this value.</p>
|
||
<p><img alt="3D Surround Output Mode: Min Extent" src="images/dsp-pan-3d-surround-minextent.gif" /><br />
|
||
<em>A source signal that is located near a speaker and does not move, with the sound size changing from largest to smallest size, but the extent being clamped by at the minimum extent angle, which in this case is set to 180 degrees.</em></p>
|
||
<p>This parameter is only available to be set in 'User' <a href="#3d-surround-output-mode-extent-mode">Extent Mode</a>. In 'Automatic' and 'Off' mode, the min extent parameter is set to 0.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the 3D Min Extent can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_3d_min_extent">FMOD_DSP_PAN_3D_MIN_EXTENT</a> parameter.</p>
|
||
</div>
|
||
<h4 id="general-settings-enabled-speakers"><a href="#general-settings-enabled-speakers">General settings: Enabled Speakers</a></h4>
|
||
<p>Speakers for target distribution of a source signal can be turned on or off to mute sound in a speaker and have the distribution shifted to other speakers.</p>
|
||
<p><img alt="General settings: Enabled Speakers" src="images/dsp-pan-general-enabledspeakers.gif" /><br />
|
||
<em>Speakers arbitrarily being turned off and on which alters the distribution of the source signal to the other speakers.</em></p>
|
||
<p>Note that signal does not disappear if its location was intended for a particular speaker, it just gets reassigned to other speakers. In a 7.1 speaker layout, if all speakers except for front left / front right were disabled, then sounds that are supposed to play in the back speakers would be mixed down to the front speakers like they would be in a typical stereo speaker output mode.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the Enabled Speakers can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_enabled_speakers">FMOD_DSP_PAN_ENABLED_SPEAKERS</a> parameter.</p>
|
||
</div>
|
||
<h4 id="general-settings-lfe-up-mix-enabled"><a href="#general-settings-lfe-up-mix-enabled">General settings: LFE Up-mix Enabled</a></h4>
|
||
<p>LFE Up-mix Enabled determines whether non-LFE source channels should mix to the LFE or not. Default is off, so only an LFE source channel is audible in an LFE output speaker.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the LFE Up-mix enabled can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_lfe_upmix_enabled">FMOD_DSP_PAN_LFE_UPMIX_ENABLED</a> parameter.</p>
|
||
</div>
|
||
<h4 id="general-settings-overall-gain"><a href="#general-settings-overall-gain">General settings: Overall Gain</a></h4>
|
||
<p>A read only parameter that allows the user to query the gain of the Panner based on all of the attenuation calculations.</p>
|
||
<p>Two values are returned, a <code>linear gain</code> value that represents the volume of the default audible output path of the DSP, and an <code>additive linear gain</code> value that represents the volume of the signal that is sent to other DSPs but not audible from the output of the DSP. This could be a send path to another DSP (See <a href="#send">Send</a>) or a send path to a hardware device (See <a href="#object-panner">Object Panner</a>).</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Getting the Overall Gain can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_overall_gain">FMOD_DSP_PAN_OVERALL_GAIN</a> parameter.</p>
|
||
</div>
|
||
<h4 id="general-settings-surround-speaker-mode"><a href="#general-settings-surround-speaker-mode">General settings: Surround Speaker Mode</a></h4>
|
||
<p>The surround speaker mode is the output speaker format for the panner. By default it is the same as the speaker mode selected for the user or by the user after the <a class="apilink" href="core-api-system.html">System</a>'s initialization.</p>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Setting the Surround Speaker Mode can be done with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pan_surround_speaker_mode">FMOD_DSP_PAN_SURROUND_SPEAKER_MODE</a> parameter.</p>
|
||
</div>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_pan">FMOD_DSP_TYPE_PAN</a></p>
|
||
<h4 id="performance_18"><a href="#performance_18">Performance</a></h4>
|
||
<p>Pan is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="pitch-shifter"><a href="#pitch-shifter">10.1.20 Pitch Shifter</a></h3>
|
||
<p>A pitch shifter can be used to change the pitch of a sound without affecting the duration of playback.</p>
|
||
<p>The pitch shifter uses a transform algorithm (<a href="#fft">FFT</a>) to convert the <a href="glossary.html#signal">signal</a> from the time domain to the frequency domain. The signal is manipulated to shift sinusoidal bands by the specified amount, then the signal is re-synthesized back into the time domain into a standard PCM <a href="glossary.html#sample-data">signal</a>.</p>
|
||
<p>This <a href="glossary.html#effect">effect</a> can also be used for time stretching or scaling, by shifting the pitch then altering the playback frequency in the other direction proportionally. As an example if the pitch was doubled, and the frequency of the sound was halved, the pitch of the sound would sound correct but it would be twice as slow.</p>
|
||
<p>This pitch shifter is based on the pitch shifter code at <a href="http://www.dspdimension.com">http://www.dspdimension.com</a>, written by Stephan M. Bernsee. The original code is COPYRIGHT 1999-2003 Stephan M. Bernsee - smb@dspdimension.com under the Wide Open License (WOL).</p>
|
||
<p>The pitch shifter effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Pitch - The pitch can be set with a single linear value, which ranges from 0.5 octaves to 2.0 octaves, with a default of 1 which equals no pitch change. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pitchshift_pitch">FMOD_DSP_PITCHSHIFT_PITCH</a>.</li>
|
||
<li>FFT size - Quality can be altered with the FFT window size which ranges from 256 to 4096 with a default of 1024. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pitchshift_fftsize">FMOD_DSP_PITCHSHIFT_FFTSIZE</a>.</li>
|
||
<li>Max channels - For performance reasons the maximum signal channel count support is pre-set to the channel count equal to the output speaker mode's channel count. On a <a class="apilink" href="core-api-channel.html">Channel</a> object it may be desirable to set it to a higher count if the sound playing on the channel has a higher channel count than the speaker mode. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_pitchshift_maxchannels">FMOD_DSP_PITCHSHIFT_MAXCHANNELS</a>.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_pitchshift">FMOD_DSP_TYPE_PITCHSHIFT</a></p>
|
||
<h4 id="performance_19"><a href="#performance_19">Performance</a></h4>
|
||
<p>Pitch Shifter is a <a href="effects-reference.html#current-effects">high overhead</a> effect.</p>
|
||
<p>This filter is computationally expensive. Reducing the signal from stereo to mono halves the cpu usage. FFT Window size also improves performance at smaller sizes. Reducing window size lowers audio quality, but which settings to use are largely dependant on the sound being played. A noisy polyphonic signal needs a larger fft size compared to a speaking voice for example.</p>
|
||
<hr />
|
||
<h3 id="return"><a href="#return">10.1.21 Return</a></h3>
|
||
<p>The use of a return <a href="glossary.html#effect">effect</a> is to receive a routed audio <a href="glossary.html#signal">signal</a> from a different location than its standard input inside the <a href="white-papers-dsp-architecture.html">DSP graph</a>.</p>
|
||
<p>A return effect receives routed audio from its partner <a href="glossary.html#dsp">DSP</a>, the <a href="#send">Send</a> effect.</p>
|
||
<p><img alt="Return" src="images/dsp-send-return.svg" /><br />
|
||
<em>A <a href="glossary.html#dsp-graph">DSP graph</a> showing a send and return deviating the signal from its normal signal flow, sending a copy of the signal (visible as gray dashed arrow) from the send, and receiving it on the return.</em></p>
|
||
<p>The return effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Speaker mode - The speaker mode of the receiving buffer can be set to a known speaker mode, or it can be left to automatically select, which is the default. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_return_input_speaker_mode">FMOD_DSP_RETURN_INPUT_SPEAKER_MODE</a>.</li>
|
||
</ul>
|
||
<p>The return effect can query the parameters:</p>
|
||
<ul>
|
||
<li>Return ID - The index that the <a class="apilink" href="#send">Send</a> effect will use for the 'Return ID' destination parameter. Get with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_return_id">FMOD_DSP_RETURN_ID</a>.</li>
|
||
</ul>
|
||
<p>Note that upon receiving the signal, it is buffered and therefore will incur one mix block of latency.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_return">FMOD_DSP_TYPE_RETURN</a></p>
|
||
<h4 id="performance_20"><a href="#performance_20">Performance</a></h4>
|
||
<p>Return is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="send"><a href="#send">10.1.22 Send</a></h3>
|
||
<p>The use of a send <a href="glossary.html#effect">effect</a> is to route an audio <a href="glossary.html#signal">signal</a> to a different location than its standard output inside the <a href="glossary.html#dsp-graph">DSP graph</a>.</p>
|
||
<p>A send effect routes its audio to a partner <a href="glossary.html#dsp">DSP</a>, the <a href="#return">return</a> effect.<br />
|
||
<img alt="Return" src="images/dsp-send-return.svg" /><br />
|
||
<em>A DSP graph showing a send and return deviating the signal from its normal signal flow, sending the signal (visible as grey dashed arrow) from the send, and receiving it on the return.</em></p>
|
||
<p>The send effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Gain - The gain of a send can be set with a linear value from 0 (silence) to 1 (full volume), and has a default of 1. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_send_level">FMOD_DSP_SEND_LEVEL</a>.</li>
|
||
<li>Return ID - The destination index of the <a class="apilink" href="#return">Return</a>. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_send_returnid">FMOD_DSP_SEND_RETURNID</a>.</li>
|
||
</ul>
|
||
<p>Note that upon receiving the signal on the return side, it is buffered and therefore will incur one mix block of latency.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_send">FMOD_DSP_TYPE_SEND</a></p>
|
||
<h4 id="performance_21"><a href="#performance_21">Performance</a></h4>
|
||
<p>Send is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="sfx-reverb"><a href="#sfx-reverb">10.1.23 SFX Reverb</a></h3>
|
||
<p>The SFX reverb <a href="glossary.html#effect">effect</a> is a high quality I3DL2 based reverb to simulate an acoustic space. It is highly configurable so the many parameters can be altered to simulate small and wide open spaces.</p>
|
||
<p>SFX Reverb is a time domain low CPU cost with high quality and flexibility. Because it is parametric, there is great control over the characteristics of the reverb, and it also means that reverb can change or morph over time from one preset to another.</p>
|
||
<p><img alt="SFX Reverb" src="images/dsp-sfxreverb.svg" /><br />
|
||
<em>A diagram of the layout of time domain reverb. There is the original <a href="glossary.html#signal">signal</a> (direct) followed by some early reflected copies of the original signal (early reflections) then a diffused version of the original which decays over time (late reflections/reverb) to silence.</em></p>
|
||
<p>The SFX reverb effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Reverb Time - Reverberation decay time at low-frequencies from 100 ms to 20 seconds. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_decaytime">FMOD_DSP_SFXREVERB_DECAYTIME</a>.</li>
|
||
<li>Early Delay - Delay time of first reflection from 0 ms to 300 ms. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_earlydelay">FMOD_DSP_SFXREVERB_EARLYDELAY</a>.</li>
|
||
<li>Late Delay - Late reverberation delay time relative to first reflection from 0 ms to 100 ms. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_latedelay">FMOD_DSP_SFXREVERB_LATEDELAY</a>.</li>
|
||
<li>High Frequency Reference - Reference frequency for high-frequency decay from 20 Hz to 20 kHz. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_hfreference">FMOD_DSP_SFXREVERB_HFREFERENCE</a>.</li>
|
||
<li>High Frequency Decay Ratio - High-frequency decay time relative to decay time from 10% to 100%. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_hfdecayratio">FMOD_DSP_SFXREVERB_HFDECAYRATIO</a>.</li>
|
||
<li>Reverberation Diffusion - Reverberation diffusion (echo density) from 10% to 100%. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_diffusion">FMOD_DSP_SFXREVERB_DIFFUSION</a>.</li>
|
||
<li>Reverberation Density - Reverberation density (modal density) from 10% to 100%. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_density">FMOD_DSP_SFXREVERB_DENSITY</a>.</li>
|
||
<li>Low Shelf Frequency - Transition frequency of low-shelf filter from 20 Hz to 1 kHz. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_lowshelffrequency">FMOD_DSP_SFXREVERB_LOWSHELFFREQUENCY</a>.</li>
|
||
<li>Low Shelf Gain - Gain of low shelf filter from -36 dB to 12 dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_lowshelfgain">FMOD_DSP_SFXREVERB_LOWSHELFGAIN</a>.</li>
|
||
<li>High Cut Frequency - Cutoff frequency of low-pass filter from 20 Hz to 20 kHz. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_highcut">FMOD_DSP_SFXREVERB_HIGHCUT</a>.</li>
|
||
<li>Early Late Mix - Blend ratio of late reverb to early reflections from 0% to 100%. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_earlylatemix">FMOD_DSP_SFXREVERB_EARLYLATEMIX</a>.</li>
|
||
<li>Wet Level - Reverb signal level from -80 dB to +20 dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_wetlevel">FMOD_DSP_SFXREVERB_WETLEVEL</a>.</li>
|
||
<li>Dry Level - Direct signal level from -80 dB to +20 dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_sfxreverb_drylevel">FMOD_DSP_SFXREVERB_DRYLEVEL</a>.</li>
|
||
</ul>
|
||
<p>The reverb can be controlled with simple to understand presets. The current preset list is:</p>
|
||
<ul>
|
||
<li>Off</li>
|
||
<li>Generic</li>
|
||
<li>Padded Cell</li>
|
||
<li>Room</li>
|
||
<li>Bath room</li>
|
||
<li>Living room</li>
|
||
<li>Stone room</li>
|
||
<li>Auditorium</li>
|
||
<li>Concert Hall</li>
|
||
<li>Cave</li>
|
||
<li>Arena</li>
|
||
<li>Hangar</li>
|
||
<li>Stone Corridor</li>
|
||
<li>Alley</li>
|
||
<li>Forest</li>
|
||
<li>City</li>
|
||
<li>Mountains</li>
|
||
<li>Quarry</li>
|
||
<li>Plain</li>
|
||
<li>Parking Lot</li>
|
||
<li>Sewer Pipe</li>
|
||
<li>Under Water</li>
|
||
</ul>
|
||
<div class="admonition note">
|
||
<p><strong>API reference.</strong> Reverb presets can be set with <a class="apilink" href="core-api-system.html#fmod_reverb_presets">FMOD_REVERB_PRESETS</a>.</p>
|
||
</div>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_sfxreverb">FMOD_DSP_TYPE_SFXREVERB</a></p>
|
||
<h4 id="performance_22"><a href="#performance_22">Performance</a></h4>
|
||
<p>SFX Reverb is a <a href="effects-reference.html#current-effects">medium overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="three-eq"><a href="#three-eq">10.1.24 Three EQ</a></h3>
|
||
<p>The three EQ <a href="glossary.html#effect">effect</a> is a three band equalizer. It splits the <a href="glossary.html#signal">signal</a> into lows, mids and highs, and allows each band to be attenuated (potentially all the way down to silence) or boosted.</p>
|
||
<p>For each band, the frequencies can be modified with the low/mid crossover frequency and the mid/high crossover frequency controls. The shape of the cross-over slow can also be changed for the bands, with 12 dB, 24 dB and 48 dB options available.</p>
|
||
<p><img alt="Three EQ curves" src="images/dsp-threeeq.svg" /><br />
|
||
<em>The Three EQ and the (L)ow / (M)id / (H)igh frequency bands each at 0 dB attenuation, with their cross over points displayed as the dotted lines and slope set to 12 dB. Alternate crossover slopes are shown in a lighter tone for 24 and 48 dB.</em></p>
|
||
<p>The three EQ effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Frequency gain - Low, mid and high frequency bands can be attenuated or boosted with a range of -80 dB to +10 dB, and a default of 0 dB (no affect). These can be set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_three_eq_lowgain">FMOD_DSP_THREE_EQ_LOWGAIN</a>, <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_three_eq_midgain">FMOD_DSP_THREE_EQ_MIDGAIN</a> and <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_three_eq_highgain">FMOD_DSP_THREE_EQ_HIGHGAIN</a>.</li>
|
||
<li>Low cross over - The low to mid cross over frequency can set with a range of 10 Hz to 22 kHz, and a default of 400 Hz. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_three_eq_lowcrossover">FMOD_DSP_THREE_EQ_LOWCROSSOVER</a>.</li>
|
||
<li>High cross over - The mid to high cross over frequency can set with a range of 10 Hz to 22 kHz, and a default of 400 Hz. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_three_eq_highcrossover">FMOD_DSP_THREE_EQ_HIGHCROSSOVER</a>.</li>
|
||
<li>Cross over slope shape - The cross over slope can be set to 12 dB, 24 dB or 48 dB, with a default of 24 dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_three_eq_crossoverslope">FMOD_DSP_THREE_EQ_CROSSOVERSLOPE</a>.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_three_eq">FMOD_DSP_TYPE_THREE_EQ</a></p>
|
||
<h4 id="performance_23"><a href="#performance_23">Performance</a></h4>
|
||
<p>Three EQ is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<p>With the 12, 24 or 48 dB variations, this indicates whether the filter is run once (12dB), twice (24dB) or four times (48dB) to achieve steeper roll off curves. Performance scales linearly with the number of times the filter is run, therefore a 48dB filter (which runs four times) has approximately four times the CPU cost as a single 12dB filter with some reduction due to optimizations. </p>
|
||
<hr />
|
||
<h3 id="transceiver"><a href="#transceiver">10.1.25 Transceiver</a></h3>
|
||
<p>Like the <a href="#send">Send</a> and <a href="#return">Return</a> effects, the transceiver <a href="glossary.html#effect">effect</a> has the same capability bundled into one effect, with the extra capability to route an <a href="glossary.html#signal">audio signal</a> to up to 32 'stations' which any other transceiver could receive audio from. This means one transmitting transceiver's signal could be received by an unlimited number of transceivers in 'receive' mode, making that signal audible in multiple different parts of the <a href="glossary.html#dsp-graph">DSP graph</a>. In a 3D world, this could be 1 expensive emitter (i.e.: a <a href="glossary.html#stream">stream</a>) being broadcast to different 3D locations around the world simultaneously, at low CPU cost.</p>
|
||
<p>The transceiver transmits and receives to a global array of 32 channels. The transceiver can be set to receiver mode (like a <a href="#return">return</a>) and can receive the signal at a variable gain. The transceiver can also be set to transmit to a channel (like a <a href="#send">send</a>) and can transmit the signal with a variable gain.</p>
|
||
<p><img alt="Transceiver" src="images/dsp-transceiver.svg" /><br />
|
||
<em>Sounds being transmitted by 2 transceivers in transmit mode, one sound transmitting to channel 0, and the other to channel 1. There is then a 3D scene with 5 transceivers tuned to either channel 0 or 1, which lets then broadcast the transmitted signal from different locations simultaneously.</em></p>
|
||
<p>Characteristics of the transceiver effect:</p>
|
||
<ul>
|
||
<li>Upon receiving the signal on the receive side, it is buffered and therefore will incur one mix block of latency.</li>
|
||
<li>Multiple transmitters sending to the same channel are mixed together.</li>
|
||
</ul>
|
||
<p>The transceiver effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Transmit mode - The transceiver can be set to 'transmitter' mode, or 'receiver' mode. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_transceiver_transmit">FMOD_DSP_TRANSCEIVER_TRANSMIT</a> parameter.</li>
|
||
<li>Transmit or receive gain - Set with a range of -80 dB to +10 dB and a default of 0dB. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_transceiver_gain">FMOD_DSP_TRANSCEIVER_GAIN</a> parameter.</li>
|
||
<li>Transmit speaker mode - This can be set to either mono, stereo or surround. Surround is the speaker mode of the <a class="apilink" href="core-api-system.html">System</a>. If in receive mode, the speaker mode has no effect. Set with the <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_transceiver_transmitspeakermode">FMOD_DSP_TRANSCEIVER_TRANSMITSPEAKERMODE</a>.</li>
|
||
</ul>
|
||
<p>Transmitting different speaker modes to the same channel: Each transmitter can transmit in its preferred speaker mode of mono, stereo or surround. At the receive end, if there are multiple signals of different speaker modes in the same channel, it mixes them all together into the highest speaker format and use that.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_transceiver">FMOD_DSP_TYPE_TRANSCEIVER</a></p>
|
||
<h4 id="performance_24"><a href="#performance_24">Performance</a></h4>
|
||
<p>To reduce memory overhead, aim to use the same transmit speaker mode for 1 channel.</p>
|
||
<p>Transceiver is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="tremolo"><a href="#tremolo">10.1.26 Tremolo</a></h3>
|
||
<p>The tremolo <a href="glossary.html#effect">effect</a> varies the amplitude of a sound with a low frequency oscillator, which results in periodic volume changes. Depending on the settings, this unit can produce a tremolo, chopper, or auto-pan effect.</p>
|
||
<p>The tremolo effect is controllable by the parameters:</p>
|
||
<ul>
|
||
<li>Shape - The shape of the LFO (Low Frequency Oscillator) can set to sine, triangle and sawtooth waves by adjusting the this parameter. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_tremolo_shape">FMOD_DSP_TREMOLO_SHAPE</a>.</li>
|
||
<li>Skew - The time skewing of the LFO (Low Frequency Oscillator) cycle can be set with a linear value between 0 and 1, with a default of 0.5. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_tremolo_shape">FMOD_DSP_TREMOLO_SHAPE</a> and <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_tremolo_skew">FMOD_DSP_TREMOLO_SKEW</a> parameters.</li>
|
||
<li>Frequency - The speed of the LFO can be set in Hz, with a range of 0.1 Hz to 20 Hz and a default of 5 Hz. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_tremolo_frequency">FMOD_DSP_TREMOLO_FREQUENCY</a>.</li>
|
||
<li>Depth - The depth of the LFO can be set with a linear value from 0 to 1 where 0 is no tremolo and 1 is full. Default is 1. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_tremolo_depth">FMOD_DSP_TREMOLO_DEPTH</a>.</li>
|
||
<li>Duty / Square - Duty and Square attributes are useful for a chopper-type effect where the first controls the on-time duration and second controls the flatness of the envelope. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_tremolo_duty">FMOD_DSP_TREMOLO_DUTY</a> and <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_tremolo_square">FMOD_DSP_TREMOLO_SQUARE</a> parameters.</li>
|
||
<li>Spread - The Spread attribute varies the LFO phase between channels to get an auto-pan effect. This works best with a sine shape LFO. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_tremolo_spread">FMOD_DSP_TREMOLO_SPREAD</a>.</li>
|
||
<li>Phase - The LFO can be synchronized using the phase parameter which sets its instantaneous phase. Set with <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_tremolo_phase">FMOD_DSP_TREMOLO_PHASE</a>.</li>
|
||
</ul>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_tremolo">FMOD_DSP_TYPE_TREMOLO</a></p>
|
||
<h4 id="performance_25"><a href="#performance_25">Performance</a></h4>
|
||
<p>Tremolo is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h2 id="legacy-effects"><a href="#legacy-effects">10.2 Legacy Effects</a></h2>
|
||
<p>High-level descriptions of built <a href="glossary.html#effect">effects</a> that are superseded by newer improved effects.</p>
|
||
<h3 id="high-pass"><a href="#high-pass">10.2.1 High Pass</a></h3>
|
||
<p>Resonant high pass filter <a href="glossary.html#effect">effect</a>.</p>
|
||
<div class="admonition warning">
|
||
<p><strong>Development Status</strong>. Deprecated and will be removed in a future release</p>
|
||
</div>
|
||
<p>Use <a href="effects-reference.html#multiband-equalizer">Multiband Equalizer</a> as a replacement.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_highpass">FMOD_DSP_TYPE_HIGHPASS</a></p>
|
||
<h4 id="performance_26"><a href="#performance_26">Performance</a></h4>
|
||
<p>High Pass is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="high-pass-simple"><a href="#high-pass-simple">10.2.2 High Pass Simple</a></h3>
|
||
<p>This is a very simple single-order high pass filter. The emphasis is on speed rather than accuracy, so this should not be used for task requiring critical filtering.</p>
|
||
<div class="admonition warning">
|
||
<p><strong>Development Status</strong>. Deprecated and will be removed in a future release</p>
|
||
</div>
|
||
<p>Use <a href="effects-reference.html#multiband-equalizer">Multiband Equalizer</a> as a replacement.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_highpass_simple">FMOD_DSP_TYPE_HIGHPASS_SIMPLE</a></p>
|
||
<h4 id="performance_27"><a href="#performance_27">Performance</a></h4>
|
||
<p>High Pass Simple is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="low-pass"><a href="#low-pass">10.2.3 Low Pass</a></h3>
|
||
<p>A resonant low pass filter <a href="glossary.html#effect">effect</a>.</p>
|
||
<div class="admonition warning">
|
||
<p><strong>Development Status</strong>. Deprecated and will be removed in a future release</p>
|
||
</div>
|
||
<p>Use <a href="effects-reference.html#multiband-equalizer">Multiband Equalizer</a> as a replacement.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_lowpass">FMOD_DSP_TYPE_LOWPASS</a></p>
|
||
<h4 id="performance_28"><a href="#performance_28">Performance</a></h4>
|
||
<p>Low Pass is a <a href="effects-reference.html#current-effects">medium overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="low-pass-simple"><a href="#low-pass-simple">10.2.4 Low Pass Simple</a></h3>
|
||
<p>This is a very simple low pass filter <a href="glossary.html#effect">effect</a>, based on two single-pole RC time-constant modules.</p>
|
||
<p>The emphasis is on speed rather than accuracy, so this should not be used for task requiring critical filtering.</p>
|
||
<div class="admonition warning">
|
||
<p><strong>Development Status</strong>. Deprecated and will be removed in a future release</p>
|
||
</div>
|
||
<p>Use <a href="effects-reference.html#multiband-equalizer">Multiband Equalizer</a> as a replacement.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_lowpass_simple">FMOD_DSP_TYPE_LOWPASS_SIMPLE</a></p>
|
||
<h4 id="performance_29"><a href="#performance_29">Performance</a></h4>
|
||
<p>Low Pass Simple is a <a href="effects-reference.html#current-effects">low overhead</a> effect.</p>
|
||
<hr />
|
||
<h3 id="parametric-eq"><a href="#parametric-eq">10.2.5 Parametric EQ</a></h3>
|
||
<p>Parametric EQ is a single band peaking EQ filter <a href="glossary.html#effect">effect</a> that attenuates or amplifies a selected frequency and its neighboring frequencies.</p>
|
||
<p>When a frequency has its gain set to 1.0, the sound is unaffected and represents the original <a href="glossary.html#signal">signal</a> exactly.</p>
|
||
<div class="admonition warning">
|
||
<p><strong>Development Status</strong>. Deprecated and will be removed in a future release</p>
|
||
</div>
|
||
<p>Use <a href="effects-reference.html#multiband-equalizer">Multiband Equalizer</a> as a replacement.</p>
|
||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_parameq">FMOD_DSP_TYPE_PARAMEQ</a></p>
|
||
<h4 id="performance_30"><a href="#performance_30">Performance</a></h4>
|
||
<p>Parametric EQ is a <a href="effects-reference.html#current-effects">medium overhead</a> effect.</p>
|
||
<hr /></div>
|
||
|
||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||
</body>
|
||
</html>
|
||
|
||
</div>
|