Audio Editor: Nodes – Arma Reforger

From Bohemia Interactive Community
Revision as of 14:40, 1 February 2024 by Lou Montana (talk | contribs) (Fix hl template usage error)
Jump to navigation Jump to search

Nodes are the fundamental building blocks that are used within the Audio Editor to create audio signal chains. There are a variety of different nodes, each with a specific purpose that modifies the sound or introduces some logic at its respective position in the chain.

Connecting a series of nodes together allows to create chains that produce sounds with varying degrees of complexity. This page serves as a reference for the usage of each type of node.

Note that there are certain fundamental nodes that must be present in a chain in order for a sound to be playable. These are namely:

  • a node that outputs an audio waveform: either a Bank or a Generator
  • a Sound node



Audio Editor Node Types

Nodes can be grouped into two main categories: resource and local. A node of the resource type is saved as a separate resource file and can be shared between multiple .acp files, while a node of the local type is stored in the .acp file itself and cannot be shared with other .acps.

Nodes of the resource type will appear on the design canvas with sharp corners, while nodes of the local type will appear with rounded corners.

Contents

Resource

Signal

Extension: .sig

Description: Takes one or more inputs and transforms them into one or more outputs that can be used to feed the inputs to other nodes. The internal logic that defines the input/output behavior can be edited inside the Signal Editor - BIKI by double-clicking on the node.

Input ports: Variable

Item detail:

Category Attribute Name Description
Inputs Name Input name (non-editable, defined inside the Signal Editor) *
Value Value of the input in case nothing is connected (otherwise this value is overridden by whatever is connected)
Min Minimum value of the signal input **
Max Maximum value of the signal output **
ValRT Slider that controls Value

* For connection with in-game signals, the name of the signal should correspond to the one defined in gamecode/script.

** This parameter has no effect on in-game signals or anything else connected to the signal input.

Mixer

Alias: OutputState, FinalMix

Extension: .afm

Description: This node serves as a way to group sounds based on type so that they can be processed as a unit before being sent to the final output(s). As with the Signal node, this node contains some internal logic that defines how each sound group is processed. This internal logic can be edited by double-clicking on the node.

Input ports: Variable depending on the value of the Inputs parameter

Local

BankLocal

Description: A collection of raw audio samples, of which one is selected to be played based on some selection method.

Input ports:

Name Type Description
Volume Signal Volume modifier [dB]
Pitch Signal Pitch modifier [semitones]
Replacer Special-purpose node Allows bank to be controlled by a Replacer. Hidden by default unless Enable replacer port attribute is checked.
Offset Signal Start position defined in milliseconds. Hidden by default unless Enable offset port attribute is checked.

Item detail:

Category Attribute Name Description Value Range
General Volume Volume [dB], applied to all samples in the bank [-60, +12] dB
Volume variance Volume randomization factor; maximum deviation from the value of Volume [0, +12] dB
Pitch Pitch shift in semitones applied to all samples in the bank [-12, +12] semitones
Pitch variance Pitch randomization factor; maximum deviation in semitones from the value of Pitch [0, 2] semitones
Loop count Number of times that the played sample is repeated [0, 255]
Loop begin The first sample of the region to be looped
  • Loop count defines the number of repetition
  • When Offset is used, then the value must be greater than Offset
Loop length Length of the loop region, in samples.
  • The value of Loop begin + Loop length must be greater than Offset
  • length
Infinite Loop If enabled, the played sample is repeated infinitely until the sound is stopped true/false
Selection Method for selecting a sample
  • RandomNoRepeat: Samples selected at random, with the exception that the same sample is not repeated twice in a row
  • Random: Samples selected at random
  • SequenceFromFirst: Samples played in sequence, starting with the first sample
  • FirstRandomAndSequence: Samples played in sequence, starting with a randomly-selected sample
  • RandomNoRepeatGlobal: Ensures that the RandomNoRepeat condition is fulfilled when multiple game entities can play the same sample
  • CustomSignalIndex: When this option is selected, a new input port is added to the bank that allows a sample to be selected based on the signal value
Resampler Resampling method, for converting between different sample rates [1]
  • Point: No interpolation (fastest, least accurate) [2]
  • Linear: Interpolation (slower, but more accurate than point) [2]
  • FIR (4/8/16): FIR filter that implements resampling (slowest but most accurate) [3]
Fade Fade-in/out function Defines the "shape" of the volume change during fade-in/out
  • Linear: TODO: link to visual plot
  • SCurve: TODO: link to visual plot
Fade-in/out time Time that it takes for the fade to complete (0: no fade in/out) [0, 10000] ms
Flags Disable streaming When the size of the file is >256kB, then the sample is streamed in 16kB blocks. This flag suppresses streaming and the sample is loaded into memory (a single block of data).

