Commit 6bfd5e0b authored by fpa's avatar fpa
Browse files

changes until Renderer:MyBinauralRoomAcoustics

parent ee414e19
......@@ -378,7 +378,7 @@ Note: The order of devices in the output group is irrelevant for the final resul
<h5>Microphone setup example</h5>
<p>
The audio input setup is similar to the output configuration, but is not yet included fully in VA. If you want to use input channels as signal sources for a virtual sound source, assign the provided unmanaged signals called <code>audioinput1, audioinput2, ... </code>. The number refers to the input channel index beginng with 1 and you can get the signals by using the getters <code>GetSignalSourceInfos</code> or <code>GetSignalSourceIDs</code>.
The audio input configuration is similar to the output configuration but is not yet fully included in VA. If you want to use input channels as signal sources for a virtual sound source assign the provided unmanaged signals called <code>audioinput1, audioinput2, ... </code>. The number refers to the input channel index beginning with 1 and you can get the signals by using the getters <code>GetSignalSourceInfos</code> or <code>GetSignalSourceIDs</code>.
<pre><code>[Setup]
[InputDevice:NeumannTLM170]
......@@ -410,14 +410,14 @@ DefaultShiftSpeed = 0.0, 0.0, 0.0 # 3D vector in m/s</code></pre>
<h4>Rendering module configuration</h4>
<p>
To instantiate a rendering module a section with a <code>Renderer:</code> suffix has to be included. The statement following <code>:</code> will be the unique identifier of this rendering instance. If you want to change parameters during execution, this identifier is required to call the instance. All renderers requires some obligatory definitions, but for the specific parameter set a detailed description is necessary. For typical renderers, some examples are given below.
To instantiate a rendering module, a section with a <code>Renderer:</code> suffix has to be included. The statement following <code>:</code> will be the unique identifier of this rendering instance. If you want to change parameters during execution this identifier is required to call the instance. Although all renderers require some obligatory definitions, a detailed description is necessary for the specific parameter set. For typical renderers, some examples are given below.
</p>
<h5>Required rendering module parameters</h5>
<p>
<pre><code>Class = RENDERING_CLASS
Reproductions = REPRODUCTION_INSTANCE(S)</pre></code>
The rendering class refers to the type of renderer, which can be taken from the tables in the <a href="overview.html#rendering">overview</a> section.<br />
The <code>Reproductions</code> describe the connections to reproduction modules. At least one reproduction has to be defined, but the rendering stream can also be connected to multiple reproductions of same or different type (e.g. talkthrough, equalized headphones and cross-talk cancellation). The only restriction is, that the rendering output channel number has to match with the reproduction module's input channel number. This prevents connecting a two-channel binaural renderer with e.g. an Ambisonics reproduction, which would take at least 4 channels.
The rendering class refers to the type of renderer which can be taken from the tables in the <a href="overview.html#rendering">overview</a> section.<br />
The section <code>Reproductions</code> describes how to configure connections to reproduction modules. At least one reproduction module has to be defined but the rendering stream can also be connected to multiple reproductions of same or different type (e.g., talkthrough, equalized headphones and cross-talk cancellation). The only restriction is that the rendering output channel number has to match the reproduction module's input channel number. This prevents connecting a two-channel binaural renderer with, for example, an Ambisonics reproduction which would take at least 4 channels.
</p>
<h5>Optional rendering module parameters</h5>
......@@ -428,16 +428,16 @@ OutputDetectorEnabled = false
RecordOutputEnabled = false
RecordOutputFilePath = MyRenderer_filename_may_including_$(ProjectName)_macro.wav
</pre></code>
Rendering modules can be <i>enabled and disabled</i> to fast setup changes without copy & pasting larger parts of a configuration section, because especially reproduction modules can only be instantiated if the sound card provides enough channels. This makes testing on a desktop and switching to a lab environment easier.
Rendering modules can be <i>enabled and disabled</i> to speed up setup changes without copying & pasting larger parts of a configuration section, as especially reproduction modules can only be instantiated if the sound card provides enough channels. This makes testing on a desktop PC and switching to a laboratory environment easier.
<br />
For rendering modules, only the <i>output</i> can be observed. A stream detector for the output can be activated that will produce level meter values, e.g. for a GUI widget. The output of the active listener can also be recorded and exported to a WAV file. Recording starts with initialization and is exported to harddrive after finalization, which implicits that data is kept in the RAM. If high channel numbers are required and/or long recording sessions are planned, it is recommended to route the output through a DAW, instead, i.e. with ASIO re-routing software devices like Reapers ReaRoute ASIO driver. To include a more versatile output file name, macros are allowed.
For rendering modules, only the <i>output</i> can be observed. A stream detector for the output can be activated that will produce level meter values, for example, for a GUI widget. The output of the active listener can also be recorded and exported as a WAV file. Recording starts with initialization and is exported to the hard disc drive after finalization impliciting that data is kept in the RAM. If a high channel number is required and/or long recording sessions are planned it is recommended to route the output through a DAW, instead, i.e. with ASIO re-routing software devices like Reapers ReaRoute ASIO driver. To include a more versatile output file name (macros are allowed).
</p>
<h5>Binaural free field renderer (class <code>BinauralFreeField</code>) example</h5>
<p>
This example with all available key/value config pairs is taken from the default <code>VACore.ini</code> settings that is generated from the repository's <code>VACore.ini.proto</code> (by CMake). It requires a reproduction called <code>MyTalkthroughHeadphones</code>, which is shown further below.
This example with all available key/value configuration pairs is include in the default <code>VACore.ini</code> settings which is generated from the repository's <code>VACore.ini.proto</code> (by CMake). It requires a reproduction called <code>MyTalkthroughHeadphones</code>, shown further below.
<pre><code>[Renderer:MyBinauralFreeField]
Class = BinauralFreeField
Enabled = true
......@@ -455,13 +455,13 @@ OutputDetectorEnabled = false
RecordOutputEnabled = false
RecordOutputFilePath = MyRenderer_filename_may_including_$(ProjectName)_macro.wav</pre></code>
The deeper meaning of motion model and further parameters are described in the <a href="documentation">documentation</a> on how the rendering works.
A more detailed explanation of the motion model and further parameters are provided in the <a href="documentation">documentation</a> specifying how the rendering works.
</p>
<h5>VBAP free field renderer (class <code>VBAPFreeField</code>) example</h5>
<p>
Requires <code>Output</code> (3-d positions of a loudspeaker setup) to render channel-based audio. Otherwise works similar to other free field renderers.
Requires <code>Output</code> (3-d positions of a loudspeaker setup) to render channel-based audio. Otherwise, it works similar to other free field renderers.
<pre><code>[Renderer:MyVBAPFreefield]
Class = VBAPFreeField
Enabled = true
......@@ -472,7 +472,7 @@ Reproductions = MixdownHeadphones</pre></code>
<h5>Ambisonics free field renderer (class <code>AmbisonicsFreeField</code>) example</h5>
<p>
Similar to binaural free field renderer, but evaluates receiver directions based on spherical decomposition for given order (<code>TruncationOrder</code>). It requires a reproduction called <code>MyAmbisonicsDecoder</code>, which is shown further below.
Similar to binaural free field renderer, but evaluates receiver directions based on a decomposition into spherical harmonics with a specific order (<code>TruncationOrder</code>). It requires a reproduction called <code>MyAmbisonicsDecoder</code> which is shown further below.
<pre><code>[Renderer:MyAmbisonicsFreeField]
Class = AmbisonicsFreeField
Enabled = true
......@@ -494,7 +494,7 @@ RecordOutputFilePath = MyRenderer_filename_may_including_$(ProjectName)_macro.wa
<h5>Ambient mixing renderer (class <code>AmbientMixer</code>) example</h5>
<p>
The ambient mixer inspects the value of the key <code>OutputGroup</code> to match the channel number for playback. Subsequent reproductions require matching channels for the output group this rendering module will produce sound, but an arbitrary number can be connected, as shown here.
The ambient mixer takes the value of the key <code>OutputGroup</code> and accordingly sets the channel count for playback as subsequent reproduction modules require matching channels. However, an arbitrary number of reproduction modules can be specified, as shown in the following example.
<pre><code>[Renderer:MyAmbientMixer]
Class = AmbientMixer
Description = Low-cost renderer to make sound audible without spatializations
......@@ -505,7 +505,7 @@ Reproductions = MyDesktopHP, MySubwooferArray</pre></code>
<h5>Binaural artificial room acoustics renderer (class <code>BinauralArtificialReverb</code>) example</h5>
<p>
Values are in SI units (seconds, meters, watts, etc.), angles in degree. The reverberation time may exceed the reverberation filter length (devided by the sampling rate) but the generated impulse response will be cropped. Requires and uses sound receiver HRIR for spatialization. Adapt sound power correction to match with direct sound if combined with binaural free field renderer.
Values are specified in SI units (e.g., seconds, meters, watts, etc.), and angles are in degrees. The reverberation time may exceed the reverberation filter length (divided by the sampling rate) but the generated impulse response will be cropped. This renderer requires and uses sound receiver HRIR for spatialization, and adapts sound power correction to match with direct sound if used together with the binaural free field renderer.
<pre><code>[Renderer:MyBinauralArtificialRoom]
Class = BinauralArtificialReverb
Description = Low-cost per receiver artificial reverberation effect
......@@ -523,9 +523,9 @@ MaxReflectionDensity = 12000.0
ScatteringCoefficient = 0.1</pre></code>
</p>
<h5>Binaural artificial room acoustics renderer (class <code>BinauralRoomAcoustics</code>) example</h5>
<h5>Binaural room acoustics renderer (class <code>BinauralRoomAcoustics</code>) example</h5>
<p>
Requires Room Acoustics for Virtual ENvironments (RAVEN) or other room acoustics simulation backends. The reverberation time may exceed the reverberation filter length (devided by the sampling rate) but the generated impulse response will be cropped. Requires and uses sound receiver HRIR for spatialization. Adapt sound power correction to match with direct sound if combined with binaural free field renderer.
Requires the Room Acoustics for Virtual ENvironments (RAVEN) software module or other room acoustics simulation backends [Reference???]. Note that the reverberation time may exceed the reverberation filter length (divided by the sampling rate) with the consequence that the generated impulse response will be cropped. Requires and uses sound receiver HRIR for spatialization. Adapt sound power correction to match with direct sound if combined with binaural free field renderer.
<pre><code>[Renderer:MyBinauralRoomAcoustics]
Class = BinauralRoomAcoustics
Enabled = true
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment