Skip to content
DEV505 / Sound ManagerDOCUMENTATION

DEV505 / START HERE

Shaping values and making choices

Calculate volumes, speeds, conditions, indexes, and small random variations.

Data nodes are read when another node needs their result. They do not need an execution wire. Float means a decimal number, Int means a whole number, and Bool means true or false. Use converter nodes where port types differ.

See it in a complete example: Jukebox track selection and crossfades.

For the full list, open the node catalogue.

The normalized Rpm value changes playback speed and the balance of the engine layers. Remap Float converts its 0–1 input into the range needed by the sound.
Engine in Unity: turn RPM into sound controls. The graph nodes and their connections are visible.

The normalized Rpm value changes playback speed and the balance of the engine layers. Remap Float converts its 0–1 input into the range needed by the sound.

Draws a decimal value between Min and Max. Single Value keeps the first result for this play; without it, subsequent reads can draw new values.

Random · pink headerColor key

Unity node · Random Float.
Random Float node in the Unity graph editor, showing its controls and ports

Unity node · Random Float.

Ports on Random Float
DirectionPortValue
InputMinFloat
InputMaxFloat
OutputResultFloat

Set it up. Min defaults 0, Max 1, Single Value true. For a stable random pitch on a whole play, leave Single Value enabled.

Try it. Footstep gives each new step a small pitch variation.

Draws a whole number including both bounds. Reversed bounds are exchanged. Avoid Repetition skips the previous draw when there is a choice; this history belongs to this node within this play.

Random · pink headerColor key

Unity node · Random Int.
Random Int node in the Unity graph editor, showing its controls and ports

Unity node · Random Int.

Ports on Random Int
DirectionPortValue
InputMinInt
InputMaxInt
OutputResultInt

Set it up. Min defaults 0, Max 1; Single Value and Avoid Repetition default false. Single Value keeps the first draw for the play.

Try it. Pick one of three command paths with values 0–2.

Converts a value from Old Min…Old Max into New Min…New Max. Clamp keeps it inside the input range before mapping. Equal old bounds return New Min.

Values · green headerColor key

Unity node · Remap Float.
Remap Float node in the Unity graph editor, showing its controls and ports

Unity node · Remap Float.

Ports on Remap Float
DirectionPortValue
InputParameterFloat
InputOld MinFloat
InputOld MaxFloat
InputNew MinFloat
InputNew MaxFloat
OutputResultFloat

Set it up. Clamp defaults true; old/new minima default 0, maxima 1. Disable Clamp only when values outside the output range are intentional.

Try it. Engine maps normalized RPM to a useful playback-speed range.

Compares two decimal values with Less, Less Or Equal, Equal, Greater Or Equal, or Greater and returns true or false.

Values · green headerColor key

Unity node · Float Compare.
Float Compare node in the Unity graph editor, showing its controls and ports

Unity node · Float Compare.

Ports on Float Compare
DirectionPortValue
InputAFloat
InputBFloat
OutputResultBool

Set it up. Choose Operation; A and B default to 0. Float equality is exact, so thresholds are usually more useful for gradually changing values.

Try it. Feed RPM > 0.7 into Track Condition to control a high-speed layer.

Combines A and B using Add, Subtract, Multiply, Divide, Min, Max, or Pow (power). Divide by zero and non-finite power results return 0.

Values · green headerColor key

Unity node · Float Math.
Float Math node in the Unity graph editor, showing its controls and ports

Unity node · Float Math.

Ports on Float Math
DirectionPortValue
InputAFloat
InputBFloat
OutputResultFloat

Set it up. Choose Operation. Both inline inputs default to 0. Volume is ultimately clamped to 0–1 by playback.

Try it. Multiply a rain amount by the maximum volume for a layer.

Compares two whole-number values with Less, Less Or Equal, Equal, Greater Or Equal, or Greater and returns true or false.

Values · green headerColor key

Unity node · Int Compare.
Int Compare node in the Unity graph editor, showing its controls and ports

Unity node · Int Compare.

Ports on Int Compare
DirectionPortValue
InputAInt
InputBInt
OutputResultBool

Set it up. Choose Operation; A and B default to 0. For example, compare a surface index with 2 to check for wood in the Footstep graph.