The flag is ignored when the size of the file is >16MB.

true/false
Disable updating Disables updating of bank inputs (Volume and Pitch) during playback if true. Recommended if:
  • The Volume & Pitch inputs are not connected to anything
  • The Volume & Pitch ports have signal inputs that are static
true/false
Preload Loads all samples into memory before any of them are played for the first time true/false
Enable replacer port If enabled, creates a new input port for a Replacer node true/false
Samples Samples List of audio samples n/a
Samples/Filename Link to the sample (.wav format) n/a
Samples/Probability In case of a randomized selection method, this parameter defines the probability that the sample will be selected.* [0, 100]
Samples/Index Custom signal index [0, inf+]
Samples/Metadata

* Note that this value does not indicate the probability as a percentage. The probability in % can be obtained by dividing this value by the sum of the probabilities of all samples in the bank, then multiplying by 100.

Bus

Description: Mixes down all audio streams fed to the "In" port to a single output

Input ports:

Name Type Description
In Audio Accepts one or more audio streams
Volume Signal Volume modifier [dB]
DSP Special-purpose node Accepts a Filter or FilterChain

Item detail:

Category Attribute Name Description Value Range
Limitation Source Limit Max number of inputs playing at a time. Quietest ones muted if limit exceeded. [0, 255]
Source Limit Type Specifies when the Source Limit is evaluated
  • Static: Limit is evaluated once at the beginning of playback
  • Dynamic: Limit is evaluated continuously during playback
Unsorted Channels Number of output channels [1, 8]
Sample Rate Sample rate [Hz] {8000, 11025, 16000, 32000, 44100, 48000, 64000, 96000, 192000} Hz
Volume Volume modifier [dB] [-60, 12] dB
Resampler Resampling method, for converting between different sample rates [1]
  • Point: No interpolation (fastest, least accurate) [2]
  • Linear: Interpolation (slower, but more accurate than point) [2]
  • FIR (4/8/16): FIR filter that implements resampling (slowest but most accurate) [3]

Sound

Description: The root node of a signal chain. Must be present in every chain in order for sound to be playable.

Input ports:

Name Type Description
In Audio Accepts the audio output from one or more branches
Volume Signal Volume modifier [dB]
Trigger Signal Accepts a signal whose value can be used to trigger playback of the sound
DSP Special-purpose node Accepts a Filter or FilterChain
Master Sound node Accepts a Sound node that controls the start/stop behavior of this node

Item detail:

Category Attribute Name Description Value Range
General Volume Volume modifier [dB] [-60, 12] dB
Priority Factor that is taken into account when determining which sources to keep or destroy in case the limit of playing sources is exceeded. Sounds with lower priority are more likely to be destroyed than sounds with higher priority. [0, 100]
Delay Time Delay time [ms] before sound is played [0, 10000] ms
No-Repeat Time Time [ms] below which sound events with the same name will be ignored [0, 1000] ms
Flags Skip Inaudible If enabled, sounds below the threshold of audibility are not played true/false
Bypass Volume Test If enabled, volume is not considered when determining which sources to destroy in case the limit of playing sources is exceeded true/false
Speed of Sound Simulates delayed playback due to the speed of sound

Warning: only the playback start time is delayed - other sound-related parameters (i.e. signals and transformation) are not delayed which may cause a mismatch between audio and visuals.

true/false
Updating disabled Performance optimization: only Shader node is updated during playback; any other nodes in the chain remain in their "initialization" states. true/false
Early Reflections Simulates early reflections from this sound true/false
Transformation Transformation Specifies the position from which this sound is played Entity: Sound is played from the position of the entity which the .acp file is attached to

Bone: Sound is played from the bone specified in Bone Name on the entity which the .acp file is attached to

Bone Name Name of the bone on the entity on which sound is played (hidden if Transformation is different from Bone) String
Static If enabled, transformation is not updated during playback true/false
Trigger Type Trigger type Continuous: Sound is triggered and continues to repeat if the value of the signal connected to the Trigger port is different from 0.

One shot: Sound is triggered once based on the values of Threshold and Reset.

Threshold Value that the signal connected to the Trigger port needs to exceed before sound is triggered Threshold >= Reset
Reset Value below which the signal needs to be before a new sound can be triggered Reset <= Threshold
Slave Event Type If this sound is a slave (i.e. if the Master port is connected to another sound), this parameter defines its start/stop behavior in response to the master. Start-Stop: Slave starts/stops when Master starts/stops

OnStart-Start: Slave starts when Master starts

OnStart-Stop: Slave stops when Master starts

Selector

Description: This node gives the user the ability to split the signal chain into multiple branches. On playback, the Selector will select one branch to connect to the chain, and leave the others disconnected based on the value of the control signal.

