Audio Editor: Nodes – Arma Reforger
Lou Montana (talk | contribs) m (Fix link) |
Lou Montana (talk | contribs) m (Fix) |
||
Line 1,636: | Line 1,636: | ||
==== Exp ==== | ==== Exp ==== | ||
The Exp(onential) node multiplies the Input value with | The Exp(onential) node multiplies the Input value with {{Link|https://en.wikipedia.org/wiki/E_(mathematical_constant)|{{hl|e}} (Euler's Number)}}. | ||
No attributes. | No attributes. |
Revision as of 13:24, 5 February 2024
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.
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 length | Length of the loop region, in samples. |
| |
Infinite Loop | If enabled, the played sample is repeated infinitely until the sound is stopped | true/false | |
Selection | Method for selecting a sample |
| |
Resampler | Resampling method, for converting between different sample rates [1] |
| |
Fade | Fade-in/out function | Defines the "shape" of the volume change during fade-in/out
| |
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:
|
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 |
| |
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] |
|
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 |
|
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). |
|
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). |
| |
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 |
|
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:
- Distance between the listener and emitter
- 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 |
|
Distance Attenuation | Enable | If enabled, low-pass filtering due to distance attenuation is applied | True/Flase |
Type | Type of filter applied |
| |
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 |
|
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.
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. |
|
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.
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 |
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.
Name | Description | Range | Input port |
---|---|---|---|
Value | The value the node is supposed to output. | [-9223372036854775808, 9223372036854775808] |
Variable
The Variable node outputs the current Value of an audio variable.
Name | Description | Range | Input port |
---|---|---|---|
Var Name | Defines which variable from within the Variable Resource the node will output. | N/A | |
Var Resource | Defines which Variable config file will be accessed. | N/A |
Random
The Random node will output a random number within a specified min/max range.
Name | Description | Range | Input port |
---|---|---|---|
Min | Minimum value that can be generated. | [-9223372036854775808, 9223372036854775808] | |
Max | Maximum value that can be generated. | [-9223372036854775808, 9223372036854775808] | |
Update Rate | Defines the rate at which the node will generate random values. |
|
Generator
The Generator node generates "impulses" of a specified Value in one frame in specified intervals.
Name | Description | Range | Input port |
---|---|---|---|
Value To Generate | The value which will be generated. | [-9223372036854775808, 9223372036854775808] | |
Interval | The interval in milliseconds between each value generation. | [-9223372036854775808, 9223372036854775808] |
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).
Name | Description | Range | Input port |
---|---|---|---|
Time Type | Defines what time in milliseconds the node outputs. |
|
LFO
The L(ow)F(requency)O(scillation) node oscillates between 0 and 1 in a specified shape.
Name | Description | Range | Input port |
---|---|---|---|
Frequency | Defines the LFO cycle's duration in seconds. | N/A | |
Shape | The shape used for oscillation. |
|
Curve Modulator
The Curve Modulator node allows it to plot modulation curves by defining the curve's single points.
Name | Description | Range | Input port |
---|---|---|---|
Points | Allows to add points to the curve. | N/A | |
Points: Time | The time in milliseconds it takes to interpolate from the previous Value to the one of this point. | [1, 1000000] | |
Points: Time Variance | The allowed maximum deviation from the specified point Value. | [0, 500000] | |
Points: Value | The value of the point. | [-9223372036854775808, 9223372036854775808] | |
Points: Value Variance | The allowed maximum deviation from the specified point Value. | [0, 500000] |
Square Modulator
The Square Modulator node allows it to generate a sequence of pulses with specified peak values, peak lengths and gaps between peaks.
Name | Description | Range | Input port |
---|---|---|---|
Points | Allows to add points to the curve. | N/A | |
Points: Value | The value of the peak. | [-9223372036854775808, 9223372036854775808] | |
Points: Value Variance | The allowed maximum deviation from the specified point Value. | [0, 500000] | |
Points: Peak | The time in milliseconds the Value will be held before going back to 0. | [1, 1000000] | |
Points: Peak Variance | The allowed maximum deviation from the specified Peak time. | [0, 500000] | |
Points: Gap | The time in milliseconds the Value will remain at 0 before reaching the next Point. | [1, 1000000] | |
Points: Gap Variance | The allowed maximum deviation from the specified Gap time. | [0, 500000] |
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.
Name | Description | Range | Input port |
---|---|---|---|
Subtracter | Defines the value which will get subtracted from the input value. | [-9223372036854775808, 9223372036854775808] |
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.
Name | Description | Range | Input port |
---|---|---|---|
Divisor | Defines the value by which the input value will get divided. | [-9223372036854775808, 9223372036854775808] |
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)
Name | Description | Range | Input port |
---|---|---|---|
Divisor | Defines the value which will be used as the Divisor. | [-9223372036854775808, 9223372036854775808] |
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)
Name | Description | Range | Input port |
---|---|---|---|
Divisor | Defines the value which will be used as the Divisor. | [-9223372036854775808, 9223372036854775808] |
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
Name | Description | Range | Input port |
---|---|---|---|
Exponent | Defines the value of the exponent. | [-9223372036854775808, 9223372036854775808] |
Cond
The Cond(ition) node compares the Input value against a Comparator value and returns 1 if the Condition is met, 0 if not.
Name | Description | Range | Input port |
---|---|---|---|
Condition Type | Defines the Condition the comparison has to meet for the node to return 1. |
|
|
Comparator | The value the Input value is compared against. |
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.
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] | |
Default from Input | If true, the node will output the Input value directly if it does not fall within any Interval. | true/false | |
Intervals | Allows to define the node's Intervals/Ranges. | N/A | |
Intervals: Min | Defines the minimum (included) value of the interval. | ||
Intervals: Max | Defines the maximum (not included) value of the interval. | ||
Intervals: Out | Defines the output value if the Input value lies within the range. |
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
Name | Description | Range | Input port |
---|---|---|---|
X min | Defines the the Input value at which the interpolation starts. Output value == Y min. | [-9223372036854775808, 9223372036854775808] | |
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. |
|
|
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 | |
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 |
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
Name | Description | Range | Input port |
---|---|---|---|
A | Defines the the Input value at which the first interpolation starts. Output value == 0. | [-9223372036854775808, 9223372036854775808] | |
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. |
|
|
Fade Out Type |
Smoother
The Smoother node smoothes out changes in the Input by interpolating from the old to the new value over time.
Name | Description | Range | Input port |
---|---|---|---|
Fade In Time | Time in milliseconds the interpolation will take if the input value increased. | [999999999] | |
Fade Out Time | Time in milliseconds the interpolation will take if the input value decreased. | [999999999] | |
Fade In Type | Defines the curve function of the interpolation. |
|
|
Fade Out Type |
Average
The Average node Outputs the average of the Input values within a specified number of frames.
- Formula
average = frameValueSums / framesNumber // e.g capacity = 3, frame1 = 50, frame2 = 100, frame3 = 120 // average = (50 + 100 + 120) / 3 = 90
Name | Description | Range | Input port |
---|---|---|---|
Capacity | Defines how many frames will be stored and evaluated. | [0, 128] |
Filter
The Filter node is one-pole low-pass filter.
Name | Description | Range | Input port |
---|---|---|---|
Frequency | Cut-off frequency | N/A |
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 e (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.
- 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)
Name | Description | Range | Input port |
---|---|---|---|
Octaves | Defines the maximum output value. | [0, 128] |
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.
Name | Description | Range | Input port |
---|---|---|---|
Min | Defines the maximum output value. | [-9223372036854775808, 9223372036854775808] | |
Max | Defines the maximum output value. | [-9223372036854775808, 9223372036854775808] |
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.
Name | Description | Range | Input port |
---|---|---|---|
Min | Defines the maximum output value. | [-9223372036854775808, 9223372036854775808] |
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.
Name | Description | Range | Input port |
---|---|---|---|
Max | Defines the maximum output value. | [-9223372036854775808, 9223372036854775808] |
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.