Try it. Feed RPM > 0.7 into Track Condition to control a high-speed layer.

Combines integers with Add, Subtract, Multiply, Divide, Modulo, Min, or Max. Add/subtract/multiply saturate at integer limits. Division truncates toward zero; division or modulo by zero returns 0.

Values · green headerColor key

Unity node · Int Op.
Int Op node in the Unity graph editor, showing its controls and ports

Unity node · Int Op.

Ports on Int Op
DirectionPortValue
InputAInt
InputBInt
OutputResultInt

Set it up. Both inputs default to 0. At the signed minimum, division by −1 returns the minimum; its modulo returns 0. Use ordinary small indexes rather than relying on overflow behavior.

Try it. Convert a 1-based ground choice to a 0-based selection using Subtract.

Looks up an output using the authored curve points. Linear mode interpolates between neighboring points; Step holds a point until the next. Outside the points, the nearest end value is held.

Values · green headerColor key

Unity node · Curve.
Curve node in the Unity graph editor, showing its controls and ports

Unity node · Curve.

Ports on Curve
DirectionPortValue
InputInFloat
OutputOutFloat

Set it up. The initial curve goes from (0, 0) to (1, 1). Runtime uses points and the chosen interpolation mode, not arbitrary editor tangent shaping. An empty point list passes the input through.

Try it. Shape engine volume so idle stays quiet and high RPM becomes louder.

Converts a positive playback multiplier into semitones with 12 × log₂(In). A non-positive input returns 0.

Values · green headerColor key

Unity node · Multiplier To Semitones.
Multiplier To Semitones node in the Unity graph editor, showing its controls and ports

Unity node · Multiplier To Semitones.

Ports on Multiplier To Semitones
DirectionPortValue
InputInFloat
OutputOutFloat

Set it up. Input defaults to 0. A multiplier of 1 is 0 semitones; 2 is +12.

Try it. Express a playback-speed change as a musical interval.

Converts semitones into a multiplier with 2^(In/12). Zero semitones gives 1; +12 gives 2.

Values · green headerColor key

Unity node · Semitones To Multiplier.
Semitones To Multiplier node in the Unity graph editor, showing its controls and ports

Unity node · Semitones To Multiplier.

Ports on Semitones To Multiplier
DirectionPortValue
InputInFloat
OutputOutFloat

Set it up. Input defaults to 0. Play Audio still limits its final playback speed to 0.01–3. This changes pitch and duration together.

Try it. Set a random pitch offset in semitones, then convert it for Playback Speed.

Applies Abs, Sqrt, Floor, Ceil, Round, Sign, Sin, Cos, Log, or Exp. Sin/Cos use radians; Log is the natural logarithm. Round rounds midpoint values away from zero.

Values · green headerColor key

Unity node · Float Function.
Float Function node in the Unity graph editor, showing its controls and ports

Unity node · Float Function.

Ports on Float Function
DirectionPortValue
InputInFloat
OutputOutFloat

Set it up. Input defaults to 0. Negative square roots, non-positive logarithms, and non-finite results return 0. Sign returns −1, 0, or 1.

Try it. Use Abs to turn a signed control into a positive intensity.

Applies Abs, Negate, or Sign to an integer. Sign returns −1, 0, or 1. Abs/Negate of the lowest signed integer returns the highest integer.

Values · green headerColor key

Unity node · Int Function.
Int Function node in the Unity graph editor, showing its controls and ports

Unity node · Int Function.

Ports on Int Function
DirectionPortValue
InputInInt
OutputOutInt

Set it up. Input defaults to 0. Choose Operation for the transformation you need.

Try it. Use Sign to distinguish reverse, idle, and forward control values.

Converts a decimal using Round, Floor, Ceil, or Truncate. Round handles midpoint values away from zero. Out-of-range results saturate to integer limits; non-finite input becomes 0.

Values · green headerColor key

Unity node · Convert To Int.
Convert To Int node in the Unity graph editor, showing its controls and ports

Unity node · Convert To Int.

Ports on Convert To Int
DirectionPortValue
InputInFloat
OutputOutInt

Set it up. Input defaults to 0. Choose how boundaries should behave before using the result as an index.