Input ports:

Name Type Description
Signal Signal Control signal whose value decides which of the following ports will be selected
(Varying number of user-defined ports) Audio The branch connected to this port becomes the output if the control signal falls within the Min/Max range defined for this port

Item detail:

Category Attribute Name Description Value Range
Ports Min Lower bound of this port's range (Unlimited)
Max Upper bound of this port's range (Unlimited)
Volume Volume modifier [dB] applied to the branch connected to this port [-60, 12] dB
Default If enabled, this port will be selected if the control signal does not fall within the range of any of the ports true/false

Generator

Description: Outputs a variety of different waveforms as audio. Used primarily for testing/prototyping purposes.

Input ports:

Name Type Description
Time Signal Controls the Time parameter

Item detail:

Category Attribute Name Description Value Range
Default Function Specifies the function/shape of the waveform that is output
  • Sine
  • Square
  • Sawtooth
  • Triangle
  • White noise
  • Pink noise
  • Brownian noise
  • Silence
Channels Number of output channels (Unlimited)
Sample Rate Sample rate [Hz] {8000, 11025, 16000, 32000, 44100, 48000, 64000, 96000, 192000} Hz
Time Length of time [ms] that the sound lasts [0, 10000] ms
Volume Volume modifier [dB] [-60, 12] dB
Loop Count Number of times that the sound is repeated [0, 255]
Frequency Frequency of the tone (hidden if not applicable to the Type) [1, 20000]
Envelope Attack Curve Defines the curvature/shape of the attack (fade in).
  • Linear
  • SCurve
Attack Time Length of the attack to reach the desired volume. [0, 10000] ms
Release Curve Defines the curvature/shape of the release (fade out).
  • Linear
  • SCurve
Release Time Length of the release to "fade out" after the generator time. [0, 10000] ms

Constants

Description: A set of constant signal values

Shader

Description: Applies panning and attenuation based on the spatial relation between the in-game listener and emitter

Input ports:

Name Type Description
In Audio Accepts the audio output from one or more branches
Spatial factor Special-purpose node Accepts a Spatiality node that defines the spatial factor (i.e. the blend between the unprocessed and panned versions of the sound) based on the distance / spatial relation between the listener and emitter
Amplitude Special-purpose node Accepts an Amplitude node that defines how amplitude attenuation is applied based on the distance between the listener and emitter
Frequency Special-purpose node Accepts a Frequency node that defines how frequency attenuation is applied based on the distance between the listener and emitter
Incident angle (azimuth) Signal This port can be used to define the direction that the sound is perceived to be coming from. Utilising this feature overrides the default panning calculated from the positions of the listener and emitter.

The value of the input is assumed to be in radians with a counter-clockwise rotation convention. This port is hidden unless Override Panning is enabled.

Item detail:

Category Attribute Name Description Value Range
Unsorted Override Panning If enabled, a new input port is added that allows the user to override the default panning calculated from the positions of the listener and emitter. true/false
Reverse Panning If enabled, the panning applied by the Shader is reversed (i.e. sounds coming from the left are panned to the right and vice-versa) true/false
ITD If enabled, a short delay is applied to one channel based on the spatial relation between the listener and emitter. This simulates the interaural time difference (ITD) that humans rely on for localizing sounds. Note that ITD is only applied if headphones mode is enabled in the game's settings. true/false

Amplitude

Description: Special-purpose node designed for use with Shader. Contains the parameters that control the degree of amplitude attenuation that is applied by the Shader.

Item detail:

Category Attribute Name Description Value Range
Unsorted Curve Defines how the attenuation changes with distance - that is, the function that the attenuation vs. distance curve adheres to
  • Linear
  • SCurve
  • Logarithm
  • 1/r

Frequency

Description: Special-purpose node designed for use with Shader. Contains the parameters that control the degree of frequency attenuation that is applied by the Shader.

From a physical standpoint, this node models the attenuation of high frequencies due to:

  1. Distance between the listener and emitter
  2. Directivity of the emitter: the degree to which the "clarity" of the sound produced by the emitter changes based on the direction it's facing with respect to the listener; sound is most clear when the emitter is facing the listener and least clear when the emitter is facing away from the listener.

Input ports:

Name Type Description
Directivity factor Signal Controls the Directivity Factor parameter

Item detail:

Category Attribute Name Description Value Range
General Dynamic Update If enabled, the filter is updated during playback
  • Linear
  • SCurve
  • Logarithm
  • 1/r
Distance Attenuation Enable If enabled, low-pass filtering due to distance attenuation is applied True/Flase
Type Type of filter applied
  • AirAbsorption: Applies a custom filter that models the physical effect of distance on the frequency content of sound propagating through air
  • Lowpass: Applies a generic lowpass filter with tweakable parameters that allows for greater flexibility, but is physically less accurate
