Audio Editor: DSP Nodes – Arma Reforger

From Bohemia Interactive Community
(Page creation)
 
m (Text replacement - "(.+)$" to "$1 {{GameCategory|armaR|Modding|Audio}}")
 
(One intermediate revision by the same user not shown)
Line 27: Line 27:
}}
}}
}}
}}
The following is an overview of all available DSP effect classes that can be used in the Filter node. Assigned DSP effect classes will affect the input ports available to the Filter node.
{{Feature|informative|DSP effect classes can be assigned by clicking on "DSP Object" in a Filter node's Item Details.}}


== DSP Nodes ==
== DSP Nodes ==
Line 33: Line 37:


Abstract type that all DSP effects inherit from.
Abstract type that all DSP effects inherit from.
{| class="wikitable"
 
! colspan="4" | DSP Class Attributes
No attributes.
|-
| colspan="4" | The base class has no attributes.
|}


=== Biquad Filter ===
=== Biquad Filter ===


Applies a biquad filter<ref>{{Link|https://www.earlevel.com/main/2013/10/13/biquad-calculator-v2/}}</ref>.
Applies a biquad filter<ref>{{Link|https://www.earlevel.com/main/2013/10/13/biquad-calculator-v2/}}</ref>.
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 53: Line 52:
| Type of filter
| Type of filter
|  
|  
* ''LowPass''
* {{hl|LowPass}}
* ''HighPass''
* {{hl|HighPass}}
* ''BandPass''
* {{hl|BandPass}}
* ''Notch''
* {{hl|Notch}}
* ''PeakingEQ''
* {{hl|PeakingEQ}}
* ''LowShelf''
* {{hl|LowShelf}}
* ''HighShelf''
* {{hl|HighShelf}}
* ''AllPass''
* {{hl|AllPass}}
| No
| {{Icon|unchecked}}
|-
|-
| '''Fc'''
| '''Fc'''
| Cutoff/center frequency of the filter
| Cutoff/center frequency of the filter
| [20, 16000]
| [20, 16000]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Q'''
| '''Q'''
| Factor that controls the slope of the filter shape
| Factor that controls the slope of the filter shape
| [0.1, 20]
| [0.1, 20]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Gain'''
| '''Gain'''
Line 77: Line 76:
Available for "PeakingEQ", "LowShelf", "HighShelf" and "AllPass" '''Biquad Types'''.
Available for "PeakingEQ", "LowShelf", "HighShelf" and "AllPass" '''Biquad Types'''.
| [-18, 18]
| [-18, 18]
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 83: Line 82:


Introduces distortion by reducing the bit depth of the audio input to 8-bit<ref>{{Link|https://en.wikipedia.org/wiki/Audio_bit_depth}}</ref>.
Introduces distortion by reducing the bit depth of the audio input to 8-bit<ref>{{Link|https://en.wikipedia.org/wiki/Audio_bit_depth}}</ref>.
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 94: Line 91:
| An 8-digit string of '0's or '1's that specifies which of the 8 bits of the bit-crushed signal should be "enabled" (1) or "disabled" (0)
| An 8-digit string of '0's or '1's that specifies which of the 8 bits of the bit-crushed signal should be "enabled" (1) or "disabled" (0)
| String
| String
| No
| {{Icon|unchecked}}
|}
|}


Line 100: Line 97:


Implements dynamic range compression; Reduces the volume of the input signal if the specified threshold value is exceeded<ref>{{Link|https://en.wikipedia.org/wiki/Dynamic_range_compression}}</ref>.
Implements dynamic range compression; Reduces the volume of the input signal if the specified threshold value is exceeded<ref>{{Link|https://en.wikipedia.org/wiki/Dynamic_range_compression}}</ref>.
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 111: Line 106:
| Threshold value of the input level above which the gain begins to be reduced
| Threshold value of the input level above which the gain begins to be reduced
| [-50, 0] dB
| [-50, 0] dB
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Ratio'''
| '''Ratio'''
| Specifies the value of ''n'' in the ratio ''n'':1. This value controls the amount of gain reduction (e.g. a ratio of 2:1 tells us that if the input signal is 2 dB over the value of '''Threshold''', the resulting output level is reduced by 1 dB).
| Specifies the value of ''n'' in the ratio ''n'':1. This value controls the amount of gain reduction (e.g. a ratio of 2:1 tells us that if the input signal is 2 dB over the value of '''Threshold''', the resulting output level is reduced by 1 dB).
| [1, 50]
| [1, 50]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Attack'''
| '''Attack'''
| Specifies the amount of time [ms] that the output level takes to reach the value defined by '''Ratio'''
| Specifies the amount of time [ms] that the output level takes to reach the value defined by '''Ratio'''
| [1, 1000] ms
| [1, 1000] ms
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Release'''
| '''Release'''
| Specifies the amount of time [ms] that the compressor takes to "undo" gain reduction in the case that the signal level has decreased
| Specifies the amount of time [ms] that the compressor takes to "undo" gain reduction in the case that the signal level has decreased
| [1, 1000] ms
| [1, 1000] ms
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Knee Width'''
| '''Knee Width'''
| Controls the sharpness of the compressor's "knee"
| Controls the sharpness of the compressor's "knee"
| [0, 20]
| [0, 20]
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 137: Line 132:


Introduces distortion using non-linear transfer functions.
Introduces distortion using non-linear transfer functions.
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 148: Line 141:
| Defines which model of distortion will be applied
| Defines which model of distortion will be applied
|  
|  
* ''Reciprocal'' ''Inspired by the function: y = 1 / (abs(x) + 1)''
* {{hl|Reciprocal}} ''Inspired by the function: y = 1 / (abs(x) + 1)''
* ''SoftClipper'' ''Two-stage quadratic clipping function''
* {{hl|SoftClipper}} ''Two-stage quadratic clipping function''
* ''HardClipper'' ''Limits all samples above threshold to the threshold value''
* {{hl|HardClipper}} ''Limits all samples above threshold to the threshold value''
* ''BufferNormalize'' ''All samples in the buffer (10ms) are normalized to their peak value. Introduces heavy compression with crackling''
* {{hl|BufferNormalize}} ''All samples in the buffer (10ms) are normalized to their peak value. Introduces heavy compression with crackling''
* ''Foldback'' ''Waveform, instead of being clipped off, is reflected back like a mirror so that the top of the waveform is inverted.''
* {{hl|Foldback}} ''Waveform, instead of being clipped off, is reflected back like a mirror so that the top of the waveform is inverted.''
| No
| {{Icon|unchecked}}
|-
|-
| '''Drive'''
| '''Drive'''
Line 160: Line 153:
On the output, there is gain compensation applied, so the output loudness is not affected by the Drive value too much
On the output, there is gain compensation applied, so the output loudness is not affected by the Drive value too much
| [0, 60] dB
| [0, 60] dB
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 166: Line 159:


Implements dynamic range compression for a specified part of the frequency spectrum.
Implements dynamic range compression for a specified part of the frequency spectrum.
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 177: Line 168:
| Type of filter, compression will be applied to affected frequency bands
| Type of filter, compression will be applied to affected frequency bands
|  
|  
* ''PeakingEQ'' ''Compression will be applied around an area of which '''Fc''' represents the center frequency.''
* {{hl|PeakingEQ}} ''Compression will be applied around an area of which '''Fc''' represents the center frequency.''
* ''LowShelf'' ''Compression will be applied below '''Fc'''''
* {{hl|LowShelf}} ''Compression will be applied below '''Fc'''''
* ''HighShelf'' ''Compression will be applied above '''Fc'''''
* {{hl|HighShelf}} ''Compression will be applied above '''Fc'''''
| No
| {{Icon|unchecked}}
|-
|-
| '''Fc'''
| '''Fc'''
| Cutoff/center frequency of the filter
| Cutoff/center frequency of the filter
| [20, 16000]
| [20, 16000]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Q'''
| '''Q'''
| Factor that controls the slope of the filter shape
| Factor that controls the slope of the filter shape
| [0.1, 20]
| [0.1, 20]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Ratio'''
| '''Ratio'''
| Specifies the value of ''n'' in the ratio ''n'':1. This value controls the amount of gain reduction (e.g. a ratio of 2:1 tells us that if the input signal is 2 dB over the value of '''Threshold''', the resulting output level is reduced by 1 dB).
| Specifies the value of ''n'' in the ratio ''n'':1. This value controls the amount of gain reduction (e.g. a ratio of 2:1 tells us that if the input signal is 2 dB over the value of '''Threshold''', the resulting output level is reduced by 1 dB).
| [1, 50]
| [1, 50]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Threshold'''
| '''Threshold'''
| Threshold value of the input level above which the gain begins to be reduced
| Threshold value of the input level above which the gain begins to be reduced
| [-50, 0] dB
| [-50, 0] dB
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Attack'''
| '''Attack'''
| Specifies the amount of time [ms] that the output level takes to reach the value defined by '''Ratio'''
| Specifies the amount of time [ms] that the output level takes to reach the value defined by '''Ratio'''
| [1, 1000] ms
| [1, 1000] ms
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Release'''
| '''Release'''
| Specifies the amount of time [ms] that the compressor takes to "undo" gain reduction in the case that the signal level has decreased
| Specifies the amount of time [ms] that the compressor takes to "undo" gain reduction in the case that the signal level has decreased
| [1, 1000] ms
| [1, 1000] ms
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 216: Line 207:


Implements a 4-band equalizer
Implements a 4-band equalizer
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 227: Line 216:
| Gain [dB] of the first frequency band
| Gain [dB] of the first frequency band
| [-18, 18]
| [-18, 18]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Gain2'''
| '''Gain2'''
| Gain [dB] of the second frequency band
| Gain [dB] of the second frequency band
| [-18, 18]
| [-18, 18]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Gain3'''
| '''Gain3'''
| Gain [dB] of the third frequency band
| Gain [dB] of the third frequency band
| [-18, 18]
| [-18, 18]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Gain4'''
| '''Gain4'''
| Gain [dB] of the fourth frequency band
| Gain [dB] of the fourth frequency band
| [-18, 18]
| [-18, 18]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Fc1'''
| '''Fc1'''
| Cutoff frequency of the lowshelf filter
| Cutoff frequency of the lowshelf filter
| [50, 800]
| [50, 800]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Fc2'''
| '''Fc2'''
| Center frequency of the first peak filter
| Center frequency of the first peak filter
| [200, 3000]
| [200, 3000]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Fc3'''
| '''Fc3'''
| Center frequency of the second peak filter
| Center frequency of the second peak filter
| [1000, 8000]
| [1000, 8000]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Fc4'''
| '''Fc4'''
| Cutoff frequency of the highshelf filter
| Cutoff frequency of the highshelf filter
| [4000, 16000]
| [4000, 16000]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Qfactor2'''
| '''Qfactor2'''
| Factor that controls the slope of the first peak filter's shape
| Factor that controls the slope of the first peak filter's shape
| [0.1, 20]
| [0.1, 20]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Qfactor3'''
| '''Qfactor3'''
| Factor that controls the slope of the second peak filter's shape
| Factor that controls the slope of the second peak filter's shape
| [0.1, 20]
| [0.1, 20]
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 278: Line 267:


The algorithm mixes two identical signals together, one signal delayed by a small and gradually changing period.
The algorithm mixes two identical signals together, one signal delayed by a small and gradually changing period.
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 289: Line 276:
| Delay time of signal mixed to input signal
| Delay time of signal mixed to input signal
| [0.1, 20] ms
| [0.1, 20] ms
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Feedback'''
| '''Feedback'''
| Feedback loop gain. If -1 or 1, DSP will self oscillate.
| Feedback loop gain. If -1 or 1, DSP will self oscillate.
| [-1, 1]
| [-1, 1]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Frequency'''
| '''Frequency'''
| Sin shape LFO modulation frequency
| Sin shape LFO modulation frequency
| [0.1, 10] Hz
| [0.1, 10] Hz
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Depth'''
| '''Depth'''
| LFO depth
| LFO depth
| [0, 1]
| [0, 1]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Damping'''
| '''Damping'''
| Controls Lowpass filter applied on the feedback loop
| Controls Lowpass filter applied on the feedback loop
| [20, 20000] Hz
| [20, 20000] Hz
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Spread'''
| '''Spread'''
| Defines the LFO offset between the channels
| Defines the LFO offset between the channels
| [0, 1]
| [0, 1]
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


=== QuadDelay ===
=== QuadDelay ===


{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 330: Line 315:
| Left front delay line delay time.
| Left front delay line delay time.
| [10, 600] ms
| [10, 600] ms
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Delay Time 2'''
| '''Delay Time 2'''
| Left right delay line delay time.
| Left right delay line delay time.
| [10, 600] ms
| [10, 600] ms
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Delay Time 3'''
| '''Delay Time 3'''
| Left back delay line delay time.
| Left back delay line delay time.
| [10, 600] ms
| [10, 600] ms
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Delay Time 4'''
| '''Delay Time 4'''
| Right back delay line delay time.
| Right back delay line delay time.
| [10, 600] ms
| [10, 600] ms
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Attenuation Factor'''
| '''Attenuation Factor'''
| Adjusts distance attenuation of delayed sound calculated based on delay time.
| Adjusts distance attenuation of delayed sound calculated based on delay time.
| [0, 1]
| [0, 1]
| No
| {{Icon|unchecked}}
|-
|-
| '''Damping Min'''
| '''Damping Min'''
| Damping at Delay Time = 10ms. Interpolated between min/max based on delay time.
| Damping at Delay Time = 10ms. Interpolated between min/max based on delay time.
| [0, 1]
| [0, 1]
| No
| {{Icon|unchecked}}
|-
|-
| '''Damping Max'''
| '''Damping Max'''
| Damping at Delay Time = 600ms. Interpolated between min/max based on delay time.
| Damping at Delay Time = 600ms. Interpolated between min/max based on delay time.
| [0, 1]
| [0, 1]
| No
| {{Icon|unchecked}}
|-
|-
| '''Feedback Min'''
| '''Feedback Min'''
| Feedback at Delay Time = 10ms. Interpolated between min/max based on delay time.
| Feedback at Delay Time = 10ms. Interpolated between min/max based on delay time.
| [0, 1]
| [0, 1]
| No
| {{Icon|unchecked}}
|-
|-
| '''Feedback Max'''
| '''Feedback Max'''
| Feedback at Delay Time = 600ms. Interpolated between min/max based on delay time.
| Feedback at Delay Time = 600ms. Interpolated between min/max based on delay time.
| [0, 1]
| [0, 1]
| No
| {{Icon|unchecked}}
|-
|-
| '''Azimuth'''
| '''Azimuth'''
| Sets rotation of delay lines.
| Sets rotation of delay lines.
| [-180, 180] deg
| [-180, 180] deg
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 381: Line 366:


(Tries to) keep a specified output volume by automatically adjusting the gain of the input signal
(Tries to) keep a specified output volume by automatically adjusting the gain of the input signal
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 392: Line 375:
| Targetted output RMS level [dBFS]
| Targetted output RMS level [dBFS]
| [-60, 0] dBFS
| [-60, 0] dBFS
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Response Time'''
| '''Response Time'''
| Specifies how quickly [s] the normalization reacts to changes in the input signal
| Specifies how quickly [s] the normalization reacts to changes in the input signal
| [0.1, 10] s
| [0.1, 10] s
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 405: Line 388:


'''Works only for channels = 2 setup.'''
'''Works only for channels = 2 setup.'''
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 418: Line 399:
outR = delayIn
outR = delayIn
| [0.1, 20] ms
| [0.1, 20] ms
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 424: Line 405:


Implements a one pole filter. It has a 6dB/oct slope and is cheaper to compute than a biquad filter.
Implements a one pole filter. It has a 6dB/oct slope and is cheaper to compute than a biquad filter.
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 437: Line 416:
* LowPass
* LowPass
* HighPass
* HighPass
| No
| {{Icon|unchecked}}
|-
|-
| '''Frequency'''
| '''Frequency'''
| Cutoff Frequency of the filter
| Cutoff Frequency of the filter
| [40, 15000]
| [40, 15000]
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 448: Line 427:


Implements a limiter that uses a "Lookahead". Meaning a slight delay (5ms) in audio will be introduced in order to react even to quick peaks.
Implements a limiter that uses a "Lookahead". Meaning a slight delay (5ms) in audio will be introduced in order to react even to quick peaks.
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 459: Line 436:
| Threshold value of the input level above which the gain begins to be reduced
| Threshold value of the input level above which the gain begins to be reduced
| [-50, 0] dB
| [-50, 0] dB
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Attack'''
| '''Attack'''
| Specifies the amount of time [ms] that the output level takes to reach the value defined by the limiter's ratio
| Specifies the amount of time [ms] that the output level takes to reach the value defined by the limiter's ratio
| [1, 1000] ms
| [1, 1000] ms
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Release'''
| '''Release'''
| Specifies the amount of time [ms] that the compressor takes to "undo" gain reduction in the case that the signal level has decreased
| Specifies the amount of time [ms] that the compressor takes to "undo" gain reduction in the case that the signal level has decreased
| [1, 1000] ms
| [1, 1000] ms
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 475: Line 452:


A cascade of 7 first order all-pass filters modulated by a triangle-shaped LFO
A cascade of 7 first order all-pass filters modulated by a triangle-shaped LFO
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 486: Line 461:
| LFO modulation frequency
| LFO modulation frequency
| [0.1, 10] Hz
| [0.1, 10] Hz
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Feedback'''
| '''Feedback'''
| Feedback loop gain. If -1 or 1, DSP will self oscillate.
| Feedback loop gain. If -1 or 1, DSP will self oscillate.
| [-1, 1]
| [-1, 1]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Offset'''
| '''Offset'''
Line 500: Line 475:
Adds start offset to LFO. Offsets are spread evenly between channels. The last channel's LFO is offset by 0.5 * offset / period.
Adds start offset to LFO. Offsets are spread evenly between channels. The last channel's LFO is offset by 0.5 * offset / period.
| [0, 1]
| [0, 1]
| Yes, update toggleable but without effect (Bug)
| {{Icon|checked}} without effect (bug)
|-
|-
| '''Spread'''
| '''Spread'''
| Affects all pass filter frequency settings spread. If 0, all filters are set to the same frequency.
| Affects all pass filter frequency settings spread. If 0, all filters are set to the same frequency.
| [0, 1]
| [0, 1]
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 511: Line 486:


Implements a reverb, designed to model the reverb of a sound emitted into a room as perceived by a listener inside this room
Implements a reverb, designed to model the reverb of a sound emitted into a room as perceived by a listener inside this room
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 522: Line 495:
| Dimensions of the modeled room
| Dimensions of the modeled room
| n/a
| n/a
| No
| {{Icon|unchecked}}
|-
|-
| '''Source Position'''
| '''Source Position'''
| Position of the sound source within the room
| Position of the sound source within the room
| n/a
| n/a
| No
| {{Icon|unchecked}}
|-
|-
| '''Mic Position'''
| '''Mic Position'''
| Position of the listener within the room
| Position of the listener within the room
| n/a
| n/a
| No
| {{Icon|unchecked}}
|-
|-
| '''Absorption'''
| '''Absorption'''
| Absorption factor, emulating absorption of sound from the room's surfaces.
| Absorption factor, emulating absorption of sound from the room's surfaces.
| [0, 1]
| [0, 1]
| No
| {{Icon|unchecked}}
|-
|-
| '''Damping'''
| '''Damping'''
| Damping factor of the reverb. Higher value means more damping of higher frequencies
| Damping factor of the reverb. Higher value means more damping of higher frequencies
| [0, 1]
| [0, 1]
| No
| {{Icon|unchecked}}
|}
|}


Line 548: Line 521:


Implements a reverb.
Implements a reverb.
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 559: Line 530:
| Arbitrary factor for the size of the modeled room
| Arbitrary factor for the size of the modeled room
| [0, 1]
| [0, 1]
| No
| {{Icon|unchecked}}
|-
|-
| '''Damping'''
| '''Damping'''
| Damping factor of the reverb. Higher value means more damping of higher frequencies
| Damping factor of the reverb. Higher value means more damping of higher frequencies
| [0, 1]
| [0, 1]
| No
| {{Icon|unchecked}}
|-
|-
| '''Width'''
| '''Width'''
| Stereo width of the reverb
| Stereo width of the reverb
| [0, 1]
| [0, 1]
| No
| {{Icon|unchecked}}
|}
|}


Line 575: Line 546:


Implements a reverb, designed to model reverb within small rooms
Implements a reverb, designed to model reverb within small rooms
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 586: Line 555:
| Arbitrary time factor influencing how long it takes for early reflections to reach the listener
| Arbitrary time factor influencing how long it takes for early reflections to reach the listener
| [0, 1]
| [0, 1]
| Yes, update toggleable but without effect (Bug)
| {{Icon|checked}} without effect (bug)
|-
|-
| '''Late Reflections Time'''
| '''Late Reflections Time'''
| Arbitrary time factor influencing how long it takes for late reflections to reach the listener
| Arbitrary time factor influencing how long it takes for late reflections to reach the listener
| [0, 1]
| [0, 1]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Late Reflections Density'''
| '''Late Reflections Density'''
| Density factor of late reflections
| Density factor of late reflections
| [0, 1]
| [0, 1]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Late Reflections Damping'''
| '''Late Reflections Damping'''
| Damping factor of the late reflections. A higher value means more damping of higher frequencies
| Damping factor of the late reflections. A higher value means more damping of higher frequencies
| [0, 1]
| [0, 1]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Width'''
| '''Width'''
| Stereo width of the reverb
| Stereo width of the reverb
| [0, 1]
| [0, 1]
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 612: Line 581:


Amplitude modulation using a triangle-shaped LFO.
Amplitude modulation using a triangle-shaped LFO.
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 623: Line 590:
| Frequency of the LFO
| Frequency of the LFO
| [0.1, 100] Hz
| [0.1, 100] Hz
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Offset'''
| '''Offset'''
Line 632: Line 599:
Adds start offset to LFO. Offsets are spread evenly between channels. The last channel's LFO is offset by 0.5 * offset / period.
Adds start offset to LFO. Offsets are spread evenly between channels. The last channel's LFO is offset by 0.5 * offset / period.
| [0, 1]
| [0, 1]
| Yes, update toggleable
| {{Icon|checked}}
|}
|}


Line 638: Line 605:


A lowpass filter with variable rolloff
A lowpass filter with variable rolloff
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 649: Line 614:
| Cutoff frequency of the filter
| Cutoff frequency of the filter
| [100, 400] Hz
| [100, 400] Hz
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Rolloff'''
| '''Rolloff'''
| Filter rolloff
| Filter rolloff
| [0, 30]
| [0, 30]
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Order'''
| '''Order'''
| Filter order
| Filter order
| [2, 3]
| [2, 3]
| No
| {{Icon|unchecked}}
|}
|}


Line 665: Line 630:


A noise gate is an audio processor that works to eliminate sounds below a given threshold.
A noise gate is an audio processor that works to eliminate sounds below a given threshold.
{| class="wikitable"
{| class="wikitable align-center-col-4"
! colspan="4" | DSP Class Attributes
|-
! Attribute Name
! Attribute Name
! Description
! Description
Line 676: Line 639:
| Defines level at which gate opens.
| Defines level at which gate opens.
| [-60, 0] dB
| [-60, 0] dB
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Attack'''
| '''Attack'''
| Specifies the amount of time [ms] that takes for gate to fully open.
| Specifies the amount of time [ms] that takes for gate to fully open.
| [0, 500] ms
| [0, 500] ms
| Yes, update toggleable
| {{Icon|checked}}
|-
|-
| '''Release'''
| '''Release'''
| Specifies the amount of time [ms] that the gate to fully close.
| Specifies the amount of time [ms] that the gate to fully close.
| [0, 500] ms
| [0, 500] ms
| Yes, update toggleable
| {{Icon|checked}}
|}
|}




{{GameCategory|armaR|Modding|Official Tools}}
{{GameCategory|armaR|Modding|Official Tools}}
{{GameCategory|armaR|Modding|Audio}}

Latest revision as of 14:30, 26 February 2025

The following is an overview of all available DSP effect classes that can be used in the Filter node. Assigned DSP effect classes will affect the input ports available to the Filter node.

DSP effect classes can be assigned by clicking on "DSP Object" in a Filter node's Item Details.


DSP Nodes

Base

Abstract type that all DSP effects inherit from.

No attributes.

Biquad Filter

Applies a biquad filter[1].

Attribute Name Description Value Range Input Port
Biquad Type Type of filter
  • LowPass
  • HighPass
  • BandPass
  • Notch
  • PeakingEQ
  • LowShelf
  • HighShelf
  • AllPass
Unchecked
Fc Cutoff/center frequency of the filter [20, 16000] Checked
Q Factor that controls the slope of the filter shape [0.1, 20] Checked
Gain Gain [dB] of the filter

Available for "PeakingEQ", "LowShelf", "HighShelf" and "AllPass" Biquad Types.

[-18, 18] Checked

Bitcrusher

Introduces distortion by reducing the bit depth of the audio input to 8-bit[2].

Attribute Name Description Value Range Input Port
Bit Mask An 8-digit string of '0's or '1's that specifies which of the 8 bits of the bit-crushed signal should be "enabled" (1) or "disabled" (0) String Unchecked

Compressor

Implements dynamic range compression; Reduces the volume of the input signal if the specified threshold value is exceeded[3].

Attribute Name Description Value Range Input Port
Threshold Threshold value of the input level above which the gain begins to be reduced [-50, 0] dB Checked
Ratio Specifies the value of n in the ratio n:1. This value controls the amount of gain reduction (e.g. a ratio of 2:1 tells us that if the input signal is 2 dB over the value of Threshold, the resulting output level is reduced by 1 dB). [1, 50] Checked
Attack Specifies the amount of time [ms] that the output level takes to reach the value defined by Ratio [1, 1000] ms Checked
Release Specifies the amount of time [ms] that the compressor takes to "undo" gain reduction in the case that the signal level has decreased [1, 1000] ms Checked
Knee Width Controls the sharpness of the compressor's "knee" [0, 20] Checked

Distortion

Introduces distortion using non-linear transfer functions.

Attribute Name Description Value Range Input Port
Distortion Type Defines which model of distortion will be applied
  • Reciprocal Inspired by the function: y = 1 / (abs(x) + 1)
  • SoftClipper Two-stage quadratic clipping function
  • HardClipper Limits all samples above threshold to the threshold value
  • BufferNormalize All samples in the buffer (10ms) are normalized to their peak value. Introduces heavy compression with crackling
  • Foldback Waveform, instead of being clipped off, is reflected back like a mirror so that the top of the waveform is inverted.
Unchecked
Drive In the case of the Reciprocal type, it boosts the input signal. For other types, this value is used with an inverted sign as a threshold.

On the output, there is gain compensation applied, so the output loudness is not affected by the Drive value too much

[0, 60] dB Checked

Dynamic Equalizer

Implements dynamic range compression for a specified part of the frequency spectrum.

Attribute Name Description Value Range Input Port
Biquad Type Type of filter, compression will be applied to affected frequency bands
  • PeakingEQ Compression will be applied around an area of which Fc represents the center frequency.
  • LowShelf Compression will be applied below Fc
  • HighShelf Compression will be applied above Fc
Unchecked
Fc Cutoff/center frequency of the filter [20, 16000] Checked
Q Factor that controls the slope of the filter shape [0.1, 20] Checked
Ratio Specifies the value of n in the ratio n:1. This value controls the amount of gain reduction (e.g. a ratio of 2:1 tells us that if the input signal is 2 dB over the value of Threshold, the resulting output level is reduced by 1 dB). [1, 50] Checked
Threshold Threshold value of the input level above which the gain begins to be reduced [-50, 0] dB Checked
Attack Specifies the amount of time [ms] that the output level takes to reach the value defined by Ratio [1, 1000] ms Checked
Release Specifies the amount of time [ms] that the compressor takes to "undo" gain reduction in the case that the signal level has decreased [1, 1000] ms Checked

Equalizer4

Implements a 4-band equalizer

Attribute Name Description Value Range Input Port
Gain1 Gain [dB] of the first frequency band [-18, 18] Checked
Gain2 Gain [dB] of the second frequency band [-18, 18] Checked
Gain3 Gain [dB] of the third frequency band [-18, 18] Checked
Gain4 Gain [dB] of the fourth frequency band [-18, 18] Checked
Fc1 Cutoff frequency of the lowshelf filter [50, 800] Checked
Fc2 Center frequency of the first peak filter [200, 3000] Checked
Fc3 Center frequency of the second peak filter [1000, 8000] Checked
Fc4 Cutoff frequency of the highshelf filter [4000, 16000] Checked
Qfactor2 Factor that controls the slope of the first peak filter's shape [0.1, 20] Checked
Qfactor3 Factor that controls the slope of the second peak filter's shape [0.1, 20] Checked

Flanger

The algorithm mixes two identical signals together, one signal delayed by a small and gradually changing period.

Attribute Name Description Value Range Input Port
Delay Time Delay time of signal mixed to input signal [0.1, 20] ms Checked
Feedback Feedback loop gain. If -1 or 1, DSP will self oscillate. [-1, 1] Checked
Frequency Sin shape LFO modulation frequency [0.1, 10] Hz Checked
Depth LFO depth [0, 1] Checked
Damping Controls Lowpass filter applied on the feedback loop [20, 20000] Hz Checked
Spread Defines the LFO offset between the channels [0, 1] Checked

QuadDelay

Attribute Name Description Value Range Input Port
Delay Time 1 Left front delay line delay time. [10, 600] ms Checked
Delay Time 2 Left right delay line delay time. [10, 600] ms Checked
Delay Time 3 Left back delay line delay time. [10, 600] ms Checked
Delay Time 4 Right back delay line delay time. [10, 600] ms Checked
Attenuation Factor Adjusts distance attenuation of delayed sound calculated based on delay time. [0, 1] Unchecked
Damping Min Damping at Delay Time = 10ms. Interpolated between min/max based on delay time. [0, 1] Unchecked
Damping Max Damping at Delay Time = 600ms. Interpolated between min/max based on delay time. [0, 1] Unchecked
Feedback Min Feedback at Delay Time = 10ms. Interpolated between min/max based on delay time. [0, 1] Unchecked
Feedback Max Feedback at Delay Time = 600ms. Interpolated between min/max based on delay time. [0, 1] Unchecked
Azimuth Sets rotation of delay lines. [-180, 180] deg Checked

LoudnessNormalization

(Tries to) keep a specified output volume by automatically adjusting the gain of the input signal

Attribute Name Description Value Range Input Port
Target Level Targetted output RMS level [dBFS] [-60, 0] dBFS Checked
Response Time Specifies how quickly [s] the normalization reacts to changes in the input signal [0.1, 10] s Checked

MonoToStereo

Creates a pseudo stereo output from a mono input.

Works only for channels = 2 setup.

Attribute Name Description Value Range Input Port
Delay Time outL = -delayIn

outR = delayIn

[0.1, 20] ms Checked

OnePoleFilter

Implements a one pole filter. It has a 6dB/oct slope and is cheaper to compute than a biquad filter.

Attribute Name Description Value Range Input Port
Filter Type Type of Filter
  • LowPass
  • HighPass
Unchecked
Frequency Cutoff Frequency of the filter [40, 15000] Checked

PeakLimiter

Implements a limiter that uses a "Lookahead". Meaning a slight delay (5ms) in audio will be introduced in order to react even to quick peaks.

Attribute Name Description Value Range Input Port
Threshold Threshold value of the input level above which the gain begins to be reduced [-50, 0] dB Checked
Attack Specifies the amount of time [ms] that the output level takes to reach the value defined by the limiter's ratio [1, 1000] ms Checked
Release Specifies the amount of time [ms] that the compressor takes to "undo" gain reduction in the case that the signal level has decreased [1, 1000] ms Checked

Phaser

A cascade of 7 first order all-pass filters modulated by a triangle-shaped LFO

Attribute Name Description Value Range Input Port
Frequency LFO modulation frequency [0.1, 10] Hz Checked
Feedback Feedback loop gain. If -1 or 1, DSP will self oscillate. [-1, 1] Checked
Offset Works only if channelCount > 1

Can be set via a signal, but is evaluated only at the playback start and can not be changed during playback.

Adds start offset to LFO. Offsets are spread evenly between channels. The last channel's LFO is offset by 0.5 * offset / period.

[0, 1] Checked without effect (bug)
Spread Affects all pass filter frequency settings spread. If 0, all filters are set to the same frequency. [0, 1] Checked

Reverb

Implements a reverb, designed to model the reverb of a sound emitted into a room as perceived by a listener inside this room

Attribute Name Description Value Range Input Port
Room Dimension Dimensions of the modeled room n/a Unchecked
Source Position Position of the sound source within the room n/a Unchecked
Mic Position Position of the listener within the room n/a Unchecked
Absorption Absorption factor, emulating absorption of sound from the room's surfaces. [0, 1] Unchecked
Damping Damping factor of the reverb. Higher value means more damping of higher frequencies [0, 1] Unchecked

Reverb2

Implements a reverb.

Attribute Name Description Value Range Input Port
Room Size Arbitrary factor for the size of the modeled room [0, 1] Unchecked
Damping Damping factor of the reverb. Higher value means more damping of higher frequencies [0, 1] Unchecked
Width Stereo width of the reverb [0, 1] Unchecked

SmallRoomReverb

Implements a reverb, designed to model reverb within small rooms

Attribute Name Description Value Range Input Port
Early Reflections Time Arbitrary time factor influencing how long it takes for early reflections to reach the listener [0, 1] Checked without effect (bug)
Late Reflections Time Arbitrary time factor influencing how long it takes for late reflections to reach the listener [0, 1] Checked
Late Reflections Density Density factor of late reflections [0, 1] Checked
Late Reflections Damping Damping factor of the late reflections. A higher value means more damping of higher frequencies [0, 1] Checked
Width Stereo width of the reverb [0, 1] Checked

Tremolo

Amplitude modulation using a triangle-shaped LFO.

Attribute Name Description Value Range Input Port
Frequency Frequency of the LFO [0.1, 100] Hz Checked
Offset Works only if channelCount > 1

Can be set via a signal, but is evaluated only at the playback start and can not be changed during playback.

Adds start offset to LFO. Offsets are spread evenly between channels. The last channel's LFO is offset by 0.5 * offset / period.

[0, 1] Checked

VariableRolloffLPF

A lowpass filter with variable rolloff

Attribute Name Description Value Range Input Port
Fc Cutoff frequency of the filter [100, 400] Hz Checked
Rolloff Filter rolloff [0, 30] Checked
Order Filter order [2, 3] Unchecked

NoiseGate

A noise gate is an audio processor that works to eliminate sounds below a given threshold.

Attribute Name Description Value Range Input Port
Threshold Defines level at which gate opens. [-60, 0] dB Checked
Attack Specifies the amount of time [ms] that takes for gate to fully open. [0, 500] ms Checked
Release Specifies the amount of time [ms] that the gate to fully close. [0, 500] ms Checked