Sound reactivity
A scene can move to whatever your computer is playing: bars that jump with the music, a glow that swells with the bass, fireworks on the beat. Motion listens to what your speakers play, never to a microphone, and only while a scene that uses it is on screen.
Try it: Rain Harbour (a scene's own sound, mixed on buses), Resonance (the spectrum, bass and beat), Solar Wind (a particle burst on the beat).
What Motion listens to
Motion hears the mix your computer sends to its speakers or headphones, the same sound you hear.
- Linux. It listens to the monitor of your output, through PipeWire or PulseAudio. It needs
pw-record(inpipewire-bin) orparec(inpulseaudio-utils); most desktops have one already. On Plasma it also needs themotion-inputpackage. - Windows. It listens to what Windows plays to your speakers, with nothing to turn on. If that ever isn't allowed, it falls back to a loopback input such as Stereo Mix, which you turn on in Windows' Sound settings, under Recording.
- Android. It uses Android's own way of hearing what the phone plays. Android files that under the microphone permission, so the app asks for it once, the first time you turn music on. It still only hears what plays, not the room.
It never opens a microphone on Linux or Windows, and on every system nothing is recorded, kept or sent anywhere. The sound is turned into a handful of numbers about 30 times a second, and those numbers are all a scene sees.
Turning it on and off
In Motion Player, open Settings and find Sound and pointer. Hear what's playing is the switch. It's on to start with. Off, scenes that move to music sit at rest.
The same switch is in the first-run steps, and on Plasma it's also in the wallpaper's own settings, as Hear what's playing. On Android it's Music in the app: Scenes move to it or Off.
Even with it on, Motion only listens while a scene that uses sound is showing. A scene that doesn't move to music never starts the listening at all. In the library, the Moves to sound filter shows the scenes that do.
What a scene gets
Every frame, a scene can read:
| What | Range | What it is |
|---|---|---|
| Bass | 0 to 1 | the low end: kick drums, bass lines |
| Middle | 0 to 1 | voices, guitars, most of the melody |
| Treble | 0 to 1 | hats, cymbals, the bright top |
| Level | 0 to 1 | how loud it all is |
| Beat | pulse, count, since | the pulse jumps to 1 on a beat and fades; count goes up by one each beat; since is the seconds since the last one |
| Spectrum | 64 numbers, 0 to 1 | from the lowest notes to the highest, spaced evenly in pitch |
| Waveform | 64 numbers, -1 to 1 | the sound wave itself |
A few things worth knowing:
- It evens out the volume. Motion follows the loudest of the last few seconds, so quiet music and loud music both fill the range. Turning your volume down doesn't flatten the scene.
- A beat is the bass jumping. When the bass leaps well over its recent average, that's a beat. It works best with music that has a clear low end, and it won't count more than four or so a second.
- Silence falls to rest. Half a second after the sound stops, everything settles back to 0.
Layers that move to sound
The Sound visualizer draws what's playing as bars, mirrored bars, a ring, a line or the waveform. Its When it's quiet setting decides what it does with no music: Breathe moves gently so it's never dead, Rest lies flat.
Many other layers have a sound setting of their own, at 0 until you raise it:
- Fire leaps with the bass (Moves to sound).
- Fireworks burst on the beat (Bursts on the beat).
- Lightning strikes on the beat.
- Water surface drops on the beat.
- Lens flare flares up with what's playing.
- Falling code rushes with the sound.
- Fluid is pushed by the sound.
- 3D particles get more with the bass and burst on the beat.
- Sprite sheet can play A frame a beat, and Physics can drop shapes On the beat.
A Particle system can spawn on the beat or be pushed by the sound, module by module (see Particles). A Web project hears the sound too, once its Hears the sound setting is on; Studio turns it on for you when the page's code reads the sound (see Web layers).
Any setting can follow the music
Every slider and colour in Studio has a ∿ beside it. Click it, then pick The sound under Follows:
- Part is what it follows: Bass, Middle, Treble, All (the level) or Beat.
- Loud gives is the value it reaches when that part is at its loudest. When it's quiet, the setting sits at the value you gave it.
- Answers is how it gets there: Straight follows the sound as it is, Gently smooths it out, Quickly snaps to it.
So to make a glow breathe with the bass: select the layer, click ∿ beside its brightness, pick The sound, Bass, and drag Loud gives up. The layer's Driven by tab lists every setting that follows the sound, so you can find them again.
This works on any layer, including the common ones every layer has: opacity, size, turn, and the rest.
In scripts
Scripts read the same numbers: scene.audio (bass, mid, treble, level), scene.beat (pulse, count, since, and bpm and onset), scene.spectrum and scene.waveform (the sound's shape, 64 samples from -1 to 1). scene.band gives how loud a band of pitches is, in Hz: scene.band(40, 120) is the kick drum. scene.on with "beat" runs a function on every beat, and "loud" and "quiet" when the sound gets louder or stays quieter than a level. All of these are the sound the computer plays, as a whole, not one bus's: a scene's own sounds are in it as they're heard.
scene.on("beat", (count) => {
if (count % 4 === 0)
scene.animate("Ring", "scale", 1.2, 0.1);
});
In visual scripts, the Audio nodes do the same: On Beat, On Loud and On Quiet start things; Get Sound Levels, Get Beat Info, Get Spectrum Level, Get Band Level, Get Waveform, Get Onset and Get Tempo (BPM) give values. Play Sound, Set Voice, Stop Voice and Fade Sound Layer make sound. See Scripts and Visual scripts.
In materials and shaders
A material can move with the sound pixel by pixel. The Audio nodes include Sound Levels, Beat, Spectrum, Waveform, Sound Band, Respond to Sound, and ready-made shapes: Spectrum Bars, Spectrum Ring and Waveform Line.
In GLSL of your own:
iAudiois bass, middle, treble and level;iBeatis pulse, count and seconds since.- The sound texture,
iSound, is what's playing as a strip 64 pixels wide and one high: the spectrum in red (low notes on the left), the waveform in green (0.5 is silence).lib_spectrum(x)andlib_waveform(x)read it for you, with x from 0 to 1;lib_band(from, to)gives how loud the spectrum is between two places across it, also from 0 to 1 (not in Hz, asscene.bandis), andlib_bars(uv, count, gap)draws bars.
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
vec2 uv = fragCoord / iResolution.xy;
float bar = lib_bars(uv, 32.0, 0.25);
fragColor = vec4(vec3(0.49, 0.9, 0.58) * bar * (0.6 + iBeat.x), bar);
}
See Materials for the rest.
Designing without music
In Studio, the button in the bar under the preview says what the preview hears. Click it to go round:
- Sound: what's playing on this computer.
- Pretend: a made-up beat at 120 a minute, with a bass line, chords, hats and a lead. It's there so you can design a scene that moves to music without playing any.
- Muted: nothing.
Hover over it to see what it's doing, for instance Not used by this scene when nothing in the scene listens. Studio, like the wallpaper, only listens while the preview plays a scene that uses sound.
Scenes that make sound
A scene can play sound of its own too: a Sound layer (in Sound and time) plays a file from the start, on each click, or when the script says, and a script can play sounds of its own. In Studio, Hear in the bar under the preview plays them.
The mixer
Every sound plays through one of the scene's buses: Music, Effects (where a sound goes unless told), Ambience, and up to four of the scene's own, all under Master. A Sound layer's Bus setting picks it; a script's sound names it ({ bus: "music" }). The Mixer tab, in the dock under the preview beside Assets, Timeline and Console (or Window › Mixer), has a strip for each bus:
- Volume, Mute and Pan. A bus's volume can be keyed like any setting (the diamond keys it at the playhead), and the sliders button offers it as a setting people can change ("Music volume").
- Duck: while this bus plays, another is turned down by so many dB, for instance Effects ducking Music by 8 dB, coming in over its attack and going over its release.
- Low-pass and High-pass filters, and a Reverb with its room's size. Master has a limiter, so the whole never clips.
- A meter of what it's playing.
A Sound layer can also pan by its place (heard further left or right as it's placed across the screen) and crossfade when its file changes, which suits a playlist of tracks.
Video wallpapers
The sound of a video wallpaper, and of a scene, is heard when Play wallpapers' sound is on in Settings, at Wallpapers' volume. It's off to start with.
Last changed 2 November 2026. Something wrong here? Tell us.