Filter Strength (AirAbsorption only) Scaling factor for AirAbsorption filter [0, 2]
Inner Range (Lowpass only) Distance [m] at which the filter's cutoff frequency is at the maximum value specified by Cutoff Max [0, 100] m
Outer Range (Lowpass only) Distance at which the filter's cutoff frequency is at the minimum value specified by Cutoff Min [0, 10000] m
Slope Factor (Lowpass only) Controls the slope of the filter; analogous to the "Q factor" of the filter [0.01, 100]
Cutoff Max (Lowpass only) Maximum cutoff frequency of the filter when distance <= Inner Range [100, 16000] Hz
Cutoff Min (Lowpass only) Minimum cutoff frequency of the filter when distance >= Outer Range [100, 16000] Hz
Directivity Enable If enabled, low-pass filtering due to source directivity is applied true/false
Cutoff Frequency Cutoff frequency of the directivity filter [100, 250] Hz
Directivity Factor The degree to which sound is affected by the filter (0 = no filtering) [0, 1]

Filter

Description: Special-purpose node that applies a specified DSP effect to the node (Sound or Bus) that it is connected to

Input ports:

Name Type Description
Wet/Dry Signal Controls the Wet/Dry parameter
Volume Audio The branch connected to this port becomes the output if the control signal falls within the Min/Max range defined for this port

Item detail:

Category Attribute Name Description Value Range
Unsorted Wet/Dry Blend of the dry (unprocessed) and wet (processed) versions of the input sound [0, 1]
Volume Volume modifier [dB] [-60, 12]
DSP Effect Stores the parameters of one of the DSP Effects listed in the DSP Effects table (See: DSP Effects)

DSP Effects:

DSP Type Description Attribute Name Description Value Range
Base Abstract type that all DSP effects inherit from n/a n/a n/a
Biquad Biquad filter [4] Biquad Type Type of filter
  • LowPass
  • HighPass
  • BandPass
  • Notch
  • PeakingEQ
  • LowShelf
  • HighShelf
  • AllPass
Fc Cutoff/center frequency of the filter [20, 16000]
Q Factor that controls the slope of the filter shape [0.1, 20]
Gain (PeakingEQ, LowShelf, HighShelf, and AllPass only) Gain [dB] of the filter [-18, 18]
BitCrusher Introduces distortion by reducing the bit depth of the audio input to 8-bit [5] 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
Compressor Implements dynamic range compression; reduces the volume of the input signal if the specified threshold value is exceeded [6] Threshold Threshold value of the input level above which the gain begins to be reduced [-50, 0] dB
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 to 1 dB). [1, 50]
Attack Specifies the amount of time [ms] that the output level takes to reach the value defined by Ratio [1, 1000] ms
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
Knee Width Controls the sharpness of the compressor's "knee" [0, 20]
Makeup Gain Additional gain applied to the output signal. Typically used to compensate for the reduction in gain by the compressor. [-24, 24]
Clip If enabled, the amplitude of the output signal is clipped to the range [-1, 1] true/false
Limiter Same as Compressor, but with Ratio set to ∞ (Same as Compressor)
Noise Gate Mutes the input signal if its level is below the specified Threshold Threshold Threshold value of the input level below which the signal is muted [-50, 0] dB

FilterChain

Description: Enables the grouping of multiple DSP nodes together in series. The individual DSP effects are applied in the order that they are connected to the FilterChain.

Input ports: Variable depending on the value of the Ports parameter

Replacer

Description: Special-purpose node designed to be used with Banks; enables the user to replace a string, if present, in the filepaths of all samples in the connected Bank.

Input ports:

Name Type Description
Control signal Signal Controls what the String to replace should be replaced with

Item detail:

Category Attribute Name Description Value Range
Strings String to replace The string, searched for in the filepaths of all samples in the connected Bank, that we wish to replace String
Replacement strings A list of candidate replacement strings and signal value pairs. A Replacement string from the list replaces String to replace in the filepaths of the connected bank's samples if its corresponding signal value matches that of the Control signal. n/a

Stream

Description: Abstract node used for connecting streaming audio (e.g. voice chat) to a signal chain created in the audio editor

Item detail:

Category Attribute Name Description Value Range
Unsorted ID ID string corresponding to the target stream ID defined in gamecode String

Spatiality

Description: Special-purpose node designed for use with Shader. The purpose of this node is to provide the connected Shader(s) with a spatial factor value that controls how spatialized the output from the Shader(s) are.

Spatial factor controls the blending between unprocessed and spatialized (i.e. panned) sound. A value of 0 informs the connected Shader that no panning should be applied while a value of 1 indicates that the sound should be fully panned.

Input ports:

