Audio Reactive Toolkit

Turn any sound into real time motion. Analyse a song's spectrum, draw "probes" over the bands you care about, then map each probe's energy to any actor parameter, including transforms, materials, Blueprint variables, Niagara, lights, and Motion Design Effectors and Cloners. You preview it live in the editor and can bake the result to a Level Sequence for rendering.

IMAGE, Panel overviewReplace with a screenshot of the full Audio Reactive Toolkit panel.

1. Requirements and installation

  • Unreal Engine 5.4 to 5.7.
  • ARTK depends on two stock engine plugins, Niagara and Remote Control. They are enabled automatically when you enable ARTK, so you do not need to do anything.
  • For Motion Design (Effectors and Cloners) you must also enable the Motion Design (Avalanche) and Cloner and Effector plugins yourself (Edit, Plugins, search "Motion Design" or "Cloner", then restart). These are stock, free, experimental engine plugins.

Install. Add ARTK from FAB (or drop the plugin folder into your project's Plugins/ folder), enable it in Edit, Plugins, Audio Reactive Toolkit, and restart the editor.

2. Quick start: make a mesh pulse to the beat

This walkthrough animates a Static Mesh's size so it grows on every beat.

1

Open the panel

Window, Audio Reactive Toolkit (under the Tools category), or click the A.R.T.K. button in the level editor toolbar. The panel opens as a dockable tab.

IMAGE, Step 1Where to open the panel (Window menu or toolbar button).
2

Pick a sound

In the sound asset picker near the top, choose a Sound Wave. Import an audio file first if needed (drag a .wav, .mp3 or .ogg into the Content Browser).

3

Bake the spectrum

Click Bake spectrum. ARTK performs an offline frequency analysis of the whole song, and the status reads BAKED, N frames when done. The spectrum graph now shows frequency (left is bass, right is highs) against level.

Note. The bake makes the preview and the Sequencer bake deterministic. Re-bake after changing the sound or the FFT bins setting.
IMAGE, Step 3The baked spectrum graph.
4

Place a probe on the beat

A first probe (P1) already exists. Drag and resize its coloured rectangle over the low frequency band (roughly 50 to 150 Hz) where the kick drum lives. The probe outputs a 0 to 100 value for how much energy is inside that rectangle each frame.

IMAGE, Step 4Probe rectangle placed over the low or kick band.
5

Add the binding

  1. Select your Static Mesh actor in the level.
  2. In its Details panel, open the Transform group and expand Scale.
  3. Right click Scale (or a single axis) and choose Bind to ARTK Probe. You can also click the Scale X, Scale Y, Scale Z quick add buttons in the Details panel's ARTK Bindings section.

A binding is created, and the actor gets an ARTK Binding Set component automatically.

IMAGE, Step 5The right click "Bind to ARTK Probe" menu on a property.
6

Set the size range

Your binding appears in the panel's Bound Parameters list as the actor name followed by the binding label. Select it and set:

  • Out Min = 1.0, the resting size (scale times 1).
  • Out Max = 2.0, the size on a full energy beat (scale times 2).
Important. Scale and transform bindings write the value absolutely, so Out Min is the size when the band is silent and Out Max is the size at peak. Set Out Min to the mesh's intended resting scale.
7

Preview

Press Play in the ARTK panel. The mesh scales up and down with the kick, live in the viewport, with no Play In Editor needed. Press Stop when done.

IMAGE or GIF, Step 7The mesh pulsing to the beat in the viewport.
8

Make it punchy (optional)

Change the binding's Mode to Peak Only and raise Threshold until only strong beats trigger. Add a little Release smoothing so each pulse decays smoothly instead of snapping.

That is the whole loop: bake, probe, bind, shape, preview, and optionally bake to Sequencer. Everything else in this guide is a variation on it.

3. The ARTK panel

AreaWhat it does
Title barProduct name, About and Documentation buttons, and the Diagnostics toggle.
Sound pickerChoose the Sound Wave to analyse.
TransportPlay, Pause, Resume, Stop, single frame step, Loop, a timeline scrubber, and the current position (for example 0:02 / 4:45).
FFT binsFrequency resolution of the analysis. Higher gives finer frequency detail and coarser time detail. Re-bake after changing.
Bake spectrum, Clear bakeRun or discard the offline spectrum analysis.
Display thresholdVisual only. Hides spectrum bars below this percentage. It does not affect probe values.
Smooth SpectrumVisual only. Smooths the drawn bars.
MetricHow each probe converts its rectangle into a number (see Probes).
Probes row+ Add probe, plus a coloured button per probe (P1, P2 and so on) to select which one you are editing.
Spectrum graphFrequency (x axis) against level (y axis). Probe rectangles are drawn here.
Probe output over timeA rolling 10 second history of each probe's 0 to 100 output.
Bound ParametersEvery ARTK binding in the level. Select to edit, or multi select for batch edits.
Binding controlsMode, Reset, Out Min and Max, Attack and Release, Threshold and Decay.
Output graphThe selected binding's final output over time, in world units.
Sequence, Bake to SequencerBake the live animation into a Level Sequence.
Save and Load SessionPersist the whole panel setup to an asset.

4. Probes

A probe is a rectangle you draw on the spectrum. Each frame, ARTK measures the energy inside it and produces a single 0 to 100 value that drives bindings.

  • Add up to 8 probes with + Add probe. Each gets a distinct colour (P1, P2 and so on).
  • Select a probe by clicking its coloured button (or its rectangle). The selected probe is what the Metric dropdown and the binding controls refer to.
  • Move and resize the rectangle to choose the frequency band (horizontal) and the level window (vertical) it responds to.

Probe metrics

MetricMeaning
Area (default)How much of the rectangle is filled by the bars inside it. Balanced, musical response.
MaxThe single loudest bin in the band. Snappy, and great for transient detection.
MeanAverage level across the band. Smooth, sustained response.
SumTotal band energy, normalized. Emphasises wide, busy bands.

A binding reads from one probe (its Probe selector). Different bindings can read different probes, which is how you drive scale from the kick and emissive from the hi-hats at the same time.

5. Creating bindings

There are two ways to create a binding. Both auto create the hidden ARTK Binding Set component on the target actor, so you never add it by hand.

Method A: right click a property (recommended)

In any actor's Details panel, right click a supported property and choose Bind to ARTK Probe. To remove a right click binding, right click the same property again and choose Remove ARTK Binding. The next section lists exactly what is supported.

Method B: quick add buttons

Select an actor, then in its Details panel open the ARTK Bindings section and click a quick add button: Loc X/Y/Z, Rot X/Y/Z, Scale X/Y/Z, MPC, Niagara, or RC. For MPC, Niagara and RC the button creates a placeholder, which you then expand in the Bindings array to choose the asset and parameter (for example the Material Parameter Collection plus scalar name, or the Niagara component plus user parameter name).

IMAGE, Quick add buttonsThe ARTK Bindings section with the quick add buttons.

6. What supports right click binding

The Bind to ARTK Probe entry appears in the Details panel right click menu whenever the property you click is something ARTK can drive. Here is exactly when it shows up, and what you can bind.

Where the entry appears

Right click targetResult
A float or double propertyBinds that value directly. The most common case (intensity, opacity, a custom Blueprint float, and so on).
A bool propertyBinds an on or off driven by a threshold with a little hysteresis, so it does not flicker at the edge.
A byte propertyBinds an integer 0 to 255 value, clamped. Used by FColor channels and similar.
The Location, Rotation or Scale rowOffers one entry per axis, so you can bind X, Y or Z (or Roll, Pitch, Yaw) individually. These use the correct actor transform calls so physics and attached components update.
A single transform axis (X, Y, Z)Binds just that axis.
A channel inside a color (R, G, B, A)Binds that one channel of an FColor or FLinearColor.
A component of a vector (X, Y, Z)Binds that one component of a vector property (for example a force direction).
A property on a nested sub objectProperties that live on a UObject held inside a component, such as a Motion Design Effector's force settings. ARTK walks the object hierarchy and binds them correctly.
A property exposed to Remote ControlIf the property is exposed to a Remote Control preset, ARTK detects that and routes the binding through Remote Control automatically. This is what makes cached components such as Motion Design Effectors and Cloners update live.

What can be bound, in plain terms

  • Any actor's position, rotation or scale, per axis.
  • Any float, double, bool or byte property on an actor or on one of its components, including your own Blueprint variables.
  • Individual fields inside a struct, such as a light's color channels, a vector's X, Y and Z, or post process settings (ARTK also enables the matching override flag so the value takes effect).
  • Material parameters, through a Material Parameter Collection scalar (use the MPC quick add).
  • Niagara user parameters of type float (use the Niagara quick add or right click the parameter).
  • Motion Design Effectors and Cloners, by right clicking their parameters (their values live on nested sub objects, which ARTK handles).
  • Anything exposed to Remote Control, which includes DMX fixtures, nDisplay, and many third party components. Expose the property to a Remote Control preset, then right click it.

What does not show the entry (and what to do instead)

  • Integer, enum, string, name and object reference properties are not directly bindable yet. If you need to drive one, expose it to Remote Control and bind that, since the value still resolves through a float there in supported cases.
  • Parent struct or array rows that are not transforms do not bind as a whole. Bind the individual numeric field inside them instead (for example a single color channel rather than the whole color).
  • Read only properties cannot be driven.
Tip. If you are unsure whether something can react, the quickest test is to right click it. If Bind to ARTK Probe appears, it is supported. If it does not, expose it to Remote Control and bind it there.

7. Supported binding targets

TargetWhat it drivesHow to create
Transform (Location, Rotation, Scale, per axis)The actor's world transform, using the proper Set calls so physics and attachments update correctly.Right click Transform, or quick add buttons.
Blueprint property (float, double, bool, byte)Any such property on the actor or a component. Bool uses a threshold with hysteresis, byte is clamped 0 to 255.Right click the property.
Struct memberA field inside a struct, such as color channels (R, G, B, A), vector components (X, Y, Z) or post process settings (the matching override flag is enabled automatically).Right click the field.
Material Parameter Collection scalarA scalar in an MPC, affecting every material that reads it.MPC quick add, then set the collection and parameter name.
Niagara user parameter (float)A User. float parameter on a Niagara component.Niagara quick add, or right click the parameter.
Remote Control entityAny property exposed to a Remote Control preset, including Motion Design Effectors and Cloners, DMX, and nDisplay.Expose to RC, then right click it (auto detected) or use the RC quick add.
Nested sub objectsProperties on UObjects held inside components, such as Motion Design force effects or custom data objects.Right click the property. Handled automatically.

8. Managing bindings

The Bound Parameters list shows every binding in the level, written as the actor name followed by the binding label.

  • Select a row to edit it below. Use Ctrl click or Shift click to select several.
  • Batch edit. With multiple rows selected, changing Mode, Out Min, Out Max, Threshold or Decay applies to all selected bindings at once, as one undo step.
  • Probe selector. The P1 dropdown on each row chooses which probe drives that binding.
  • Enable and disable. The eye icon mutes a binding without losing its settings. Toggling a selected row toggles the whole selection.
  • Delete. Press Delete (or Backspace) to remove the whole selection, or click a row's trash icon to remove just that one. Deleting the last binding on an actor cleans up the hidden component automatically.
  • Undo and redo. Every action is undoable with Ctrl+Z and Ctrl+Y.

9. Shaping the output

Each binding turns its probe's 0 to 100 value into a world unit value through three stages: remap, mode, then smoothing.

Remap

  • Input Min and Input Max (0 to 100): the probe range you care about. Narrow it to react only to a louder part of the range. Found in the expanded Bindings array.
  • Out Min and Out Max: the world unit values the input range maps to (for example scale 1 to 2, or rotation 0 to 360). Editable directly in the panel.
  • Bias: a constant added after the remap. Found in the Bindings array.

Output modes

ModeBehaviourUse for
CleanProbe to remap to output every frame. Tracks the audio level directly.Continuous reactions: scale, emissive, or FOV following the music.
IntegrateAccumulates remap of the probe times delta time each frame, so the output drifts upward with energy.Ever growing motion: continuous rotation, rising values.
Peak OnlyA rising edge detector. Crossing Threshold triggers a full envelope that decays over Decay.Discrete hits: a flash or pulse per kick, a bounce per snare.
Integrate PeakLike Peak Only, but each detected beat adds a fixed amount to a running accumulator.Step per beat motion: advance something one notch per hit.

Press Reset to clear a mode's accumulated state (the integrator or envelope).

Smoothing

  • Attack (0 to 2 seconds): how quickly the output rises toward a higher value.
  • Release (0 to 2 seconds): how quickly it falls toward a lower value.

Threshold and Decay (peak modes only)

  • Threshold (0 to 100): the probe level a beat must cross to trigger.
  • Decay: how long the peak envelope takes to fall back to zero.

The Output graph at the bottom shows the binding's final value over time so you can dial these in visually.

10. Using multiple probes

  1. + Add probe for each band (for example P1 over the kick, P2 over the hats).
  2. Place each rectangle over its frequency range, and pick a Metric per probe.
  3. For each binding, set its Probe selector to the probe it should follow.

Each binding is independent, with its own probe, mode, ranges and smoothing.

11. Baking to Sequencer

Live preview is for authoring. To render, or to hand off to an editor, you bake the animation into a Level Sequence as keyframes.

  1. In the Sequence picker, choose a Level Sequence or click New.
  2. Set fps (default 30), the keyframe rate.
  3. Options: Skip duplicate keyframes (cleaner tracks, recommended) and Add audio to sequence (adds the sound in sync).
  4. Click Bake to Sequencer.

ARTK simulates every binding across the whole song, writes keyframe tracks under each actor (matching Unreal's native hierarchy), and opens the sequence.

Note. Re-baking onto the same sequence replaces ARTK's tracks. Transform, Blueprint property, color channel, Niagara float and Motion Design sub object bindings all bake. Remote Control and MPC bakes are limited, so drive those live or expose the underlying property.

12. Sessions (save and load)

A Session asset stores your panel setup: the selected sound, FFT size, probes (positions and metrics) and display settings, so you can reopen a project and continue.

  • Save Session writes the current panel state to a session asset.
  • Load Session picks a session asset to restore it into the panel.

Sessions store the analysis and probe setup. The bindings themselves live on the actors and are saved with the level.

13. Recipes

Emissive material pulse, whole project. Create a Material Parameter Collection with a scalar (for example Beat). Drive it with the MPC quick add, set the collection and Beat, Out Max about 5, Mode Peak Only. Read Beat in your materials' emissive, and every material reacts at once.

Light strobe. Right click a light's Intensity and bind it. Mode Peak Only, high Threshold, Out Min the resting intensity, Out Max the flash intensity, short Release.

Niagara spawn rate or size. Expose a User. float (for example Intensity). Use the Niagara quick add, set the component and Intensity, then read it inside the system.

Motion Design Effector. Enable the Motion Design and Cloner and Effector plugins. Right click the Effector parameter (for example Vortex Force Amount, or Gravity Force Acceleration Z) and choose Bind to ARTK Probe. ARTK drives it live and the Cloner reacts.

Continuous rotation that speeds up with energy. Right click Rotation Yaw and bind it. Mode Integrate. Louder music means faster accumulated spin.

14. Diagnostics and support

ARTK is silent in the Output Log by default. If you hit an issue and contact support:

  1. Tick the Diagnostics checkbox in the panel's title bar.
  2. Reproduce the problem.
  3. Open Window, Output Log, copy the lines beginning with [ARTK], and send them with a description of what you did.

Turn Diagnostics back off for normal use, since it logs verbosely while on.

15. Troubleshooting and FAQ

The binding's number does not update in the Details panel, but the effect works. Some components (Niagara user parameters, Motion Design Effectors) cache the displayed value. The parameter is being driven, the field just does not refresh live. Click away and back to see the current value.

I bound a property but nothing happens on Play. Check that the spectrum is baked, the probe overlaps real energy, the binding's Probe selector points at that probe, the binding is enabled, and Out Min and Out Max differ and suit the property.

My actor jumped to a strange position or size after previewing. Transform bindings write absolute values. Set Out Min to the resting value (for example Out Min 1 for scale). Use Stop to end the preview.

A binding set for probe 3 outputs nothing. It points at a probe that does not exist because you have fewer probes placed. Add the probe or change the Probe selector. ARTK outputs 0 rather than guessing.

Right click shows no "Bind to ARTK Probe" entry. Only float, double, bool and byte properties and their struct members are directly bindable. For other parameters, expose them to Remote Control and bind that, or use the quick add buttons. See section 6 for the full list.

The Motion Design Cloner resets or stutters while driven. That is the Cloner rebuilding on each change, which it also does when you edit the value by hand. Use a smoother Mode (Clean with Release) instead of rapid Peak hits if the rebuild is costly on your scene.

Does the bake match the live preview? Yes for Clean and Peak modes. Integrate modes accumulate slightly differently offline, so if a baked Integrate curve looks steeper, reduce its range or use Peak modes.

16. Tips

  • Bake first, always. Nothing reacts until the spectrum is baked.
  • Watch the two graphs. The probe output graph shows whether the probe sees energy, and the bottom output graph shows what the binding actually sends.
  • Peak Only for rhythm, Clean for vibe. Discrete hits against continuous follow.
  • Multi select to dial in many bindings together.
  • Narrow the probe band. A tight rectangle on the kick reacts far more cleanly than a wide one.
  • Save a Session once your probes are dialled in, to reuse them across songs.

Audio Reactive Toolkit. Copyright Machina Infinitum.