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.
- Requirements and installation
- Quick start: make a mesh pulse to the beat
- The ARTK panel
- Probes
- Creating bindings
- What supports right click binding
- Supported binding targets
- Managing bindings
- Shaping the output
- Using multiple probes
- Baking to Sequencer
- Sessions (save and load)
- Recipes
- Diagnostics and support
- Troubleshooting and FAQ
- Tips
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.
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.
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).
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.
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.
Add the binding
- Select your Static Mesh actor in the level.
- In its Details panel, open the Transform group and expand Scale.
- 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.
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).
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.
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
| Area | What it does |
|---|---|
| Title bar | Product name, About and Documentation buttons, and the Diagnostics toggle. |
| Sound picker | Choose the Sound Wave to analyse. |
| Transport | Play, Pause, Resume, Stop, single frame step, Loop, a timeline scrubber, and the current position (for example 0:02 / 4:45). |
| FFT bins | Frequency resolution of the analysis. Higher gives finer frequency detail and coarser time detail. Re-bake after changing. |
| Bake spectrum, Clear bake | Run or discard the offline spectrum analysis. |
| Display threshold | Visual only. Hides spectrum bars below this percentage. It does not affect probe values. |
| Smooth Spectrum | Visual only. Smooths the drawn bars. |
| Metric | How 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 graph | Frequency (x axis) against level (y axis). Probe rectangles are drawn here. |
| Probe output over time | A rolling 10 second history of each probe's 0 to 100 output. |
| Bound Parameters | Every ARTK binding in the level. Select to edit, or multi select for batch edits. |
| Binding controls | Mode, Reset, Out Min and Max, Attack and Release, Threshold and Decay. |
| Output graph | The selected binding's final output over time, in world units. |
| Sequence, Bake to Sequencer | Bake the live animation into a Level Sequence. |
| Save and Load Session | Persist 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
| Metric | Meaning |
|---|---|
| Area (default) | How much of the rectangle is filled by the bars inside it. Balanced, musical response. |
| Max | The single loudest bin in the band. Snappy, and great for transient detection. |
| Mean | Average level across the band. Smooth, sustained response. |
| Sum | Total 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).
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 target | Result |
|---|---|
| A float or double property | Binds that value directly. The most common case (intensity, opacity, a custom Blueprint float, and so on). |
| A bool property | Binds an on or off driven by a threshold with a little hysteresis, so it does not flicker at the edge. |
| A byte property | Binds an integer 0 to 255 value, clamped. Used by FColor channels and similar. |
| The Location, Rotation or Scale row | Offers 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 object | Properties 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 Control | If 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.
7. Supported binding targets
| Target | What it drives | How 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 member | A 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 scalar | A 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 entity | Any 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 objects | Properties 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
P1dropdown 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
| Mode | Behaviour | Use for |
|---|---|---|
| Clean | Probe to remap to output every frame. Tracks the audio level directly. | Continuous reactions: scale, emissive, or FOV following the music. |
| Integrate | Accumulates remap of the probe times delta time each frame, so the output drifts upward with energy. | Ever growing motion: continuous rotation, rising values. |
| Peak Only | A 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 Peak | Like 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
+ Add probefor each band (for example P1 over the kick, P2 over the hats).- Place each rectangle over its frequency range, and pick a Metric per probe.
- 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.
- In the Sequence picker, choose a Level Sequence or click New.
- Set fps (default 30), the keyframe rate.
- Options: Skip duplicate keyframes (cleaner tracks, recommended) and Add audio to sequence (adds the sound in sync).
- 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.
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:
- Tick the Diagnostics checkbox in the panel's title bar.
- Reproduce the problem.
- 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.