Name Type Description
Spatial Factor Signal The value of the spatial factor is taken from the signal connected to this port.

This port is hidden unless the Spatial Factor Source is set to "Signal".

Item detail:

Category Attribute Name Description Value Range
Spatiality Spatial Factor Source Defines where the spatial factor is taken from.
  • Value: When this option is selected, the spatial factor is defined by a constant value in the range [0, 1]
  • Curve: When this option is selected, the spatial factor is defined by the distance between the listener and emitter. The user can define the relationship between distance and spatial factor via the curve property that becomes visible when this option is selected.
  • Signal: When this option is selected, the spatial factor is defined by the value of the signal connected to the Spatial Factor input port.
  • AzimuthCurve: This option is similar to the Curve option, but provides the user with an additional curve so that sounds to the side of the listener can have a different distance-to-spatial-factor relationship. When selected, Curve0 defines the distance-to-spatial-factor relationship for sounds directly in front (or behind) the listener and Curve90 defines the relationship for sounds 90 degrees to the left (or right) of the listener. For sounds partially to the side, a value is selected based on a linear interpolation between Curve0 and Curve90.

AuxOut

Description: Accepts the one or more Sound nodes as input and routes the output of those node(s) to the connected OutputState port.

Input ports:

Name Type Description
Sound Sound node The output from the sound node(s) connected to this port will be mixed down and sent to the output
Volume Signal Volume [dB] to be applied to the output
Mono Mix Signal Value between 0 and 1 that controls the mix between the unaltered output and a mono-downmixed version of the output


Signal Editor Node Types

Interfacing Nodes

Input

Creating an Input node will automatically create a corresponding input port on the Signal node within the Audio Editor. It allows the usage of game data within the Signal Editor in two ways:

  • Inside the Audio Editor, another node can be connected to the Signal node's inputs ports. The corresponding Input nodes within the Signal will then use the value passed from the connected node.
  • Giving an Input node the same name as a Signal passed via script or present on the connected entity's SignalsManagerComponent will automatically cause the node to use the respective values.
    e.g naming an Input node "Distance" will result in that it returns the distance from the listener to the entity.
Naming Conventions

Input nodes that are designed to be fed from Constants nodes will be NAMED_IN_ALLCAPS. The respective Constant output ports get the exact same name.

Attributes
Name Description Range Input port
Global If true and the .acp file using the Signal is attached to a SoundComponent, the signal name will be looked up in the list of global game signals instead of the connected entity. true/false Unchecked

Output

Creating an Output node will automatically create a corresponding output port on the Signal node within the Audio Editor. It allows the usage of data processed within the Signal Editor to be used within the Audio Editor.

No attributes.

Value-Generating Nodes

Value

The Value node will always output a single, specified value.

For readability, it can make sense to change the node's name or comment to the specified value.
Attributes
Name Description Range Input port
Value The value the node is supposed to output. [-9223372036854775808, 9223372036854775808] Unchecked

Variable

The Variable node outputs the current Value of an audio variable.

Attributes
Name Description Range Input port
Var Name Defines which variable from within the Variable Resource the node will output. N/A Unchecked
Var Resource Defines which Variable config file will be accessed. N/A Unchecked

Random

The Random node will output a random number within a specified min/max range.

Attributes
Name Description Range Input port
Min Minimum value that can be generated. [-9223372036854775808, 9223372036854775808] Unchecked
Max Maximum value that can be generated. [-9223372036854775808, 9223372036854775808] Unchecked
Update Rate Defines the rate at which the node will generate random values.
  • Every Get: generate a random value on each request (Could be multiple times per frame).
  • Every OnFrame: generate a random value once per frame.
  • Once: generate a random value once and then continue outputting it on every successive get.
Unchecked

Generator

The Generator node generates "impulses" of a specified Value in one frame in specified intervals.

Attributes
Name Description Range Input port
Value To Generate The value which will be generated. [-9223372036854775808, 9223372036854775808] Unchecked
Interval The interval in milliseconds between each value generation. [-9223372036854775808, 9223372036854775808] Unchecked

Time

The Time node continuously outputs either the time a sound instance has existed or the time the world has been running on the client's machine (in milliseconds).

Attributes
Name Description Range Input port
Time Type Defines what time in milliseconds the node outputs.
  • Life Time: Outputs the time in milliseconds the sound instance has existed so far. If the node is used by more than one sound that plays from the same .acp at the same time, it will output the Life Time of the first sound that was triggered.
  • World Time: Outputs the time in milliseconds the world has been running on the local machine so far (not how long it has been running on the server).
Unchecked


LFO

The L(ow)F(requency)O(scillation) node oscillates between 0 and 1 in a specified shape.

