Sound Reaktor Pro Documentation
:: What is Sound Reaktor Pro? ::
Sound Reaktor Pro is an audio-reactive animation toolset for Blender. It analyzes an audio file and turns that analysis into animation, driving properties of the scene in time with the sound. Under the hood it uses proper signal-processing (NumPy and SciPy) to offer several analysis methods, from continuous frequency tracking to beat/onset detection, loudness, and other spectral measures, so it can react to whatever aspect of the sound matters for the shot.
More than a single-purpose effect, Sound Reaktor Pro is a universal bridge from audio to any numeric property Blender can express. The classic targets (Location, Rotation, Scale) are just a starting point. Through its Custom Property target it can route any analysis into shader values, Geometry Nodes inputs, light energy, camera settings, modifier parameters, constraint influences, shape keys, and more.
Sound Reaktor Pro does not lock the user into a fixed workflow. It gives a set of building blocks, several analysis methods, a range of animation targets, and two animation modes (keyframes and real-time drivers), and lets to combine them freely. Because these pieces are composable rather than a single fixed pipeline, users can build setups that were never explicitly designed in advance. That flexibility is the point of Sound Reaktor Pro.
:: Requirements ::
Sound Reaktor Pro is officially supported on official Blender releases only, from Blender 4.2 up to Blender 5.2. The latest version (v3.0 at the time of writing this) it's extensively tested on Blender 5.2 LTS.
Sound Reaktor Pro is not officially supported on any unofficial Blender fork, because as a solo developers it is not realistic to test against every variant in existence. This includes, but is not limited to, forks such as Bforartists, K-Cycles, E-Cycles or Goo Engine.
Being unsupported does not necessarily mean it will not work. Many forks only add features on top of a standard Blender base and leave the rest of the application untouched. For example, K-Cycles adds render optimizations to Cycles, so Sound Reaktor Pro should work on it just fine. However, this cannot be guaranteed, since these forks cannot be tested. Use at your own risk.
Sound Reaktor Pro does NOT work with the standalone Octane Blender 4.3.1 for macOS. This is most likely caused by an incompatibility with the libraries bundled by Otoy, although it has not been possible to investigate this in depth. Note that Otoy has since moved away from shipping Octane as a standalone Blender build: modern Octane is an add-on that installs on top of an official Blender release and communicates with the separate Octane render server. If you need Sound Reaktor Pro alongside Octane, use a modern Octane version that runs as an add-on on official Blender instead of the old standalone build.
:: Installation ::
The installation process is the same across all operating systems:
- Download the addon ZIP file corresponding to your operating system from your order page. There are three versions: Windows, Linux and macOS arm64. Since they include dependencies specific to each operating system, you can only install the version for your system.
- Open Blender and navigate to Edit › Preferences › Add-ons or Get Extensions (It's the same dialog).
- Click the Install button in the top-right corner.
- Select the downloaded ZIP file and click Install Add-on.
- Enable the add-on by checking the box next to "Sound Reaktor".
- The add-on panel will appear in the 3D Viewport sidebar (press N) under the "Sound Reaktor" tab.
WARNING! Disabling and re-enabling in the same session. On Windows, disabling Sound Reaktor and re-enabling it without restarting Blender first may cause dependency errors (missing SciPy, PyAV unable to load audio files). This is a known limitation of Blender's extension system on Windows. When an extension with binary dependencies is disabled, Blender attempts to unload those files while they are still locked in memory, which can leave the installation in an inconsistent state. If this happens, the fix is straightforward: disable the addon, restart Blender, then re-enable it. Do not re-enable it in the same session after disabling.
Sound Reaktor Pro relies on NumPy and SciPy for its audio analysis capabilities. NumPy handles the numerical computations, while SciPy provides the signal processing algorithms (FFT and onset detection) that make frequency analysis possible.To be able to open MP3, OGG, OPUS, FLAC, M4A, and AAC audio files, it uses the PyAV library. This is the reason why there is a version for each operating system and why the ZIP files are so large. Each of them includes those external libraries (SciPy and PyAV) compiled for each system. To ensure compatibility with Blender 5.1+, there is a specific version of the libraries for the newest Blender release(s).
Upgrading from 2.x
Sound Reaktor Pro 3.0 is the biggest update the addon has had, and a few of its changes affect projects and presets made with 2.x. Nothing breaks, but some results change on purpose. This is what to expect when you open older work.
Re-analyzing an old project gives a different result. 3.0 fixes several problems that changed the numbers the analysis produces (audio drift at 23.976 / 24 / 29.97 fps, Rolloff stuck at the top on narrow bands, pre-filters that shifted transients in time) and replaces Sensitivity with Contrast. Animations already baked in your .blend are never touched. The difference only appears when you press MAKE IT DANCE! or ANALYZE & DRIVE again, or use Re-bake.
Sensitivity is now Contrast. For every method except Onset, the old Sensitivity slider is replaced by Contrast, which works the other way round and is easier to reason about: values above 1.0 make the animation punchier, values below 1.0 make it more fluid (see Contrast). The conversion is automatic wherever Sound Reaktor Pro has the old value:
- Presets saved with 2.5 or 2.6 are converted when you apply them. An old Sensitivity of 2.0 becomes a Contrast of 0.5, which gives the same curve. Values are brought into the new 0.25–4.0 range.
- Onset presets keep their value, because Onset still calls it Sensitivity and it still means the same thing (the beat detection threshold). Only the range changes, from 0.1–10 to 0.25–4.0.
- Re-bake and Load Settings on an animation baked with 2.x convert the value the same way.
Old animations in the Animation Info panel. An animation baked with 2.x shows its old value as "Sensitivity (legacy)", so it is not mistaken for a Contrast value.
Driver projects from 2.x. A .blend made with 2.x in Driver Mode, with its disk cache, still plays and still converts to keyframes with Bake to Keyframes, using its original numbers. Because 2.x did not record the analysis settings next to the cache, the baked animation appears in the Animation Info panel without its settings (method, frequency range and so on are missing), and Re-bake / Load Settings have nothing to restore for it. The animation itself is correct.
Presets now include the Keyframes / Drivers mode. In 2.x a preset deliberately left the mode alone. In 3.0 it stores it, together with Bake to Disk, because a Spectral Bins preset cannot be restored without Driver Mode. See Presets.
The Custom target's data path is read-only. You now set it with right-click on the property › Send to Sound Reaktor Pro. Typing a path by hand needs a new preference. See Custom Property.
:: Quick Start ::
This guide will get your first animation running in under a minute. We'll make a cube pulse to a kick drum:
- Create a cube (or use the default one). If you've deleted it, add a new one with Shift+A › Mesh › Cube.
- Select the cube and open the sidebar by pressing N in the 3D Viewport.
- Navigate to the Sound Reaktor Pro tab in the sidebar.
- Load your audio file using the file picker. Sound Reaktor Pro supports WAV, MP3, OGG, FLAC, OPUS, M4A, and AAC files.
- Leave the default settings. The add-on defaults to Kick preset (40-130 Hz), FFT analysis, and Scale animation.
- Click "MAKE IT DANCE!"
- Play the animation by pressing Spacebar.
Your cube should now be scaling up and down in sync with the kick drum. The animation keyframes have been automatically generated across the entire audio duration.
:: Interface Reference ::
The Sound Reaktor Pro panel is located in the 3D Viewport sidebar (press N) under the "Sound Reaktor Pro" tab. This section explains each control in detail.
Advanced/Easy Mode
Sound Reaktor Pro offers two interface layouts, controlled by a single Easy Mode preference found in Edit › Preferences › Add-ons › Sound Reaktor Pro.
- Advanced layout (default, Easy Mode off): every panel is visible, including Pre-filter, Analysis Preview (with the Spectroscope™) and Advanced Settings (with Keyframe Step and Interpolation). This is the full interface.
- Easy Mode (on): the three advanced panels above are hidden, leaving a simpler layout with only the essential controls. Good for a cleaner workspace or when you do not need the extra options.
This preference only changes what is shown. It does not change how the analysis works in any way. A project analyzed in Easy Mode and the same project analyzed in Advanced Mode produce identical results. Any advanced setting you configured stays in effect even after you switch to Easy Mode; it is simply hidden from view, not reset.
The preferences page has a second setting, Allow Manual Data Paths (advanced), off by default. It unlocks the Full Data Path field of the Custom target so you can type a path by hand.
You almost never need it. The normal way to set a Custom target is to right-click the property you want to animate and choose Send to Sound Reaktor Pro, which fills the path for you and cannot get it wrong. Turn this preference on only for a property that has no button anywhere in Blender's interface. See Custom Property.
:: Audio File Settings ::

Audio File
Select the audio file to analyze. Sound Reaktor Pro supports WAV, MP3, OGG, FLAC, OPUS, M4A, and AAC files.
Note: The optimal format for working with Sound Reaktor is WAV. While the other supported formats will work perfectly, it's important to keep in mind that some of them, such as MP3, are lossy compressed formats. The human ear may not notice a difference, but the data that Sound Reaktor Pro uses for its processing will be degraded by this compression. In addition, decoding these audio formats adds some extra time to the analysis process.
Add to Sequencer
When enabled, Sound Reaktor Pro automatically adds your audio file to Blender's Video Sequencer, allowing you to hear the audio during playback. The audio strip is named with an "SR_" prefix for identification.
Replace Existing Audio
When enabled (recommended), removes any previous audio strips added by Sound Reaktor Pro (identified by "SR_" prefix) before adding the new one. Keeps your sequencer clean when experimenting with different audio files.
Fit Timeline to Audio
When enabled (the default), Sound Reaktor Pro sets the scene frame range to the audio: the timeline starts at frame 1 and ends on the last analyzed frame, growing or shrinking as needed. This is what previous versions always did.
Turn it off if the scene already has a frame range to keep, for example a shot that starts at frame 1001 or an edit where the music only covers part of the timeline. Then:
- The frame range is left untouched.
- The animation and the audio strip start at the scene's current start frame, so they stay in sync with each other.
- Only the frames inside the range are baked. If the audio is longer than the range, the rest is simply not keyed.
The analysis, the audio strip in the Video Sequencer and the frame range now come from one place so they can no longer drift apart. In earlier versions the audio strip always started at frame 1 even when the animation did not.
:: Keyframe Mode ::
The default mode of Sound Reaktor Pro is Keyframe Mode. The addon analyzes the audio with the selected parameters and writes keyframes into the animation, one per frame by default (see Keyframe Step and Interpolation to write fewer). The keyframes live in the .blend file, so this mode is ideal for sharing the file with people who do not have the addon, or for rendering on a render farm. Keyframe creation is fast: keys are inserted in bulk, not one by one.
- Loads your audio file and extracts raw sample data.
- Applies High/Low pass filters if they're enabled.
- Analyzes using your chosen method within your frequency range.
- Processes results according to your parameters.
- Creates keyframes on your selected object for every frame.
- Optionally adds audio to Video Sequencer.
Important: You don't need to clear anything before re-running. Sound Reaktor Pro replaces the keyframes it baked before, so you can experiment freely by adjusting parameters and clicking again. If the same channel is still driven by a Sound Reaktor Pro driver, the driver is replaced by the new keyframes. A driver of your own on that channel is kept, and a warning tells you it will override the keyframes.
Rotation needs Euler rotation. Location, Rotation and Scale animate the object's transform channels. If an object's Rotation Mode is Quaternion or Axis Angle, Sound Reaktor Pro skips it and names it in a warning, instead of reporting success and moving nothing.
:: Driver Mode ::
By default, Sound Reaktor Pro bakes animation as keyframes, one keyframe per frame, permanently stored in the .blend file. Driver Mode is an alternative workflow: instead of generating keyframes, Sound Reaktor Pro analyzes the audio into memory and applies Blender drivers that read that data in real time during playback.
The toggle between the two modes is located in the main panel, just below the audio file selector:
Switching to Drivers changes the main button label from MAKE IT DANCE! to ANALYZE & DRIVE.
When to use Driver Mode
| Use Keyframes when… | Use Drivers when… |
| You want the animation to work without Sound Reaktor Pro installed. | You want to tweak parameters and re-analyze without rebaking. |
| You're delivering the .blend to someone else. | You're using Spectral Bins (requires Drivers). |
| You need accumulative rotation on the object itself. | You want lighter .blend files (no stored keyframes). |
| You're rendering on a farm with no addon access. | You want the 9 Spectral Bins bands in one Geometry Nodes or Shader graph. |
Workflow
- Select an object and configure your analysis settings as usual.
- Switch the toggle to Drivers.
- Click ANALYZE & DRIVE. Sound Reaktor Pro analyzes the audio and stores the result in RAM. Drivers are applied to the target property immediately.
- Press Space to play the animation. The object responds to the audio in real time.
If you want the analysis to persist after closing Blender, enable Bake to Disk (see below) before clicking ANALYZE & DRIVE.
Bake to Disk
Analysis data loaded into RAM is lost when Blender closes. Enable Bake to Disk to save the analysis to a .npz cache file on disk. The cache is stored in a subfolder next to your .blend file:
my_project/
├── my_scene.blend
└── blendcache_my_scene/
└── SR_cache_[scene name]_[hash].npz
When you reopen the .blend, Sound Reaktor Pro automatically reloads the cache. Drivers work immediately without re-analyzing.
Important: Bake to Disk requires the .blend file to be saved. If the file has not been saved yet, the option is disabled.
If analysis parameters change (audio file, frequency range, method, etc.), the existing cache is invalidated automatically and a new one is written on the next ANALYZE & DRIVE. Each scene of a .blend has its own cache files, and cleaning up old caches only ever touches the files of the scene you are working in.
Driver Count Indicator
The panel shows how many Sound Reaktor Pro drivers the selected object has, for example "3 SR driver(s) on Cube". It counts channels, not analyses: all of them read the same live analysis (see Limitations).
Bake to Keyframes
Once drivers are applied, you can convert them to standard keyframes at any time using the Bake to Keyframes button. It reads the analysis directly and writes the keyframes in one go, so it is practically instant even on long tracks. The result is faithful to what the drivers played: one Linear keyframe per frame, covering the whole analysis. The drivers are then removed, leaving a regular keyframe animation that works without the addon, and the bake is recorded in the Animation Info panel like any other, with its settings.
Bake to Keyframes ignores Keyframe Step and Interpolation on purpose. It freezes exactly what you saw, without dropping any detail. If you want fewer keyframes, switch to Keyframe Mode and press MAKE IT DANCE! with a Keyframe Step, or use Key › Decimate in the Graph Editor. The only exception is Onset Raw Count, which always bakes one Constant keyframe per beat.
If a channel cannot be baked for some reason, its driver is kept and a warning tells you, instead of leaving that channel with no animation at all.
Use this when:
- Sharing the file with collaborators who don't have Sound Reaktor Pro installed.
- Sending to a render farm.
- You're done tweaking and want to finalize the animation.
Remove Drivers
The Remove Drivers button removes all Sound Reaktor Pro drivers from the active object without converting them to keyframes. The analysis data in RAM (and on disk, if Bake to Disk was enabled) is preserved. You can re-apply drivers at any time with ANALYZE & DRIVE. Any driver whose expression calls SR_amp or SR_bin counts as a Sound Reaktor Pro driver, including ones you wrote or edited by hand.
Motion Blur
Sound Reaktor Pro drivers are evaluated between frames too, so motion blur on a driven object is smooth and continuous, the same as with keyframes. In earlier versions the value only changed on whole frames and the blur looked stepped.
Limitations
- Accumulative Rotation is not supported in Driver Mode. The option is grayed out when Drivers is active. Use Keyframes mode if you need accumulative rotation.
- Analysis data stored in RAM only (Bake to Disk disabled) is lost when Blender closes. If you reopen the file without the cache, drivers will be present but inactive, re-run ANALYZE & DRIVE to restore them.
-
Only one driver-based analysis can be active at a time because the analysis data lives in a single shared store. The recommended workflow for animating multiple objects with different analyses is sequential. Configure and apply drivers to the first object, tweak until the result is right, then use Bake to Keyframes to convert the drivers to permanent keyframes. Once baked, that object's animation is independent of the driver store and the next object can be analyzed without affecting it. Repeat for each object.
The one exception is Spectral Bins: its 9-band data is stored separately from single-channel analyses, so a Spectral Bins node group and a single-channel driver (FFT, Onset, RMS, etc.) can coexist on different objects simultaneously without interfering with each other.
:: Presets ::
A preset is a saved snapshot of your current Sound Reaktor Pro settings. Once you find a combination of analysis method, frequency range, contrast, smoothing, FFT size and all the rest that works for a given track, you can store it and bring it back later with a single click. This is handy when you are experimenting: you never lose your "sweet spot" just because you kept tweaking parameters afterwards.
Presets also save the KEYFRAMES / DRIVERS mode and the Bake to Disk option. A preset that animates Spectral Bins only makes sense in Driver Mode, so without the mode it could not be restored. The Apply to Selected toggle is the one setting left out on purpose: which objects a bake reaches depends on what you have selected at that moment, not on the preset.
Presets are stored inside the .blend file, so they travel with your project.
Saving a Preset
The audio path is stored both as an absolute path and as a path relative to the .blend, when the file has been saved. When you later apply the preset, Sound Reaktor Pro tries the relative path first and falls back to the absolute one. This means a preset keeps working even if you move the whole project folder somewhere else, as long as the audio file stays in the same place relative to the .blend.
Applying a preset
Select a preset in the list and click Apply Preset. All stored settings are restored at once. Note that applying a preset only restores settings; it does not run the analysis. Press MAKE IT DANCE! (or ANALYZE & DRIVE) afterwards as usual. If some settings cannot be restored (for example an audio file that no longer exists), the preset is still applied and a message tells you how many settings were skipped.
Applying a Custom-target preset to a different object. If a preset uses a Custom Property target, that target was set up on a specific object when the preset was saved. If you apply the preset while a different object is active, a centered dialog warns you, because pressing MAKE IT DANCE! would animate the original object the target points at, not the one you have selected now. The warning tells you which object the preset belongs to, so you can re-select the target on the active object if that is what you intended. Location, Rotation and Scale presets are not affected by this, as they always apply to whatever object is active.
Updating a Preset
Found a better setting after saving? Select the preset and click the Update Preset button (the circular arrows below + and -). After a confirmation, the preset is overwritten with the current settings and keeps its name and position in the list.
Deleting a preset
Select a preset and click the - button next to the list to remove it.
Exporting and Importing Presets
Presets live inside the .blend, but you can take them to other projects:
- Export saves presets to a
.jsonfile. In the file browser you choose whether to export the Active Preset only or All Presets of the scene. - Import adds the presets of a
.jsonfile to the current scene. Names that already exist get a number added, so nothing is overwritten.
Sound Reaktor Pro 2.x had no export, so older presets live only inside the .blend they were saved in. They still work in 3.0 and are converted automatically when you apply them (see Upgrading from 2.x).
:: Analysis Preview ::

The Analysis Preview panel runs the analysis with your current settings without baking anything and shows a statistical summary of the result: Floor (minimum), Peak (maximum), Average, and P95 (95th percentile) across all frames. Use it to understand the dynamic range of your audio before animating. Hover the ? next to each value for a reminder of what it means.
The cost of Analysis Preview is zero. Sound Reaktor Pro analyzes the audio to display the values, so when MAKE IT DANCE! is pressed, it will use the cached values from the audio analysis preview.
- Floor: Minimum amplitude across all frames. If Floor is too high, the object never returns to rest. Raise Contrast above 1.0 or enable Noise Filter to push it down.
- Peak: Maximum amplitude across all frames. With Per-Band Peak normalization it is always 1.0; with Global or Soft it can be lower. Contrast never moves the Peak: it only reshapes the values below it.
- Average: Mean amplitude across all frames. A low Average with a high Peak means the audio is mostly quiet with occasional loud moments. Lower Contrast below 1.0 to raise it.
- P95: 95th percentile amplitude. 95% of frames are at or below this value. If P95 is close to Peak, the audio is consistently loud. If P95 is much lower than Peak, only occasional spikes reach the top.
Below the statistics, the Spectroscope™ button opens a picture of the whole spectrum of your audio, with the frequency band you are about to animate marked on it. It stays grayed out until you run a preview. It has its own section, next.
:: Spectroscope ::
What it is for?
Choosing a frequency band usually goes like this: pick a preset, bake, watch, change the preset, bake again. The Spectroscope™ lets you choose by looking instead. It answers two questions before you bake anything: where does the kick of this song live? and which band is actually going to move?
Opening and closing it
- The Spectroscope™ lives in the Analysis Preview panel, so it is only available in the Advanced layout (not in Easy Mode).
- Click Preview Analysis (the play icon). This analyzes the audio and prepares the picture.
- Click Spectroscope™. The picture appears over the 3D Viewport.
It does not block anything: the sidebar keeps working underneath, and the marked band follows the Frequency Range fields live as you change them. To close it, press ESC, click the X in its corner, or click the Spectroscope™ button again. If you switch workspace it stays where it was. Clicking the button in another 3D Viewport moves it there.
The picture is not saved in the .blend. After reopening a project the button is grayed out again until you run Preview Analysis once more.
Reading the horizontal axis
Low frequencies are on the left and high ones on the right, from 20 Hz to 20,000 Hz. The axis is logarithmic, like the keys of a piano: every octave takes the same width. That is why the bass gets so much room even though it covers few hertz, and it matches how we hear.
Some rough landmarks to find your way:
| Sound | Where it usually sits |
|---|---|
| Kick drum | 50–100 Hz |
| Bass line | 80–300 Hz |
| Snare body | 150–500 Hz |
| Voice | 300–3,000 Hz |
| Cymbals, hi-hats, "air" | 5,000 Hz and up |
The picture covers the whole audio file, not only the part inside the timeline.
The two curves
This is the heart of the Spectroscope™. There are two curves, and they answer different questions.
- Energy (blue, filled): where there is sound. How loud each frequency is on average over the whole song. It is drawn on a compressed scale (decibels, 60 dB of range) so that the treble, which is naturally much quieter than the bass, does not disappear at the bottom.
- Movement (orange line): where the sound changes. How much each frequency goes up and down compared with its own average level. This is what Sound Reaktor Pro animates, so it is the curve to look at when choosing a band.
The example that makes the difference obvious: a sustained pad has lots of Energy and almost no Movement. It is loud, but it barely changes, so an object connected to it would hardly dance. A kick drum has little average Energy (it only sounds now and then) and lots of Movement. That is the band that will make things jump.
Each curve is scaled on its own, as the legend says. Do not compare the height of the blue curve with the height of the orange one. Compare each curve with itself along the axis: where it rises, where it falls.
What Movement means for each analysis method
The curves describe the audio, so they are the same whatever method you pick. What changes is how much they tell you about the result:
| Method | How to use the picture |
|---|---|
| FFT and Spectral Bins | High Movement means the band will dance. I promise :) |
| Onset (Beats) | A good guide: where there is a lot of Movement there are usually hits. Not exact, because Movement also counts slow changes that Onset ignores. |
| Centroid, Flatness, Rolloff | Movement promises nothing here. These methods animate the shape of the sound inside the band, not its loudness. Look at Energy instead: if the band has no content, the result will follow noise. |
| Volume (RMS) | RMS listens to the whole spectrum, so no band is marked. The picture is still useful to see what the Pre-filter removes, which does change the RMS result. |
The band and the preset rows
- The band you are about to animate is marked in red. A Preset band is a solid red area and a Custom range has dashed red edges.
- It moves live when you change the Frequency Range, so you can compare bands without closing anything.
- The rows under the plot are the nine presets. With a Custom range they show at a glance which presets your range overlaps.
- In Custom mode, if Min is not lower than Max there is no band, and the label says so in red.
- A band above what the file contains (for example Brilliance on a file sampled at 22 kHz) is cut at the edge of the plot.
The pale yellow warning: flat animation
The small ticks along the bottom edge, most visible in the bass, are the frequency "slots" the analysis divides the sound into. If your band falls between two ticks, it contains no slot at all, and the analysis would return silence: a completely flat animation, with no error. The Spectroscope™ catches this: the band turns pale yellow and its label says "flat animation, raise FFT Size".
The fix is to raise FFT Size in Advanced Settings; the ticks get closer together live. There is a price, explained in FFT Size and bass below.
The pale yellow warning: silent band
The same pale yellow marks a band with no sound in it: nothing rises above the bottom of the plot. It happens, for example, after a Low-pass filter below the band, or with Brilliance on an MP3 whose encoder cut everything above 16 kHz.
Why it matters: with Per-Band Peak normalization, every band is stretched up to its own maximum, even when all that is left is noise. The animation would move as if there were a real signal. The label explains what would happen with the current method:
- FFT with Per-Band Peak: "silent band, Per-Band Peak will amplify noise (try Global)". With Global, the animation comes out flat, as you would expect, so no warning is needed.
- Onset: "silent band, beats would come from noise".
- Centroid, Flatness and Rolloff: "silent band, the measure would follow noise".
"Settings changed"
If you change something that alters the curves themselves (the audio file, the channel, the Pre-filter, FFT Size, Window or the scene's frame rate), a red note appears under the plot: "Settings changed: run Preview Analysis again". Run it and the picture is up to date. Changing the band or the analysis method does not trigger it, because those do not change the curves.
Recipe: find the kick in three easy steps
- Run Preview Analysis and open the Spectroscope™.
- Find the leftmost tall orange peak: in most music that is the kick.
- Choose the preset (or the Custom range) that covers it, check that the band is red, not yellow, and press MAKE IT DANCE!.
FFT Size and bass
The frequency slots of the analysis are spread at fixed steps in hertz, not per octave. With the default FFT Size of 2048 on a 44.1 kHz file, there is one slot every 21.5 Hz. That is plenty in the treble (the Presence band, 2,000–6,000 Hz, contains almost 190 of them) and very little in the bass: Sub Bass (20–60 Hz) gets just two. The logarithmic axis of the Spectroscope™ stretches the bass, and that is exactly why you can see the ticks spread apart there.
Raising FFT Size makes the slots narrower, at the cost of time. Each value is computed from a longer piece of audio, so a kick gets smeared over several frames:
| FFT Size | Audio per value (44.1 kHz) | Slot width | Slots in Sub Bass (20–60 Hz) | Slots in Kick (40–130 Hz) |
|---|---|---|---|---|
| 256 | 6 ms | 172 Hz | 0 | 0 |
| 512 | 12 ms | 86 Hz | 0 | 1 |
| 1024 | 23 ms | 43 Hz | 1 | 3 |
| 2048 (default) | 46 ms | 21.5 Hz | 2 | 5 |
| 4096 | 93 ms | 10.8 Hz | 4 | 9 |
| 8192 | 186 ms | 5.4 Hz | 8 | 17 |
| 16384 | 372 ms | 2.7 Hz | 15 | 34 |
For reference, one frame at 24 fps lasts 42 ms. You still get one value per frame whatever the FFT Size, but at 8192 each of those values averages more than four frames of audio.
Some rules of thumb:
- Sustained bass, drones, bass lines: 4096–8192. They change slowly, so the smearing does not hurt, and the extra detail separates them cleanly.
- A punchy kick: 2048–4096. Or use the Onset method, or move the band up to the click of the beater (2,000–5,000 Hz), which carries the attack.
- The pale yellow "flat animation" warning is the signal that FFT Size is too low for that band.
The number of slots also depends on the sample rate of the file. At 96 kHz each slot is more than twice as wide as at 44.1 kHz, so a setting that works with one file can leave a narrow bass band empty with another. The Spectroscope™ always counts the slots for the file you loaded.
Small FFT Size + Keyframe Step is a technique, not a mistake. If you write one keyframe every few frames (see Keyframe Step and Interpolation), a smaller FFT Size such as 1024 or 512 often follows the music more faithfully than the default. The reason: a large window already blurs each hit over a few frames, and skipping frames then keeps an arbitrary sample of that blur. A small window keeps the hit sharp and in its frame, so the keyframe that survives is a good one. Just keep at least one slot in your band: check the Spectroscope™ for the yellow warning.
The cliff at 16–20 kHz
In almost every commercial track, both curves drop vertically near the right end of the axis. That is not your music: it is the low-pass filter of the encoder (MP3 and AAC cut somewhere between about 16 kHz at low bitrates and 19.5–20 kHz at 320 kbps) or of the mastering. Above it there is nothing to animate, and the silent-band warning will say so on Brilliance. The axis ends at 20 kHz (or lower, if the file has a lower sample rate), and on a logarithmic scale the last few hundred hertz are only a few pixels wide, which is why the cut seems to sit right on the 20k mark. An uncompressed WAV from a good source usually reaches the edge.
Limitations
- The picture is a summary of the whole song. A short, different section (a bridge with no kick, a solo) is diluted in the average; if you only animate that part, the picture may not represent it.
- It is static: it does not follow playback.
- With FFT Size 32768 the preview takes a few seconds longer.
- In the bass, with a low FFT Size, the picture is blurry: a High-pass at 60 Hz looks like a gentle slope rather than a cut, because there are only two slots below it. At 8192 you see the real cut.
Colors and accessibility
The colors of the Spectroscope™ were chosen and checked for the three common kinds of color blindness (protanopia, deuteranopia and tritanopia), and nothing depends on color alone: a Custom range is told apart by its dashed edges, and every warning is also written in the label.
:: Pre-Filter ::

Before the audio reaches the analyzer, you can run it through a high-pass, a low-pass filter or both.
This is useful when your frequency range selection alone isn't enough to isolate what you're after: a high-pass removes low-end rumble that might skew the analysis upward, while a low-pass cuts the high-frequency content that can introduce noise into bass-focused animations.
Would you like to know more? https://www.mixinglessons.com/pass-filter/
:: Frequency Range ::
The frequency range determines which part of the audio spectrum Sound Reaktor Pro listens to. Different instruments and sounds occupy different frequency ranges.

Preset Mode
Nine carefully tuned frequency ranges covering the most common use cases:
| Preset | Range | Best For |
|---|---|---|
| Sub Bass | 20-60 Hz | New on 2.0: Felt more than heard. |
| Kick | 40-130 Hz | Kick drums, deep bass hits, sub-bass. |
| Bass | 80-300 Hz | Bass guitars, synth bass, 808s, low-end warmth. |
| Snare | 150-500 Hz | Snare drums, toms, percussive mid-range. |
| Low Mids | 300-2000 Hz | New on 2.0: guitar body, piano. |
| Vocals | 250-4000 Hz | Human voice, melodies, lead instruments. |
| Presence | 2000-6000 Hz | New on 2.0: vocal clarity, instrument attack. |
| Highs | 3500-16000 Hz | Hi-hats, cymbals, high synths, vocal sibilance. |
| Brilliance | 6000-20000 Hz | New on 2.0: Air, shimmer, high frequency texture. |
Custom Mode
For precise control, specify any range between 20 Hz and 20,000 Hz. Some useful custom ranges:
- Sub-bass (20-60 Hz): Frequencies you feel more than hear.
- Low mids (200-600 Hz): Body and warmth of most instruments.
- Presence (2000-5000 Hz): Clarity and definition, vocal presence.
- Air (8000-20000 Hz): Brilliance and shimmer.
:: Analysis Settings ::
Controls how Sound Reaktor Pro interprets your audio. Sound Reaktor Pro features six analysis methods: FFT, Onset, RMS, Centroid, Flatness or Rolloff Frequency.

Choosing an Analysis Method
FFT (Fast Fourier Transform) analyzes continuous energy in your selected frequency range. It measures "how loud is this frequency band right now?" at every frame, producing smooth, flowing animations that follow audio energy.
Onset Detection looks for sudden changes in the audio: the attack of a drum hit, the pluck of a string, the start of a vocal phrase. It identifies discrete moments where something "happens" creating snappy, rhythmic animation that reacts precisely when beats occur.
RMS Energy (Root Mean Square) measures the overall loudness of the audio at every frame. It's not focused on a specific frequency range, but the total volume of the signal. Think of it as a "master volume meter" for your animation. It's the simplest and most intuitive of all methods: loud = high value, quiet = low value. Great starting point if FFT feels too complex.
Spectral Centroid tracks where the "brightness" of the sound is at any given moment. A low value means the audio is bass-heavy (rumbles, low drones), a high value means it's treble-heavy (cymbals, high-pitched synths). It's particularly effective for animating color, light intensity, or any property where you want the animation to reflect the tonal character of the music rather than just its loudness. Spectral Centroid is slightly more advanced than RMS, FFT or Onset. Results depend heavily on your frequency range settings.
Spectral Flatness distinguishes between tonal sounds (musical notes, sustained synths) and noise-like sounds (cymbals, distortion, white noise). Values close to 0 mean the audio is pitched and harmonic and values close to 1 mean it's noisy and unpitched. Useful for triggering effects that should behave differently during melodic sections versus percussive or noisy ones. For example, a material property that changes character when a distorted guitar kicks in. Flatness is an advanced method and requires some experimentation to get useful results.
Spectral Rolloff tracks how much of the audio's energy is concentrated in the lower frequencies versus spreading into the higher ones. A low value means most energy is in the bass and a high value means energy has spread across the full spectrum. It's a good indicator of the overall harmonic richness of a sound at any moment. Like Flatness, Rolloff is and advanced method. It works best for subtle, slowly-evolving animations that follow the tonal complexity of the audio rather than its rhythm or loudness.
| Use FFT When... | Use Onset When... | Use RMS When... |
|---|---|---|
| You want smooth, breathing animations. | You want sharp, punchy reactions. | You want the simplest possible setup. |
| Following sustained sounds (pads, vocals, bass). | Syncing to percussion and rhythmic hits. | Animating directly to overall loudness without caring about specific frequencies. |
| Creating ambient, flowing motion. | Creating beat-locked effects. | The audio has clear loud/quiet dynamics. |
| Audio has gradual volume changes. | Audio has clear transients and attacks. | You just want something that works intuitively. |
| Use Centroid When... | Use Flatness When... | Use Rolloff When... |
|---|---|---|
| You want animation that reacts to the tonal character of the sound, not just its loudness. | You want to distinguish musical, pitched moments from noisy or percussive ones. | You want subtle, slow-evolving animation that follows the harmonic complexity of the audio. |
| Tracking the shift between bass-heavy and treble-heavy moments. | Triggering effects that should behave differently during melodic sections versus chaotic or distorted ones. | The audio has gradual shifts in harmonic richness rather than sharp transients. |
| The audio has interesting harmonic movement over time. | The audio alternates clearly between tonal and noise-like content. | You've already tried other methods and want a more nuanced, musical result. |
Contrast
Contrast shapes the dynamics of the animation. It applies a curve to the analysis (the value raised to the power of Contrast), with these properties:
- Above 1.0: punchy. Only the strong moments move the object; quiet parts stay close to rest. Good for hits, kicks, anything you want to pop.
- At 1.0: linear (default). The animation follows the analysis as it is.
- Below 1.0: fluid. Quiet parts are lifted, so the object keeps moving gently between the big moments. Good for pads, ambient motion, "breathing".
The range is 0.25 to 4.0. The loudest moment always stays at the top. Contrast never moves the peak, it only reshapes everything below it.
It works the same way for FFT, RMS, Centroid, Flatness, Rolloff and Spectral Bins. Onset is the exception: there the same slider is labeled Sensitivity and sets how easily a beat is detected (see Onset Parameters).
Coming from 2.x? Contrast replaces the old Sensitivity and works the other way round: an old Sensitivity of 2.0 is a Contrast of 0.5. Presets and baked animations from 2.x are converted automatically. See Upgrading from 2.x.
FFT Parameters
Smoothing
Reduces rapid fluctuations by averaging each frame's value with previous frames:
- 0.0: No smoothing, follows every fluctuation.
- 0.3-0.5: Moderate smoothing, removes micro-jitter.
- 0.7-1.0: Heavy smoothing, very fluid motion.
Noise Filter
Removes micro-jitter: small frame-to-frame wobble below the Threshold is smoothed away, while anything larger (hits, swells) passes through exactly as it was.
- 0.02–0.05: micro-jitter only.
- 0.05–0.10: moderate (default 0.05).
- 0.10–0.20: heavy. Only clear hits keep their exact shape.
Changed in 3.0. The old Noise Filter held the previous value until the signal moved a full threshold away. That froze most frames and turned smooth swells into a staircase of small steps. The new filter separates the wobble from the trend, so smooth motion stays smooth.
Normalization
See the next section.
Onset Parameters
Output
Onset finds the beats and Output decides how those beats become an animation curve. The detected beats are the same in all three cases.
- Envelope (default): a peak on each beat that fades out over Decay Time, with its height set by Attack Strength. The classic hit-and-fade.
- Triangle: 1.0 on each beat, falling to 0 halfway to the next beat and rising back. It follows the tempo on its own, with nothing to tune. Good for smooth pulsing that always lands on the beat.
- Raw Count: a beat counter, 0, 1, 2, 3..., going up by one on every beat and holding its value until the next. Perfect for "turn 20° on every beat", or, in a material or Geometry Nodes, for cycling through colors every 4 beats with a modulo.
Attack Strength and Decay Time only shape the Envelope output, so they are grayed out for Triangle and Raw Count. Min Time Between applies to all three, because it controls beat detection.
Raw Count grows past 1.0 by design. On Rotation, Range is the angle added on every beat; on Location, the object moves Range units per beat. Bipolar and Accumulative are switched off with Raw Count (a counter is already cumulative), and its keyframes are always Constant, one per beat, so no beat is delayed. Keyframe Step and Interpolation do not apply to it.
Sensitivity
Controls how easily a beat is detected:
- Below 1.0: Only strongest hits trigger animation.
- At 1.0: Balanced detection (default).
- Above 1.0: More sensitive, picks up quieter hits.
Attack Strength
Determines how much the animation moves when a beat is detected:
- 0.1-0.5: Subtle reactions.
- 1.0: Default, solid visible reaction.
- 2.0-5.0: Strong, punchy reactions.
- 5.0-10.0: Extreme reactions.
Decay Time
Controls how quickly animation returns to rest after a beat (in seconds):
- 0.01-0.05: Very fast decay, snappy staccato motion.
- 0.1-0.2: Quick decay, punchy with visible tail.
- 0.3-0.5: Moderate decay, lingers before returning.
- 0.5-2.0: Slow decay, overlapping flowing motion.
Min Time Between
Minimum interval between detected onsets, preventing duplicate triggers:
- 0.01-0.03: Very short, allows rapid successive hits.
- 0.05: Default, filters most duplicate detections.
- 0.1-0.2: Only distinct, separated hits trigger.
- 0.2-0.5: Very selective, widely spaced beats only.
RMS Parameters
Attack / Release
In Sound Reaktor Pro the RMS method replaces the generic Smoothing slider with two controls, Attack and Release, that together form an envelope follower. Instead of smoothing the signal equally in both directions, you can now control the rise and the fall separately:
- Attack controls how fast the value rises to follow a hit.
0snaps up instantly and higher values ease into the peak more gradually. - Release controls how fast the value falls after a hit.
0drops instantly and higher values give a slower, smoother decay.
This produces the classic "breathing" or sidechain feel: the animation jumps up sharply on a beat and then eases back down. A fast Attack with a slow Release is the typical starting point.
Attack and Release are simply a more expressive version of Smoothing. Setting both to the same value reproduces the old symmetric Smoothing behavior exactly, so nothing is lost. The other analysis methods (FFT, Onset, Centroid, Flatness, Rolloff) keep using the regular Smoothing control. Only RMS uses Attack/Release.
Noise Filter
Removes micro-jitter: small frame-to-frame wobble below the Threshold is smoothed away, while anything larger (hits, swells) passes through exactly as it was.
- 0.02–0.05: micro-jitter only.
- 0.05–0.10: moderate (default 0.05).
- 0.10–0.20: heavy. Only clear hits keep their exact shape.
Normalization
See the next section.
Centroid Parameters
Smoothing
Centroid values naturally evolve slowly. Smoothing reinforces this behavior:
- 0.0: Raw centroid values. May feel erratic on percussive or transient-heavy audio.
- 0.3–0.5: Recommended for most use cases. Removes frame-to-frame noise while preserving tonal movement.
- 0.7–1.0: Very fluid, best for slow ambient transitions.
Noise Filter
Removes micro-jitter: small frame-to-frame wobble below the Threshold is smoothed away, while anything larger (hits, swells) passes through exactly as it was.
- 0.02–0.05: micro-jitter only.
- 0.05–0.10: moderate (default 0.05).
- 0.10–0.20: heavy. Only clear hits keep their exact shape.
Flatness Parameters
Smoothing
Flatness can change abruptly when audio transitions between pitched and noisy content. Smoothing controls how sharply those transitions appear in the animation:
- 0.0: Instant response to tonal/noise transitions. Can feel abrupt.
- 0.3–0.5: Softens transitions while preserving the distinction between tonal and noisy sections.
- 0.7–1.0: Very gradual transitions. May blur the distinction if the audio changes quickly.
Noise Filter
Removes micro-jitter: small frame-to-frame wobble below the Threshold is smoothed away, while anything larger (hits, swells) passes through exactly as it was.
- 0.02–0.05: micro-jitter only.
- 0.05–0.10: moderate (default 0.05).
- 0.10–0.20: heavy. Only clear hits keep their exact shape.
Rolloff Parameters
Rolloff Threshold
Sets the percentage of total spectral energy used to calculate the rolloff frequency. This is the primary parameter for tuning the method's behavior:
- 0.75–0.80: Tracks where the lower portion of the energy is concentrated. More sensitive to bass content and reacts earlier.
- 0.85: Balanced default. Captures the point where most of the energy has accumulated.
- 0.90–0.95: Only crosses the threshold when energy has spread into higher frequencies. Reacts to broader harmonic richness.
Smoothing
Rolloff values naturally evolve slowly. Additional smoothing reinforces this but can reduce responsiveness to faster harmonic changes:
- 0.0: Raw rolloff values. May feel noisy on complex, rapidly changing audio.
- 0.3–0.5: Recommended starting point.
- 0.7–1.0: Very fluid, best for slow-evolving ambient content.
Noise Filter
Removes micro-jitter: small frame-to-frame wobble below the Threshold is smoothed away, while anything larger (hits, swells) passes through exactly as it was.
- 0.02–0.05: micro-jitter only.
- 0.05–0.10: moderate (default 0.05).
- 0.10–0.20: heavy. Only clear hits keep their exact shape.
:: Advanced Settings ::
The Advanced Settings panel, nested under Analysis Settings, holds the fine-tuning controls: FFT Size and Window Function (how the frequency analysis is performed), the audio channel selection for stereo and multichannel files, and, in Keyframe Mode, Keyframe Step and Interpolation (how the keyframes are written). All of them are optional. The defaults match the classic behavior, so if you never open this panel, nothing changes.
These two settings only affect the frequency-based analysis methods (FFT, Onset, Spectral Centroid, Flatness, Rolloff and Spectral Bins). The RMS method works directly on the raw waveform and does not use them, so the FFT Size and Window controls are hidden while RMS is selected. The panel is still shown for RMS in Keyframe Mode, because Keyframe Step and Interpolation apply to every method.
FFT Size
To analyze audio, Sound Reaktor Pro slices the sound into short overlapping chunks and measures the frequencies present in each one. FFT Size is the length of that chunk, measured in samples. It sets the trade-off between two kinds of detail that pull in opposite directions:
- Larger sizes (e.g. 8192, 16384) look at a longer stretch of audio at once, so they can tell frequencies apart very precisely. The result is smoother and more accurate in pitch, but slower to react. Fast changes get averaged out. This is the "good frequency detail, coarse timing" end.
- Smaller sizes (e.g. 128, 256) look at a very short stretch, so they react instantly to sudden events like drum hits, at the cost of blurring nearby frequencies together. This is the "sharp timing, coarse frequency detail" end.
Think of it as a zoom control between when something happens and what pitch it is. The available values range from 128 to 32768 (each step doubles the previous one), with 2048 as the balanced default that works well for most material.
A practical rule of thumb: for punchy, rhythmic animation (kicks, percussion, tight transients) try a smaller FFT Size. For smooth, flowing animation driven by sustained tones (pads, bass, melodic content) try a larger one. There is no wrong answer. Change it, click MAKE IT DANCE! again, and compare.
Regardless of the FFT Size you choose, Sound Reaktor Pro always analyzes the entire clip. Small window sizes no longer skip over parts of the audio, a problem that existed in earlier versions.
Is a large FFT Size the same as Smoothing? Not quite, even though both make the final curve look smoother. The difference is when they act. A large FFT Size smooths during analysis: by looking at a longer stretch of audio at once, it averages the sound before the animation data is ever produced, so fine, fast detail is never captured in the first place. Smoothing acts after analysis, blending together values that were already measured frame by frame. The practical consequence: a sharp transient that a large FFT Size averages away is gone for good, whereas a small FFT Size followed by Smoothing keeps the event (it was detected) while still rounding off its shape. Use FFT Size to set the character of the analysis (punchy vs. flowing) and Smoothing to polish jitter out of the final curve. They can produce similar-looking results, but reaching for a large FFT Size purely to smooth is usually the wrong tool.
Window Function
Because each chunk is a short slice cut out of a continuous sound, its edges end abruptly. Those hard edges introduce a bit of false frequency content into the measurement, an artifact known as spectral leakage. A window function smooths the volume of each chunk down to zero at its edges before analysis, which greatly reduces that artifact.
For everyday use you do not need to change this. The four options are:
- Hann (default): a well-balanced, general-purpose window. The right choice in almost every case.
- Hamming: very similar to Hann, with slightly different behavior at the edges of each frequency band. Differences are usually subtle.
- Blackman: suppresses leakage more aggressively, giving cleaner separation between strong frequencies, at the cost of slightly wider, less precise peaks.
- Rectangular: applies no smoothing at all. Maximum precision on steady tones, but the most leakage on anything that changes. Mainly useful for experimentation or very stable signals.
In practice Hann covers the vast majority of situations. The others are there for fine tuning when you want to push a particular character out of the analysis.
In the interface, the Advanced Settings panel header shows a small modifier icon whenever FFT Size, Window, the channel selector, Keyframe Step or Interpolation is set to something other than its default, so you can tell at a glance that non-default settings are active without expanding the panel.
Audio Channel Selection
By default, Sound Reaktor Pro mixes every channel of a stereo or multichannel file down into a single mono signal before analysis. That is the right choice most of the time and is controlled by the Mix All Channels option, which is on by default.
The channel controls only appear when the loaded file actually has more than one channel. For mono files there is nothing to choose, so the option stays hidden and out of your way.
When you turn Mix All Channels off, a Channel field appears where you enter the 0-based index of the single channel you want to analyze (0 for the first channel, 1 for the second, and so on). On a standard stereo file, 0 is the left channel and 1 is the right channel. If you enter an index the file does not have, a red warning tells you the highest valid channel number.
Analyzing a single channel is useful when:
- Content is panned to one side (for example a lead instrument sitting mostly in the right channel) and you want to react to it without the other side diluting the signal.
- You have a track with different content on each channel and want each to drive a different object.
- You need to recover out-of-phase content that mixing to mono would partially or completely cancel out.
Reopening a project. The channel count of a file is not stored in the .blend directly. When you reopen a saved project, Sound Reaktor Pro recovers it automatically by reading the audio strip it previously added to the Video Sequencer (the one prefixed with SR_). This means the channel selector reappears on its own for multichannel files, so you do not have to re-pick the audio file just to get the channel options back.
Keyframe Step and Interpolation
By default, Keyframe Mode writes one keyframe on every frame, which follows the analysis exactly but makes .blend files heavy on long tracks. These two settings let you write fewer keyframes and choose how the curve travels between them. They only appear in Keyframe Mode: drivers have no keyframes to space out.
Keyframe Step writes one keyframe every N frames. A step of 1 (default) follows the analysis exactly; 2 keeps about half of the keyframes, 4 about a quarter, and so on. The panel shows the approximate percentage kept. The last frame of the analysis is always keyed, so the animation never ends early.
- Interpolation sets how the F-curve travels between the keyframes:
- Linear (default): straight ramps between keyframes. Follows the analysis most closely.
- Constant: holds each value until the next keyframe. Stepped, for counters and triggers.
- Bezier: smooth curves. The handles are clamped, so the curve never overshoots the analyzed values between keyframes (no bounces below zero or above the range).
Interpolation only matters when Keyframe Step is above 1, so it is grayed out at step 1: with a keyframe on every frame there is no gap to fill. (Strictly speaking, Constant still differs from Linear between whole frames, for motion blur or time remapping.)
Raising Keyframe Step works best together with a smaller FFT Size. See the note "Small FFT Size + Keyframe Step is a technique, not a mistake" in the Spectroscope™ section, which also shows how low you can go before a band runs out of frequency slots.
Onset Raw Count ignores both settings: it always writes one Constant keyframe per beat. Bake to Keyframes in Driver Mode ignores them too, because it freezes exactly what the drivers played.
:: Normalization ::
Sound Reaktor Pro produces amplitude values in the range 0.0–1.0. Normalization controls how raw audio energy is mapped to that range. Three modes are available when using FFT, RMS, or Spectral Bins analysis.
Per-Band Peak (default)
The loudest moment in the analysis is set to 1.0. Every other frame is scaled relative to that peak.
A track where the kick barely reaches half the energy of the chorus will have its kick mapped to ~0.5 .The full 0–1 range is used only if the target frequency band actually gets loud at some point.
Good for:
- Single-property animation (Location, Rotation, Scale, Custom Property).
- Getting the maximum animation range out of quiet or narrow frequency bands.
- Situations where you want the object to hit its full Range value at least once during the track.
Watch out for:
When using Spectral Bins, each band is normalized independently. A quiet high-frequency band will still reach 1.0 . It will animate with the same range as a loud low-frequency band even if the actual energy difference between them is large. This flattens the natural loudness relationships between bands.
Global
All frequency bands share a single reference scale, the 99th percentile of the full spectrogram. Bands that are naturally louder reach values closer to 1.0, bands that are naturally quieter stay lower.
This means the relative energy differences between bands are preserved. If the bass is three times louder than the highs in the audio, the bass output will be roughly three times higher in the animation data as well.
The 99th percentile is used instead of the absolute peak to avoid a single transient spike dominating the scale and compressing everything else.
Good for:
- Spectral Bins: preserves the natural loudness hierarchy across the 9 frequency bands. The animation "feels" like the audio bass moves more than highs when the bass is louder.
- Scenes where the relative difference between multiple simultaneous analyses is meaningful.
- Tracks with a consistent loudness profile throughout.
Watch out for:
- Quiet or sparse frequency bands may produce very little animation movement. They stay low because they are genuinely quiet relative to the rest of the track. Lower Contrast below 1.0 or increase Range to compensate, or try Soft.
- Tracks with a very loud intro followed by a quiet body (or vice versa) may produce unexpected scaling, since the global reference is computed across the full track.
Soft
Soft uses the same shared reference as Global, but instead of clipping everything above that reference to 1.0, it bends the top of the range with a smooth curve (a "soft knee"). Loud moments keep getting louder, just more slowly, and never quite reach 1.0.
Why it matters: in a track with a dominant bass, Global can flatten every strong hit to the same 1.0, so the object slams against its maximum and stays there. With Soft, a big hit still looks bigger than a medium one. Relative differences between bands are preserved, as with Global.
Good for:
- Tracks with a dominant bass or a heavily compressed master, where Global pins the loud part of the song at the top.
- Spectral Bins setups where you want Global's balance between bands without the flat ceiling.
Watch out for:
The animation never reaches exactly 1.0. A value that sits right on the reference lands around 0.9, which leaves headroom for the few louder hits. Increase Range if you need the full movement.
Choosing a Mode
| Per Band Peak | Global | Soft | |
| Each band fills the 0–1 range | Yes | Only the loudest band | No (approaches 1.0) |
| Relative energy between bands preserved | No | Yes | Yes |
| Loud hits stay distinguishable at the top | Yes | No (clipped at 1.0) | Yes |
| Best for single-property animation | Yes | No | Sometimes |
| Best for Spectral Bins | No | Yes | Yes |
| Quiet bands still animate visibly | Yes | Not without lowering Contrast | Not without lowering Contrast |
In practice: use Per-Band Peak for Location, Rotation, Scale, or Custom Property. Switch to Global when working with Spectral Bins and you want the animation to reflect the actual energy balance of the audio, and to Soft when Global makes the loud part of the track stick to the top.
:: Animate Property ::
Determines which property of your object responds to the audio: Location, Rotation, Scale, Custom Property or Spectral Bins.
Location

Moves your object through 3D space in response to audio.
- Axes: Toggle which axes respond: X, Y and Z, in any combination.
- Base Location: Starting position when audio amplitude is zero.
- Get Current: Button to capture object's current position.
- Range: Maximum distance object moves from base position (in Blender units).
- Bipolar: When active allows movement to oscillate between a negative and a positive value, instead of moving in a single direction (behaviour if deactivated).
Rotation

Spins your object based on audio amplitude.
- Axes: Toggle which axes rotate: X, Y and Z, in any combination.
- Base Rotation: Starting rotation in degrees when amplitude is zero.
- Get Current: Button to capture object's current rotation.
- Range: Maximum rotation angle in degrees.
- Accumulative: When enabled, object keeps spinning in one direction instead of oscillating. Not available in Driver Mode but in Geometry Nodes, the SR Accumulator node group does the same job (see SR Utilities).
- Bipolar: When active allows rotation to oscillate between a negative and a positive value, instead of rotating in a single direction (behaviour if deactivated). Doesn't have any effect if Accumulative is ON.
-
Rotation Mode: the object must use an Euler rotation mode. Objects set to Quaternion or Axis Angle are skipped with a warning.
Scale

Makes your object grow and shrink with audio. The classic "pulsing" effect.
- Axes: Toggle which axes scale: X, Y and Z, in any combination. Enable all three for uniform scaling.
- Base Scale: Object's size when audio amplitude is zero.
- Get Current: Button to capture object's current scale.
- Range: How much the object grows at maximum amplitude (adds to base scale).
Apply to Selected
For Location, Rotation and Scale, the Apply to Selected toggle at the bottom of the box animates every selected object from a single analysis, instead of only the active one. It works in both Keyframe Mode and Driver Mode. The box shows how many objects will be animated.
Each object moves around its own current transform, so the Base fields are grayed out while Apply to Selected is on. The axes, the Range and every analysis setting are shared.
Time Offset
Time Offset delays each object by a number of frames relative to the previous one, to create waves and ripples:
- Objects are ordered by their distance from the active object, which starts first. With a Time Offset of 2, the nearest object starts 2 frames later, the next one 4 frames later, and so on.
- Negative values reverse the wave: it ends on the active object instead of starting there.
- A delayed object loses the frames that fall past the end of the timeline.
Each object remembers its own delay and base in the Animation Info panel, so Re-bake reproduces it. Load Settings, however, does not turn Apply to Selected back on or restore the Time Offset: to redo the wave, select the objects again and set the Time Offset by hand.
Custom Property
Custom mode is the most powerful and versatile animation target in Sound Reaktor Pro because it breaks the boundary between audio-reactive animation and the rest of Blender.
While Location, Rotation, and Scale are limited to object transforms, Custom mode lets you drive any numeric property in the entire application: shader node values, geometry node parameters, light energy, camera focal length, modifier inputs, constraint influences, shape key weights, compositor node values, and more.
This means Sound Reaktor Pro is not just an object animation tool: it is a universal audio-to-parameter bridge for anything Blender can express as a number. A single analysis pass can make a material's emission strength pulse to the kick drum, a displacement modifier react to the bass, or a depth-of-field blur open and close with the vocal track, properties that have no equivalent in transform-based animation modes.
Custom mode is the entry point for routing any of Sound Reaktor's six analysis methods into a Geometry Nodes or Shader graph, making it the foundation on which the most sophisticated audio-reactive setups are built.
Getting the Data Path

Right-click the property you want to animate, anywhere in Blender (a modifier value, a shader node input, a light's power, a Geometry Nodes input...), and choose Send to Sound Reaktor Pro. The addon switches the target to Custom and fills the Full Data Path for you.
- On a vector property such as Location or Color, it targets the component you clicked: right-click the Y field of Location and only Y is animated.
- Your clipboard is left untouched: the property is read directly, without Copy Full Data Path.
- The path is validated immediately. A checkmark means it works, and the current value of the property is shown below it.
The Full Data Path field is read-only. It stays visible so you can see (and share, when asking for support) what is being animated, and the two buttons next to it help with that:
- Copy puts the path on the clipboard.
- X clears the Custom target.
Typing a path by hand. For the rare property that has no button in Blender's interface, enable Allow Manual Data Paths (advanced) in the addon preferences (Edit › Preferences › Add-ons › Sound Reaktor Pro). The field then becomes editable. Paths must start with bpy.data. . Paths through bpy.context are refused, because they point at whatever happens to be selected. A typed path is only looked up, never run as code.
Supported Property Types
Works: Light energy, shader node values (emission, roughness), modifier parameters, Geometry Nodes, camera settings, constraint influences, shape key values, Compositor Nodes...
Does not work: Integer properties(*), boolean properties (checkboxes), enum properties (dropdowns), string properties (text fields).
Value Range Controls
- Base Value: Property's value when audio amplitude is zero (filled in automatically with the property's current value when you send it).
- Range: How much the value changes at maximum amplitude.
Base value is the lowest point in the animation and Base Value + Range is the highest point.
Although Sound Reaktor Pro does not directly support integer parameters, there are cases where they can still be used with the help of Geometry Nodes. In the following video, a method is shown for animating the subdivision level, which is an integer parameter, of an object using Sound Reaktor Pro.
Spectral Bins
Spectral Bins splits the audio frequency spectrum into 9 independent bands and animates all of them simultaneously in a single analysis pass. It is analyzed in Driver Mode (there is no Keyframe Mode for Spectral Bins), and the result can be frozen to keyframes afterwards with Bake Bins to Keyframes. The analysis data is stored in RAM (and optionally cached to disk as a .npz file alongside your .blend).
On first use, Sound Reaktor Pro automatically generates two node groups: SR Spectral Bins (Geometry Nodes) and SR Spectral Bins Shader (Shader nodes). Each group exposes 9 float outputs, one per frequency band, ranging from 0.0 to 1.0. You can plug these outputs into any property in a GN modifier or material, displacement amount, scale, emission strength, roughness, or anything else that accepts a float. The node groups are shared across all objects in the scene, so adding the same group to multiple objects costs nothing extra, they all read from the same in-memory data store.
Normalization follows the same dropdown as FFT mode: Per-Band Peak (default) normalizes each band independently to its own peak amplitude. Global uses a single 99th-percentile divisor across the full spectrogram, preserving relative energy differences between bands so that a quiet high-frequency band stays quieter than a loud bass band. Soft works like Global but never flattens the loudest hits against 1.0 (see Normalization).
Limitations: Spectral Bins requires the .blend file to be saved if disk cache is enabled. Unsaved files keep the data in RAM only, which is lost when Blender closes. The node groups are generated once and reused; if you delete them manually, use the Regenerate Node Groups button to rebuild them.
One of the most powerful aspects of Spectral Bins is that you can combine it with other Sound Reaktor Pro analyses in the same Geometry Nodes or Shader graph. The SR Spectral Bins node group gives you 9 outputs (one per frequency band). On top of those, you can freely add more analyses, and there is no fixed limit on how many properties you drive. What matters is how many independent analyses you can feed in at once, which differs between keyframes and drivers:
- With Keyframes there is no limit on independent analyses. Each analysis you bake to keyframes is frozen into its own property as independent data, so you can bake one to a kick, another to the bass, another to the vocals, and route them all into the same graph. Ten, twenty, a hundred, whatever your setup needs, each keeps its own values.
- With Drivers, all
SR_ampdrivers share a single live analysis. You can add as many driver-based outputs as you want, but they all read the same analysis (the most recent ANALYZE & DRIVE), so they all follow the same curve. The 9 Spectral Bins bands are the exception:SR_binexposes 9 distinct band sources at once. See the note on driver behavior below for the full picture.
So a practical way to combine everything: use Spectral Bins for your 9 frequency bands, use Drivers for one live analysis you want to scrub in real time, and use Keyframes for any additional independent analyses (kick, bass, vocals...), all feeding the same Geometry Nodes or Shader setup.
Bake Bins to Keyframes freezes the 9 bands to keyframes on the two node groups, so the setup plays back without the addon (render farm friendly). The bake is practically instant, covers the whole analysis, and writes one Linear keyframe per frame, exactly like the drivers played. The animation is global: every object that uses the node groups shares it. To make the result lighter, use Key › Decimate in the Graph Editor.
The Generate SR Utilities button at the bottom of the box creates the SR Utilities node groups, a set of ready-made building blocks for Geometry Nodes and Shader setups. They have their own section, next.
SR Utilities
Spectral Bins gives you nine bands of raw data. Turning them into good animation usually takes a few recurring tricks: smooth a band, turn it into an on/off switch, remap its range, add it up over time. SR Utilities are eleven ready-made node groups that do those jobs, so you can plug them together instead of rebuilding the same node chains every time.
They take any float as input: a Spectral Bins band, a value baked by Sound Reaktor Pro, or any other number in your graph.
Adding them
- In the Geometry Nodes editor or the Shader Editor, open Add › Sound Reaktor (at the bottom of the Add menu) and pick a group. It is created the first time you use it.
- Or click Generate SR Utilities in the Spectral Bins box to create all the missing ones at once, ready in the node editor's Group list.
A group that already exists in your file is never rebuilt or changed by the addon, not even after an update. What you saved is what you get when you reopen the project. The Sound Reaktor menu also offers Spectral Bins itself once that group exists.
Geometry Nodes and Shader variants
All eleven exist for Geometry Nodes. Seven of them also have a Shader variant, for materials, World and lights. In the Shader Editor they are named "SR (Shading)", for example "SR Range (Shading)", because Blender shares node group names across all editor types and the two variants need different names.
The one exception to that naming is "SR Spectral Bins Shader", which keeps the name it has had since version 2.3 so existing projects still find it.
The four groups with no Shader variant (Envelope, Peak Hold, Derivative and Accumulator) need to remember the previous frame, and shader trees have no memory. Trigger has a simplified Shader variant without memory.
Groups with memory (Simulation Zone). Envelope, Peak Hold, Trigger (Geometry Nodes), Derivative and Accumulator are built on a Simulation Zone, so their result depends on the frames before. They are exact when the animation plays forward from the start frame. Jumping ahead in the timeline skips steps. Before rendering frames out of order (render farms, rendering a single frame), bake the simulation in the Physics properties or the Simulation Nodes bake panel.
The groups
SR Envelope
Geometry Nodes only. Has memory.
Follows the signal with a fast rise and a slower fall: the classic "breathing" envelope. It uses exactly the same maths as the Attack / Release of the RMS method, so the same values give the same result.
- Inputs: Value (the signal); Attack (0–1, default 0.1): smoothing while the signal rises, 0 is instant; Release (0–1, default 0.6): smoothing while the signal falls, 0 is instant.
- Output: Envelope.
- Use it for: smoothing a jittery band so an object pulses instead of twitching.
SR Peak Hold
Geometry Nodes only. Has memory.
Keeps the last peak and lets it fall slowly, like the peak indicator of an audio meter.
- Inputs: Value; Decay (0–1, default 0.9): fraction of the peak kept each frame. 1 holds it forever, lower values fall faster.
- Output: Peak.
- Use it for: a light that flashes on a hit and dims gradually, whatever happens next.
SR Trigger
Geometry Nodes. Has memory. Simplified Shader variant.
An on/off switch driven by the signal, with protection against flicker.
- Inputs: Value; Threshold (0–1, default 0.5): the gate opens when Value goes above it; Hysteresis (0–1, default 0.1): the gate closes only when Value drops below Threshold minus Hysteresis, so a signal hovering around the threshold does not flicker; Hold (frames, default 0): minimum number of frames the gate stays open.
- Outputs: Gate (true/false, true while open); Pulse (1.0 only on the frame the gate opens).
- Shader variant, "SR Trigger (Shading)": only Value and Threshold, and a Gate that is simply "Value above Threshold". No hysteresis, hold or pulse.
- Use it for: switching geometry, visibility or a material on hits. Count the Pulse with SR Accumulator to step through something on every hit.
SR Contrast
Geometry Nodes and Shader.
The same Contrast curve as the addon's slider, with a gate to cut the floor.
- Inputs: Value (0–1); Contrast (0.25–4, default 1.0): above 1 only strong values stand out, below 1 quiet values are lifted; Gate (0–1, default 0): values below it become 0, and the rest is stretched back to the full 0–1 range.
- Output: Value, always within 0–1.
- Use it for: removing the background hum from a band so only the hits remain, then shaping them.
SR Bipolar
Geometry Nodes and Shader.
Turns a 0–1 signal into a swing around zero.
- Inputs: Value; Center (0–1, default 0.5): the value that maps to 0 (use the signal's average, from Analysis Preview, for an even swing); Scale (0–10, default 1.0): gain of the swing.
- Output: Value, clamped to −1…1.
- Use it for: shaking, wobbling or swaying: anything that should move both ways.
SR Bin Select
Geometry Nodes and Shader. Reads SR Spectral Bins.
One Spectral Bins band, chosen by number.
- Input: Index (0–8): 0 Sub Bass, 1 Kick, 2 Bass, 3 Snare, 4 Low Mids, 5 Vocals, 6 Presence, 7 Highs, 8 Brilliance.
- Output: Value.
- Use it for: picking a band with a number you can animate or drive, instead of rewiring.
SR Energy
Geometry Nodes and Shader. Reads SR Spectral Bins.
Combines the bands you choose into one value.
- Inputs: nine checkboxes, one per band (Sub Bass … Brilliance), all on by default.
- Outputs: Average (mean of the selected bands, 0–1); Max (the loudest selected band, 0–1); Sum (sum of the selected bands; the only output that can go above 1).
- Use it for: overall energy of a group of bands, for example "everything below 300 Hz".
SR Range
Geometry Nodes and Shader.
Maps a range of values onto another, straight, smooth or in steps.
- Inputs: Value; From Min / From Max (default 0 / 1); To Min / To Max (default 0 / 1); Steps (default 0): quantize into this many steps, 0 is continuous; Smooth (off by default): ease in and out instead of a straight line, ignored when Steps is above 0.
- Output: Value, clamped to To Min…To Max.
- Use it for: turning 0–1 into the real values a property needs (a scale of 1–2, an emission of 0–20), or into a fixed number of levels.
SR Derivative
Geometry Nodes only. Has memory.
How fast the signal is changing: the difference from the previous frame.
- Inputs: Value; Only Rising (off by default): drop the falling edges, so negative changes become 0.
- Output: Delta, the change since the previous frame (−1…1).
- Use it for: reacting to the moment a sound starts rather than to how loud it is. With Only Rising on, it works as a simple onset detector without a separate analysis.
SR Accumulator
Geometry Nodes only. Has memory.
A running total: every frame it adds Value × Rate to the sum.
- Inputs: Value; Rate (0–100, default 0.05): amount added per frame when Value is 1, for example radians of rotation; Reset (off by default): holds the sum at 0 while on.
- Output: Sum, a running total with no upper limit.
- Use it for: things that keep going and speed up with the music: a rotation that turns faster on loud parts, a texture that scrolls, a counter. This is how you get Accumulative Rotation in Driver Mode inside Geometry Nodes.
SR Bin Mix
Geometry Nodes and Shader. Reads SR Spectral Bins.
A weighted mix of the nine bands.
- Inputs: nine weights, one per band (Sub Bass … Brilliance, 0–1, default 1.0).
- Output: Value, the weighted average of the bands. It is divided by the sum of the weights, so it stays within 0–1 whatever mix you set.
- Use it for: a custom "band" made from several, for example mostly Kick with a bit of Snare.
Bin Select, Energy and Bin Mix read the SR Spectral Bins group internally, so they need a Spectral Bins analysis (ANALYZE & DRIVE with the Spectral Bins target) or its baked keyframes. Without it they output 0. The other eight groups work on any value you plug in.
Example setups
In the setups below, → means "connect to".
Kick bounce that breathes (Geometry Nodes)
SR Spectral Bins Kick → SR Envelope (Attack 0.1, Release 0.6) → SR Range (From 0–1, To 1–2) → the Scale Z of a Transform Geometry node. The object jumps on each kick and settles back smoothly.
Hi-hat switch without flicker (Geometry Nodes)
SR Spectral Bins Highs → SR Trigger (Threshold 0.6, Hysteresis 0.1, Hold 3) → Gate into the Switch input of a Switch node choosing between two geometries. The hysteresis and the hold stop the switch from chattering on every small wobble.
Global glow (Shader)
SR Energy (Shading) (all bands, Average) → SR Contrast (Shading) (Contrast 1.5, Gate 0.1) → SR Range (Shading) (To 0–20) → Emission Strength. The whole material glows with the energy of the track, and the gate keeps it dark in quiet parts.
Bipolar shake (Geometry Nodes)
SR Spectral Bins Bass → SR Bipolar (Center set to the band's average) → SR Range (From −1…1, To −0.3…0.3) → the Rotation Y of a Transform Geometry node. The object rocks both ways with the bass.
Spin that speeds up (Geometry Nodes)
SR Spectral Bins Kick → SR Accumulator (Rate 0.02) → the Rotation Z of a Transform Geometry node. It keeps turning, faster when the kick hits: Accumulative Rotation, live, in Driver Mode.
Sound Reaktor Pro and Blender's Sound Node
Blender 5.2 includes a Sample Sound Frequencies node for Geometry Nodes. It returns the raw amplitude of a frequency range of a sound at a given time, live inside the node graph, with no dependencies. It is a useful building block, and it is not a replacement for Sound Reaktor Pro: it works only inside Geometry Nodes, gives a single unprocessed number, and leaves the rest to you.
Sound Reaktor Pro covers what the node does not: six analysis methods, Spectral Bins, the post-processing (Contrast, smoothing, envelopes, normalization, pre-filters), animation of any property in Blender (objects, cameras, lights, shaders, modifiers), keyframes that play without the addon, and support from Blender 4.2.
The two can work together. SR Utilities accept any float, so you can feed the native node's output into SR Envelope, SR Trigger or SR Range, for example.
:: SR Animation Info Panel ::
This collapsible panel appears below the main panel when you select an object that has been animated with Sound Reaktor Pro. It provides a summary of all animations applied to that object, including:
- The animated property: axes for Location, Rotation and Scale, and for Custom targets the owner and the property, for example "Solidify: Thickness", "Principled BSDF: Roughness" or "Cube: Y Location".
- Frequency range used.
- Analysis method.
- Contrast and range values (animations baked with 2.x show "Sensitivity (legacy)").
- Time Offset, when the object was animated with Apply to Selected.
- Source audio file.
- Title and artist (audio metadata).
- Technical info (length, bitrate, sample rate).
The panel is also where you manage those animations. Each entry has three icons at its right edge:
- Load Settings (the import icon): restores every setting the animation was baked with, so you can tweak it or bake it again. It does not change the animation itself.
- Re-bake (the circular arrows): restores the settings and bakes again in one click, using the audio file currently loaded in the panel (or the original one, if none is loaded). This is what you want after replacing the audio with a new mix or master.
- Delete (the trash icon): removes the animation completely, both its keyframes (the entire F-curve, not just the visible keys) and its entry in the panel.
When the object has more than one animation, a Re-bake All button under the list re-bakes all of them, one after another, against the audio loaded in the panel.
Re-bake always bakes keyframes, even if the panel is in Driver Mode. It rebuilds a baked animation, doesn't turn it into drivers.
The deletion is fully undoable with Ctrl+Z, so there is no confirmation prompt. If you remove the wrong animation, just undo. This works for every target type, including custom properties on shader nodes, Geometry Nodes and modifiers.
Every bake records a complete snapshot of its settings next to the animated property, far more than the panel displays: smoothing, noise filter, pre-filters, Onset parameters and output, Rolloff threshold, FFT size, window and audio channel, Keyframe Step and Interpolation, Bipolar and Accumulative, per-axis base values, Time Offset, frame start, frame rate, bake time, and both the absolute and relative audio paths. That snapshot is what Load Settings and Re-bake use. Animations converted with Bake to Keyframes in Driver Mode record the same information.
:: Analysis Progress ::

For longer audio files, you may want to monitor progress. Open Blender's System Console before clicking "MAKE IT DANCE!":
- Windows: Window › Toggle System Console.
- Linux/macOS: Launch Blender from a terminal to see console output.
The console displays detailed progress information including frames processed, frequency bands analyzed, and any warnings or errors.
:: Roadmap ::
Sound Reaktor Pro is actively developed with new features planned for future releases.
Near Term
Additional Audio Formats: MP3, OGG, OPUS, FLAC, M4A, AAC support.(Included with v1.9.2)More presets: Tailored to specific music genres and sound effects.(Included with v2.0.0)Pre-packaged Dependencies: Bundled wheels for offline installation.(Included with v1.8.3)Low/High Pass Pre-Filters: Remove low/high frequency content before analysis.(Included with v2.0.0)Fully compatible with Blender 5.2 LTS.(Included with v2.6)
Medium Term
New Analysis Methods: RMS Energy, Spectral Centroid, Spectral Flatness, Spectral Rolloff.(Included with v2.0.0)Presets: Store and re-use settings.(Included with v2.5)Visual Audio Preview: Waveform and spectrogram display in UI.(Spectroscope™, included with v3.0)Driver-Based System: Non-destructive animation using Blender's driver system.(Included with v2.4.2)
Have an idea? Feature requests are welcome through SuperHive Market's messaging system or via support email.
:: Changelog ::
Version 3.0.0 (Updated: 2026/10/01)
- Add: Contrast replaces Sensitivity for FFT, RMS, Centroid, Flatness, Rolloff and Spectral Bins. Onset keeps its Sensitivity (beat detection threshold). Presets and baked animations from 2.x are converted automatically.
- Add: "Soft" normalization mode. Same reference as Global, with a soft knee instead of a hard clip.
- Add: Onset Output selector: Envelope (hit and fade), Triangle (follows the tempo, nothing to tune) and Raw Count (a beat counter for "one step per beat" animation).
- Add: Keyframe Step writes one keyframe every N frames for lighter .blend files, and the Interpolation setting chooses Linear, Constant or Bezier. Bezier never overshoots the analyzed values.
- Add: Fit Timeline to Audio toggle.
- Add: Apply to Selected animates every selected object from one analysis (Location, Rotation and Scale), each around its own transform.
- Add: Time Offset delays each selected object by N frames more than the previous one, ordered by distance from the active object.
- Add: Spectroscope™ in Analysis Preview. The spectrum of the whole track over the viewport, with Energy and Movement curves, the active band, the 9 presets and the FFT bin coverage, following the Frequency Range fields live.
- Add: Spectroscope™ warnings for bands that would animate flat (no FFT bin inside the band) or would animate noise (silent band).
- Add: SR Utilities, 11 node groups for Geometry Nodes (7 also for shaders): Envelope, Peak Hold, Trigger, Contrast, Bipolar, Bin Select, Energy, Range, Derivative, Accumulator and Bin Mix. Available from Add › Sound Reaktor in the node editors and from the Generate SR Utilities button.
- Add: Accumulative rotation in Driver Mode through the SR Accumulator node group.
- Add: Load Settings, Re-bake and Re-bake All in the Animation Info panel, to restore a bake's settings or bake it again after replacing the audio.
- Add: Animation Info headers name both the owner and the property.
- Add: Update Preset overwrites the active preset with the current settings.
- Add: Export and Import presets to a .json file, to reuse them in other projects.
- Add: Allow Manual Data Paths preference. The Custom target's data path is now read-only by default, with Copy and Clear buttons next to it.
- Fix: audio strip, animation and frame range now start on the same frame; the audio strip no longer starts at frame 1 when the animation does not.
- Fix: audio and animation no longer drift apart at 23.976, 24 and 29.97 fps.
- Fix: Spectral Rolloff is measured inside the selected frequency range. Narrow bands no longer stay stuck at the top.
- Fix: pre-filters no longer shift transients in time.
- Fix: the Onset envelope no longer overshoots on shader-range Custom targets when Attack Strength is above 1.
- Fix: Noise Filter rebuilt. It removes micro-jitter without freezing smooth motion into small steps.
- Fix: Bake to Keyframes is practically instant, faithful to the drivers, covers the whole analysis and records its settings in the Animation Info panel.
- Fix: Bake Bins to Keyframes is hundreds of times faster and covers the whole analysis.
- Fix: baking one axis no longer deletes hand-made animation on the other axes.
- Fix: MAKE IT DANCE! on a channel still driven by Sound Reaktor Pro replaces the driver. A non SR driver is kept, with a warning.
- Fix: driver motion blur is smooth. Drivers are now evaluated between frames.
- Fix: disk caches are named per scene, so two scenes of the same .blend no longer overwrite each other's cache.
- Fix: presets store the Keyframes / Drivers mode and Bake to Disk, so a Spectral Bins preset restores correctly.
- Fix: preset names are unique and applying a preset reports the settings it could not restore.
- Fix: Send to Sound Reaktor Pro no longer overwrites the clipboard, and targets the component of a vector you clicked.
- Fix: the Custom target no longer runs the data path as Python code, and data-block names with quotes work.
- Fix: shape keys can be animated with the Custom target.
- Fix: relative audio paths (//audio.wav) are accepted.
- Fix: Rotation on an object in Quaternion or Axis Angle mode is reported instead of silently doing nothing.
- Fix: switching from Drivers to Keyframes keeps the Location, Rotation and Custom targets.
- Fix: changing the axes no longer mutes the object's scale animation.
- Fix: Regenerate Node Groups keeps the links to the SR Spectral Bins groups in your node trees.
- Fix: MAKE IT DANCE! and ANALYZE & DRIVE refuse to run without an active object instead of reporting success.
Version 2.6 (Updated: 2026/07/23)
- Add: Blender 5.2 LTS compatibility.
- Add: Bake the SR_bin drivers on the shared "SR Spectral Bins" node groups (GN+ Shader) to keyframes.
Version 2.5 (Updated: 2026/07/10)
- Add: Configurable FFT size and window function. New Advanced Settings let you choose the analysis window size (128–32768) and the window type (Hann, Hamming, Blackman, Rectangular).
-
Add: Audio channel selection. For stereo and multichannel files you can now analyze all channels mixed together, or pick a single channel (Left, Right, or any other).
-
Add: Automatic channel recovery when reopening a project.
-
Add: Delete button in Animation Info. Each animation entry now has a trash icon that removes both the animation (its keyframes) and its info entry in one click.
-
Add: Clearer names for custom-property animations.
-
Add: Presets. Save your current settings as a named preset and restore them later with one click, so your "sweet spot" is never lost when you tweak parameters or swap the audio file.
- Add asymmetric envelope follower (Attack/Release) to RMS analysis, replacing the symmetric Smoothing slider in RMS mode.
-
Add: Advanced Mode toggle (Easy / Advanced layout). A new preference lets you hide the advanced panels (Pre-filter, Analysis Preview, Advanced Settings) for a simpler Easy layout.
- Fix: Rework axis selection (Location/Rotation/Scale) and remove "All" toggle.
- Fix: reset Accumulative rotation when switching to Driver Mode, so its stale ON state no longer keeps Bipolar greyed out.
-
Fix: Bipolar mode (Location and Rotation) rebuilt. Bipolar animation now centers correctly on the rest value and swings symmetrically with the audio's dynamics. Keyframe mode and Driver mode now produce identical results.
-
Fix: Small FFT sizes no longer skip audio. With small analysis windows the engine could jump over parts of the sound, producing empty or garbled animation. The analysis now always covers the whole clip, whatever the window size.
-
Fix: Applying a preset to the wrong object is now caught. If a preset's custom target was set up on one object and you apply it while a different object is active, a centered dialog warns you.
- Fix: RMS Attack/Release now invalidate the analysis cache.
- Fix: preset save crashed on BoolVectorProperty (axis vectors).
Version 2.4.2 (Updated: 2026/04/20)
- Add: Shader node group for Spectral Bins ("SR Spectral Bins Shader") . Use frequency data directly in materials. Both node groups are auto-generated on first use.
- Add: Drivers mode UX improvements. Main button shows "ANALYZE & DRIVE" with a dedicated icon, dynamic tooltip describes the active mode, SR driver count is shown in the panel, node groups regenerate in-place preserving existing references in the node editor.
- Fix: 50–200× faster keyframe baking! Scale, Location, Rotation and Custom Property now inject keyframes in bulk instead of one by one.
- Fix: Custom data path refactoring to use as a function with keyframe and driver mode.
- Fix: Custom driver not animating shape keys.
- Fix: Custom path parser: modifier names with brackets, shape key driver target, shared parser between keyframe bake and driver apply.
- Fix: Sound Reaktor Pro driver detection and removal missing shader node tree, material, and shape key animation datablocks.
- Fix: Extend Sound Reaktor Pro driver detection to object data, data node tree, lights and cameras animation datablocks.
- Fix: spectral centroid now respects the user-selected frequency band (previously computed over the full spectrum, ignoring Frequency Range).
- Fix: Driver frame offset no longer collapses frame_start=0 to 1 due to Python falsy semantics.
- Fix: Analyze_fft_bins replaces its O(bins × frames × columns) nested loop with a precomputed frame→STFT-column mapping for a significant speedup on long tracks.
- Fix: Timeline frame bounds now use proper numeric limits instead of hardcoded values, preventing edge cases with very long audio files.
- Fix: Spectral Bins tooltip now correctly mentions both Geometry Nodes and Shader node groups.
- Fix: Old cache files on disk are now purged before writing a new one, preventing stale .npz files from accumulating.
- Fix: Accumulative rotation toggle is now grayed out in Drivers mode. Accumulative rotation is not supported with real-time drivers.
- Fix: Custom property driver mode now works for all target types.
- Fix: Custom path parser now correctly handles modifier names containing brackets.
- Fix: Shape key drivers now target the Key datablock instead of the individual KeyBlock.
- Fix: Sound Reaktor Pro driver detection and removal now searches all relevant datablocks.
- FFT and Spectral Bins drivers can now coexist on different objects using the same audio file.
Version 2.4.1
- Fix: Stereo-to-mono conversion in the WAV loader now correctly averages channels before casting, preventing integer overflow with 16-bit files.
- Fix: Butterworth pre-filter no longer crashes when the cutoff frequency is at or above the Nyquist limit.
- Fix: Warning shown in Frequency Range panel when the minimum frequency is set higher than the maximum.
- Fix: Driver engine NPZ file handle is now properly closed after reading, preventing file lock issues on Windows.
Version 2.4.0
- Add: Animate Property resets to Scale automatically when switching from Drivers to Keyframes mode, preventing invalid state.
- Add: Audio File label and file picker merged into a single compact row.
- Add: Normalization dropdown in Analysis Settings (FFT, RMS and Spectral Bins) with two modes: Per-Band Peak (default, legacy behavior) and Global (99th-percentile of the full spectrogram).
- Fix: Analysis Settings and Animate Property panels are now collapsed by default for a cleaner initial UI.
- Fix: Driver Mode UI refactored. Radio buttons for mode selection, inline cache info, SR Data sub-panel removed.
- Fix: FFT normalization no longer destroys inter-band amplitude differences.
- Fix: RMS normalization suffered from the same destructive min-max pattern and is now corrected, with the new dropdown available in RMS mode as well.
- Fix: Spectral Bins normalization pipeline corrected.
- Fix: STFT overlap is now matched to the project FPS, eliminating jitter artifacts at high frame rates (60fps+).
Version 2.3.0
- Add: Driver Mode. Analyze audio to RAM and apply real-time drivers to object properties. Drivers can be removed or converted to keyframes at any time.
- Add: Disk cache for Driver Mode. Save analysis data to .npz file alongside the .blend for persistent playback across sessions.
- Add: Spectral Bins. Animate 9 frequency bands simultaneously using a single analysis pass. Generates a Geometry Nodes group ("SR Spectral Bins") with one output per band.
- Add: Bake to Keyframes. Converts all Sound Reaktor Pro drivers on the active object to standard keyframes and removes the drivers.
- Add: Remove Drivers. Removes all SR drivers from the active object without baking.
Version 2.2.1 (Updated: 2026/03/26)
- Add: Send to Sound Reaktor Pro context menu entry for Custom mode.
- Add: Bipolar toggle for Location and Rotation modes to enable symmetric oscillation around base position.
- Add: Refactor UI into native sub-panels, remove manual expand toggles, add poll check to preview operator.
- Fix: Disable Bipolar toggle when Accumulative is active.
- Fix: Stale keyframes on axis change. Clear all axes before re-baking Location, Rotation and Scale.
- Fix: Reset object to base values before baking to ensure correct starting position for Location, Rotation and Scale.
- Fix: minor bugfixes and tooltips rewrites.
- Fix: F-string backslash incompatibility with Python 3.11 (Blender 4.x/5.0).
Version 2.0.1
- Fixed: RMS Parameters not showing in UI (smoothing + noise filter)
Version 2.0.0
- New analysis method: RMS Energy. Measures overall volume/loudness of the signal. Simple and fast. Ideal for broad amplitude-driven animation.
- New analysis method: Spectral Centroid. Measures the "brightness" of the audio where the center of mass of the spectrum falls.
- New analysis method: Spectral Flatness. Measures tonality vs. noisiness (Wiener entropy).
- New analysis method: Spectral Rolloff. Frequency below which a configurable percentage of total spectral energy falls.
- Audio Pre-Filtering. High-pass filter & Low-pass filter.
- Added collapsible sections for Frequency Range, Analysis Settings, and Animate Property panels.
- Added Analysis Preview panel with min/max/average/P95 statistics and semantic labels.
- Added new frequency presets: Sub Bass, Low Mids, Presence and Brilliance with frequency ranges shown in labels.
- Now timeline playback automatically stops when "MAKE IT DANCE!" is triggered.
- Addon converted to Blender Extension format (compatible with Blender 4.2+ and 5.x)
- SciPy and PyAV wheels bundled for Windows, supporting Python 3.11 (Blender 4.x) and 3.13 (Blender 5.1)
- Removed `dependency_installer` module. Dependencies are now always bundled (Blender extension behaviour).
- Since PyAV is always present, WAV files now always use scipy (direct PCM read), all other formats use PyAV.
- Fixed WAV/FLAC audio desync caused by incorrect mono conversion. Now normalizes to float32 before mixing channels.
- Updated SciPy to 1.17.0 and PyAV to 13.0.0 for Blender 5.1 compatibility.
- Complete redesign of the `SR_animation_data` custom property schema. Now stores all bake parameters per property: frequency range, method, sensitivity, smoothing, range, audio file, data path.
- Fixed progressive slowdown on re-bake: existing keyframes are now cleared before each bake instead of accumulating.
- Orphan keyframe cleanup (keyframes outside timeline range) now scoped exclusively to SR-owned F-curves. User animations on the same object are no longer affected.
- Now orphaned sound datablocks are cleaned up after strip removal.
- Fixed O(N²) keyframe deletion loop.
- Bugfix: FFT div-by-zero: Added guard for when all amplitudes are identical (DC signal or silence) onsistent with analyze_rms() behavior.
- Bugfix: File handle leak: av.open() in extract_metadata() now uses "with" statement, preventing handle leaks on exception.
- Bugfix: "modifier_name" scope bug. Variable was referenced outside its defining conditional block in bake_custom()
- Bugfix: Spectral Flatness inversion bug. Adding "eps" to all magnitude bins uniformly destroyed distribution information, causing tonal signals to appear noisy and vice versa.
- Bugfix: "samples_per_frame" zero guard. Added "max(1, ...)" guard in all 6 analysis functions to prevent division by zero at extreme FPS values.
- Bugfix: Fixed preferences panel not showing in Blender Extensions.
- Removed "Clear All Data" button. Dangerous with the v2 metadata system.
Version 1.9.3
- Fixed: WAV and FLAC audio files now synchronize correctly when PyAV is installed.
Version 1.9.2
- Fixed array indexing in custom properties. Resolved crash when animating custom properties with array indexing.
- Fixed complex path parsing. Correctly handles node inputs and nested properties with multiple bracket notations.
- Fixed PyAV container memory leak. Audio container now properly closes on errors, preventing memory leaks with corrupted/invalid audio files.
- Fixed orphan keyframe cleanup. Properly removes old keyframes in Blender 4.x/5.x.
- Updated minimum Blender version to 4.2.
- Refactored metadata storage code.
Version 1.9.1
- Added OPUS format support.
- Optional PyAV installation UI.
- Fixed FLAC decoding bug. Corrected double duration keyframes issue.
- Minor UI fixes. Improved user interface stability and appearance.
Version 1.9.0
- Multi-format audio support - MP3, OGG, FLAC, M4A, AAC via PyAV library.
- Audio metadata extraction. Display title, artist, album, duration, bitrate, sample rate.
- Dynamic format detection. Automatic fallback to scipy for WAV files.
- PyAV 12.3.0 new optional dependency for multi-format support.
- Optimized NumPy handling. Uses Blender's bundled NumPy (no external install needed).
Version 1.8.3
- Added visual feedback with progress cursor during analysis.
- Minor bug fixes.
Version 1.8.2
- Updated SciPy to version 1.13.1.
- Resolved dependency installer conflict.
- Set minimum supported Blender version to 4.0.
- Fixed hard and soft limits for location, scale, and custom value ranges.
- General code cleanup and visual adjustments.
Version 1.8.1
- Fixed scale accumulation bug across consecutive runs.
- Added Base Scale fields.
- Added "Get Current" buttons for Base Location, Rotation, and Scale.
- Replaced "Clear Orphan Data" with "Clear All Data" in Info Panel.
- UI cleanup to reduce vertical space usage.
Version 1.8
- Added SR Animation Info panel to track animated properties.
- Added "Clean Data" button to info panel.
- Fixed bugs parsing complex data paths for modifiers.
Version 1.7.1
- Fixed truncated error messages for incorrect custom data paths.
- Rewrote parsing logic for long-form modifier properties.
- Disallowed integer types in Custom Property mode (floats only).
- Added support for vector3 components in data paths.
- Fixed array_index initialization after data path parsing.
- Fixed orphaned keyframes when changing audio files.
Version 1.7
- Reworked Sensitivity parameter for FFT mode to use dynamic compression.
Version 1.6
- Added checkbox to replace existing sound in sequencer.
- Added restart reminder modal after installing dependencies.
- Removed Reinstall and Uninstall dependency buttons from preferences.
- Fixed add-on activation without dependencies installed.
- Fixed cache parameter bug with clamp_values.
- Added GNU license headers for SuperHive Market compatibility.
Version 1.5
- Added dual analysis system: FFT and Onset Detection.
- Dynamic UI adapting to selected analysis method.
- New onset parameters: Attack Strength, Decay Time, Min Time Between.
- Created separate analysis.py module.
Version 1.3.1
- Added operating system detection.
- Windows: automatic dependency installation.
- Linux/macOS: manual installation instructions with detected paths.
- Platform-specific UI in preferences panel.
Version 1.3
- Added intelligent caching system for audio analysis.
- Cache invalidation when parameters change.
- Added cache status indicators.
Version 1.2
- Removed instructional text boxes from Custom Property mode.
- UI cleanup for better and compact appearance.
Version 1.1.1
- Removed update_max_size callback that modified delta_scale in real-time.
- Fixed unexpected object size changes when adjusting Max Scale.
Version 1.1
- Implemented smart amplitude clamping based on property type and range.
- Fixed high Sensitivity values not producing expected amplitude.
Version 1.0 (First Private Beta)
- Added Noise Filter to reduce animation jitter.
- Configurable threshold for filtering small fluctuations.
Version 0.9
- Rewrote axis selection logic with state memory.
- Fixed axis selection bugs when toggling between individual axes and "All".
Version 0.8
- Updated sequencer API from sequences to strips collection.
- Backward compatible with Blender 4.x.
Version 0.7
- Replaced simple data path with full Blender data path system.
- Support for materials, modifiers, constraints, world properties.
- Real-time path validation with status indicators.
- Support for array properties with index notation.
Version 0.6
- Refined frequency presets from 6 to 5 optimized ranges.
- Added detailed tooltips with descriptions.
Version 0.5
- Added duplicate audio detection in Video Sequencer.
- Strips named with "SR_" prefix for identification.
Version 0.4
- Reorganized Animate Property order.
- Added comprehensive Location animation support.
- Added comprehensive Rotation animation with Accumulative mode.
- Enhanced Scale animation.
- Unified axis selection behavior.
Version 0.3
- Added intelligent data path detection for light and camera properties.
- Automatic "data." prefix addition when needed.
Version 0.2
- Added Sensitivity control with dynamic compression.
- Added Smoothing control with Exponential Moving Average.
Version 0.1 (Initial Alpha Release)
- FFT-based audio analysis using NumPy/SciPy.
- WAV file support.
- Scale animation support.
- Basic Custom Property animation.
- Frequency preset system.
- Custom frequency range mode.
- Video Sequencer integration.
- Dependency installation system.
- Blender 4.0+ support.
:: Credits ::
Sound Reaktor Pro was developed by Yatima.
Third-Party Libraries
Sound Reaktor Pro depends on the following open-source libraries:
NumPy
NumPy is the fundamental package for scientific computing in Python, providing support for large, multi-dimensional arrays and matrices, along with a collection of mathematical functions to operate on these arrays.
- Website: numpy.org
- License: BSD 3-Clause License.
SciPy
SciPy is a library for scientific and technical computing, built on NumPy. Sound Reaktor Pro uses SciPy's signal processing module for FFT analysis and onset detection algorithms.
- Website: scipy.org
- License: BSD 3-Clause License.
PyAV
PyAV provides Pythonic bindings for FFmpeg libraries, offering direct, high-level access to video and audio streams.
- Website: pyav.org
- License: BSD 3-Clause License.
The BSD 3-Clause License permits redistribution and use in source and binary forms, with or without modification, provided that copyright notices and license terms are retained.
:: Contact and Support ::
If you encounter issues, have questions, or want to suggest features, there are two ways to reach support:
blenderartists.org Thread
To discuss Sound Reaktor Pro, follow updates, or get general support, there is also a thread on blenderartists.org forum.
For technical support, bug reports, or feature requests:
support@yatima.xyz
When Reporting Bugs
Please include the following information to help diagnose issues quickly:
- Your Blender version.
- Your operating system.
- A description of what you were trying to do.
- What happened instead of the expected result.
- Any error messages from the System Console.
Tip: Detailed information helps provide effective solutions faster. The more context you provide, the better we can assist you!







