Try it. Map a continuous slider to a discrete selection.

Converts a whole number to a decimal value. Very large integers can lose precision in a Float.

Values · green headerColor key

Unity node · Convert To Float.
Convert To Float node in the Unity graph editor, showing its controls and ports

Unity node · Convert To Float.

Ports on Convert To Float
DirectionPortValue
InputInInt
OutputOutFloat

Set it up. Input defaults to 0. Use an explicit converter when the port types differ.

Try it. Turn Counter Count into a value for a volume calculation.

Returns the opposite of In.

Logic · orange headerColor key

Unity node · Not.
Not node in the Unity graph editor, showing its controls and ports

Unity node · Not.

Ports on Not
DirectionPortValue
InputInBool
OutputOutBool

Set it up. An unconnected In defaults to false, so Not returns true. Connect a Bool parameter or a comparison result to reverse its meaning.

Try it. Combine two permission checks before a Branch or Wait For Condition.

Reads one Float input selected by the zero-based Index. Only that selected input is evaluated. Index is clamped to the available range.

Logic · orange headerColor key

Unity node · Select Float.
Select Float node in the Unity graph editor, showing its controls and ports

Unity node · Select Float.

Ports on Select Float
DirectionPortValue
InputIndexInt
OutputOutFloat
InputIn 0 … In (Count − 1)Float

Set it up. Count defaults to 2 (allowed 0–255); with Count 0 the result is 0. Numbered inputs start at In 0.

Try it. Choose a different gain or repeat interval for each Workshop tool.

Reads one Int input selected by the zero-based Index. Only that selected input is evaluated. Index is clamped to the available range.

Logic · orange headerColor key

Unity node · Select Int.
Select Int node in the Unity graph editor, showing its controls and ports

Unity node · Select Int.

Ports on Select Int
DirectionPortValue
InputIndexInt
OutputOutInt
InputIn 0 … In (Count − 1)Int

Set it up. Count defaults to 2 (allowed 0–255); with Count 0 the result is 0. Numbered inputs start at In 0.

Try it. Choose a different gain or repeat interval for each Workshop tool.

Normalizes In between Min and Max, clamps it to 0–1, and bends it into a gentle S-shaped curve. Equal bounds give a step: 0 below the bound and 1 at or above it.

Values · green headerColor key

Unity node · Smoothstep Float.
Smoothstep Float node in the Unity graph editor, showing its controls and ports

Unity node · Smoothstep Float.

Ports on Smoothstep Float
DirectionPortValue
InputInFloat
InputMinFloat
InputMaxFloat
OutputOutFloat

Set it up. Min defaults 0, Max 1. This shapes a value; it does not smooth changes over time. Use Float Parameter rates for time smoothing.

Try it. Give a crossfade a softer response near either end of its control range.

Returns true only when both A and B are true.

Logic · orange headerColor key

Unity node · And.
And node in the Unity graph editor, showing its controls and ports

Unity node · And.

Ports on And
DirectionPortValue
InputABool
InputBBool
OutputResultBool

Set it up. Unconnected Bool inputs default false. And, Or, and Xor evaluate both inputs; they do not use C# short-circuit evaluation.

Try it. Combine two permission checks before a Branch or Wait For Condition.

Returns true when at least one of A and B is true.

Logic · orange headerColor key

Unity node · Or.
Or node in the Unity graph editor, showing its controls and ports

Unity node · Or.

Ports on Or
DirectionPortValue
InputABool
InputBBool
OutputResultBool

Set it up. Unconnected Bool inputs default false. And, Or, and Xor evaluate both inputs; they do not use C# short-circuit evaluation.

Try it. Combine two permission checks before a Branch or Wait For Condition.

Returns true when exactly one of A and B is true.

Logic · orange headerColor key

Unity node · Xor.
Xor node in the Unity graph editor, showing its controls and ports

Unity node · Xor.

Ports on Xor
DirectionPortValue
InputABool
InputBBool
OutputResultBool

Set it up. Unconnected Bool inputs default false. And, Or, and Xor evaluate both inputs; they do not use C# short-circuit evaluation.

Try it. Combine two permission checks before a Branch or Wait For Condition.

Continue with graph checks and debugging if a connection or event is refused.