Attributes
Name Description Range Input port
Frequency Defines the LFO cycle's duration in seconds. N/A Unchecked
Shape The shape used for oscillation.
  • Sine
  • Triangle
  • Square
  • Saw
Unchecked

Curve Modulator

The Curve Modulator node allows it to plot modulation curves by defining the curve's single points.

Attributes
Name Description Range Input port
Points Allows to add points to the curve. N/A Unchecked
Points: Time The time in milliseconds it takes to interpolate from the previous Value to the one of this point. [1, 1000000] Unchecked
Points: Time Variance The allowed maximum deviation from the specified point Value. [0, 500000] Unchecked
Points: Value The value of the point. [-9223372036854775808, 9223372036854775808] Unchecked
Points: Value Variance The allowed maximum deviation from the specified point Value. [0, 500000] Unchecked

Square Modulator

The Square Modulator node allows it to generate a sequence of pulses with specified peak values, peak lengths and gaps between peaks.

Attributes
Name Description Range Input port
Points Allows to add points to the curve. N/A Unchecked
Points: Value The value of the peak. [-9223372036854775808, 9223372036854775808] Unchecked
Points: Value Variance The allowed maximum deviation from the specified point Value. [0, 500000] Unchecked
Points: Peak The time in milliseconds the Value will be held before going back to 0. [1, 1000000] Unchecked
Points: Peak Variance The allowed maximum deviation from the specified Peak time. [0, 500000] Unchecked
Points: Gap The time in milliseconds the Value will remain at 0 before reaching the next Point. [1, 1000000] Unchecked
Points: Gap Variance The allowed maximum deviation from the specified Gap time. [0, 500000] Unchecked

Math Operators and Logic Nodes

Sum

The Sum node outputs the sum of all input nodes (simple addition).

No attributes.

Sub

The Sub(traction) node subtracts the Subtracter value from the Input value and outputs the result.

Attributes
Name Description Range Input port
Subtracter Defines the value which will get subtracted from the input value. [-9223372036854775808, 9223372036854775808] Checked

Mul

The Mul(tiplication) node outputs the product of all inputs.

No attributes.

Div

The Div(ision) node outputs the quotient of the dividend (Input) and the Divisor.

Attributes
Name Description Range Input port
Divisor Defines the value by which the input value will get divided. [-9223372036854775808, 9223372036854775808] Checked

Remainder

The Remainder node outputs the remainder of a division. The remainder is the value that is left when the Input (dividend) is not completely divisible by the Divisor.

Formula
remainder = dividend - (divisor * roundedQuotient)
Attributes
Name Description Range Input port
Divisor Defines the value which will be used as the Divisor. [-9223372036854775808, 9223372036854775808] Checked

Mod

The Mod(ulo) node outputs the modulus of a division. It is essentially the same as the Remainder node, but will floor the Quotient.

Formula
modulus = dividend - (divisor * flooredQuotient)
Attributes
Name Description Range Input port
Divisor Defines the value which will be used as the Divisor. [-9223372036854775808, 9223372036854775808] Checked

Min

The Min(imum) node will always output the smallest of the input values fed into it.

No attributes.

Max

The Max(imum) node will always output the largest of the input values fed into it.

No attributes.

Abs

The Abs(olute) node will always output the absolute value of an input value. Simply put, it makes sure that the output value is always positive.

No attributes.

Pow

The Pow(er) node outputs a power, in which the Input is set to the power of Exponent.

Formula
output = input^exponent
Attributes
Name Description Range Input port
Exponent Defines the value of the exponent. [-9223372036854775808, 9223372036854775808] Checked

Cond

The Cond(ition) node compares the Input value against a Comparator value and returns 1 if the Condition is met, 0 if not.

Attributes
Name Description Range Input port
Condition Type Defines the Condition the comparison has to meet for the node to return 1.
Available operators
  • == (Input and Comparator must be equal)
  • != (Input and Comparator must be different)
  • > (Input must be greater than Comparator)
  • >= (Input must be greater than or equal to Comparator)
  • < (Input must be less than Comparator)
  • <= (Input must be less than or equal to Comparator)
Unchecked
Comparator The value the Input value is compared against. Checked

Converter

The Converter node allows it to output custom values if the Input falls within specified ranges. If the input value does not fall within these ranges, a Default value is used.
Depending on the node's settings, this Default value can either be

  • specified in the node's Attributes (or fed via the Default input port) or
  • the Input value.
The defined range will be [min, max), meaning the the min value is included, the max value is not.
Attributes
Name Description Range Input port
Default Defines the default value which will be returned of the Input value does not fall within any Interval. [-9223372036854775808, 9223372036854775808] Checked
Default from Input If true, the node will output the Input value directly if it does not fall within any Interval. true/false Unchecked
Intervals Allows to define the node's Intervals/Ranges. N/A Unchecked
Intervals: Min Defines the minimum (included) value of the interval. Unchecked
Intervals: Max Defines the maximum (not included) value of the interval. Unchecked
Intervals: Out Defines the output value if the Input value lies within the range. Unchecked

Interpolate

The Interpolate node allows it to smoothly interpolate between two Output values (Y) based on an Input value (X).

  • If the Input value is <= X min, the Output will be Y min.
  • If the Input value is >= X max, the Output will be Y max.
  • If the Input value is in between X min and X max, the Output value depends on the interpolation parameters.
Example
X min = 10, X max = 20
Y min = 0, Y max = 1
input = 15
input is right in-between 10 and 20
brought to Y range, output is 0.5
The min values do not have to be smaller than the max values.
Attributes
Name Description Range Input port
X min Defines the the Input value at which the interpolation starts. Output value == Y min. [-9223372036854775808, 9223372036854775808] Checked
X max Defines the the Input value at which the interpolation ends. Output value == Y max. [-9223372036854775808, 9223372036854775808]
Y min Defines the minimum output value. [-9223372036854775808, 9223372036854775808]
Y max Defines the maximum output value. [-9223372036854775808, 9223372036854775808]
Fade In Type Defines the curve function of the interpolation.
Only available if Clamp is activated.
  • Linear: Curve is linear
  • SCurve: Curve is "S-shaped". with a steep middle-part (volume = -6db when time = 50%) and gentle beginning and ending
  • Power of...
Unchecked
Fade Out Type
Clamp If activated, the interpolation is limited to Y min / Y max. If deactivated, the interpolation can continue in both directions and will keep the correlation between X and Y. true/false Unchecked
Enable Custom Curve Allows it to define a custom correlation between Input (X) and Output (Y) in the Curve Editor. Will disable all other attributes. N/A Unchecked

Env

The Env(elope) node allows it to smoothly interpolate from 0 to 1 and then back from 1 to 0 based on an Input value.

  • Between an Input value of A and B, the Output will interpolate from 0 to 1.
  • Between B and C, the Output will remain 1.
  • Between C and D, the Output will interpolate back to 0.
Example
A = 1, B = 4, C = 6, D = 10
Input = 0: result = 0
Input = 1: result = 0
Input = 2: result = 0.333
Input = 3: result = 0.666
Input = 4..6: result = 1
Input = 7: result = 0.75
Input = 8: result = 0.5
Input = 9: result = 0.25
Input = 10: result = 0
Input = 11: result = 0
Attributes
Name Description Range Input port
A Defines the the Input value at which the first interpolation starts. Output value == 0. [-9223372036854775808, 9223372036854775808] Checked
B Defines the the Input value at which the first interpolation ends. Output value == 1. [-9223372036854775808, 9223372036854775808]
C Defines the the Input value at which the second interpolation starts. Output value == 1. [-9223372036854775808, 9223372036854775808]
D Defines the the Input value at which the second interpolation ends. Output value == 0. [-9223372036854775808, 9223372036854775808]
Fade In Type Defines the curve function of the interpolation.
Only available if Clamp is activated.
  • Linear: Curve is linear
  • SCurve: Curve is "S-shaped". with a steep middle-part (volume = -6db when time = 50%) and gentle beginning and ending
  • Power of...
Unchecked
Fade Out Type

Smoother

The Smoother node smoothes out changes in the Input by interpolating from the old to the new value over time.

Attributes
Name Description Range Input port
Fade In Time Time in milliseconds the interpolation will take if the input value increased. [999999999] Unchecked
Fade Out Time Time in milliseconds the interpolation will take if the input value decreased. [999999999] Unchecked
Fade In Type Defines the curve function of the interpolation.
Only available if Clamp is activated.
  • Linear: Curve is linear
  • SCurve: Curve is "S-shaped". with a steep middle-part (volume = -6db when time = 50%) and gentle beginning and ending
  • Power of...
Unchecked
Fade Out Type

Average

The Average node Outputs the average of the Input values within a specified number of frames.

The node is (obviously) framerate-dependent and therefore not reliable when requiring accurate timings; e.g. when storing 30 frames:
  • Running the game at (constant) 30 FPS will result in getting the average of the last second.
  • Running the game at (constant) 60 FPS will result in getting the average of the last 1/2 second.
Formula
average = frameValueSums / framesNumber
// e.g capacity = 3, frame1 = 50, frame2 = 100, frame3 = 120
// average = (50 + 100 + 120) / 3 = 90
Attributes
Name Description Range Input port
Capacity Defines how many frames will be stored and evaluated. [0, 128] Unchecked

Filter

The Filter node is one-pole low-pass filter.

Attributes
Name Description Range Input port
Frequency Cut-off frequency N/A Checked

Delta

The Delta node outputs change of input over time.

Formula
out = (in - inLast) / timeSlice

No attributes.

Exponential Group Nodes

Exp

The Exp(onential) node multiplies the Input value with ({{Link|https://en.wikipedia.org/wiki/E_(mathematical_constant)%7Ce (Euler's Number).

No attributes.

Ln

The Ln node outputs the Natural Logarithm of the Input value.

No attributes.

Log2

The Log2 node outputs the Binary Logarithm of the Input value.

No attributes.

Log10

The Log10 node outputs the Decadic Logarithm (or Common Logarithm of the Input value.

No attributes.

Conversion Group Nodes

Db2Gain

The D(eci)b(el)2Gain node converts an Input value (in dB) and outputs it as Gain.

Formula
gain = 10^(input / 20)

No attributes.

Gain2Db

The Gain2D(eci)b(el) node converts an Input value (in Gain) and outputs it as dB.

The initial/reference gain value will always be 1.
Formula
decibel = 20 * log10(input)

No attributes.

St2Gain

The S(emi)t(ones)2Gain node converts an Input value (in SemiTones) and outputs it as a Gain value. Alternatively, the Gain value can be interpreted as a relative pitch value.

The Input value hereby represents a change in SemiTones, meaning:

  • an Input of 0 outputs 1 (Baseline, no change in pitch),
  • an Input of -12 outputs 0.5 (half the baseline pitch/ one octave lover),
  • an Input of 12 outputs 2 (double baseline pitch/ one octave higher).
Formula
gain = 2^(input / 12)

No attributes.

Gain2St

The Gain2S(emi)t(ones) node converts an Input value (in Gain/relative pitch) and outputs it as SemiTones.

The Input value hereby represents a change in Gain/relative pitch, meaning:

  • an Input of 1 outputs 0 (Baseline, no change in SemiTones),
  • an Input of 0.5 outputs -12 (12 SemiTones/one octave lower),
  • an Input of 2 outputs 12 (12 SemiTones/one octave higher).
Formula
semiTones = 12 * log2(input)

No attributes.

Freq2Oc

The Freq(uency)2Oc(tave) node outputs the nth octave of the Input (frequency).

Formula
semiTones = input * 2^(Octaves)
Attributes
Name Description Range Input port
Octaves Defines the maximum output value. [0, 128] Unchecked

Freq2Mel

The Freq2Mel node converts an Input value in Hz and outputs it in Mel.

Formula
mel = 1127 * ln (1 + f / 700)

Mel2Freq

The Mel2Freq node converts an Input value in Mel and outputs it in Hz.

Formula
hertz = 700 * (e^(Mel / 1127) - 1)

Saturation Group Nodes

Floor

The Floor node rounds an Input value down to its next lowest integer (e.g 1.1 → 1, 1.5 → 1, 1.99 → 1, 2.001 → 2).

No attributes.

Ceil

The Ceil(ing) node rounds an Input value up to its next highest integer (e.g 1.1 → 2, 1.5 → 2, 1.99 → 2, 2.001 → 3).

No attributes.

Round

The Round node rounds an Input value up if its first decimal is >= 5 and down if not (e.g 1.4 → 1, 1.49 → 1, 1.5 → 2, 1.51 → 2).

No attributes.

Clamp

The Clamp node prevents the Output value from becoming larger than Max and smaller than Min.
If the Input value is smaller than Min, the Output will return Min.
If the Input value is larger than Max, the Output will return Max.

Attributes
Name Description Range Input port
Min Defines the maximum output value. [-9223372036854775808, 9223372036854775808] Checked
Max Defines the maximum output value. [-9223372036854775808, 9223372036854775808] Checked

ClampMin

The ClampMin node prevents the Output value from becoming smaller than Min. If the Input value is smaller than Min, the Output will return Min.

Attributes
Name Description Range Input port
Min Defines the maximum output value. [-9223372036854775808, 9223372036854775808] Checked

ClampMax

The ClampMax node prevents the Output value from becoming larger than Max. If the Input value is larger than Max, the Output will return Max.

Attributes
Name Description Range Input port
Max Defines the maximum output value. [-9223372036854775808, 9223372036854775808] Checked


Trigonometric Group Nodes

Sin

The Sin(e) node outputs the sine of the Input value.

No attributes.

Cos

The Cos(ine) node outputs the cosine of the Input value.

No attributes.

Tan

The Tan(gent) node outputs the tangent the Input value.

No attributes.

ASin

The A(rc)Sin node outputs the ArcSin of the Input value.

No attributes.

ACos

The A(rc)Cos node outputs the ArcCos of the Input value.

No attributes.

ATan

The A(rc)Tan node outputs the ArcTan of the Input value.

No attributes.


External References