Audio
Importing
Insert → Audio opens a file picker, or drag a file in. On the cloud path,
audio is stored as resource_type: 'video' in Cloudinary — an implementation
detail that only matters if you are looking at raw asset keys.
The Sound FX section of the Elements & Library panel holds 12 bundled one-shots; drag them straight onto the timeline.
Video layers carry their own track
A video layer is a voice, not just a picture. Its audio plays in the viewport and is exported with it.
The <video> elements the renderer scrubs stay muted — they are seeked, not
played, so they could never produce continuous sound. The audio comes from a
separately decoded buffer, scheduled off the same clip bars as the picture.
That is what makes trim, split, slip and delete carry the sound structurally:
there is nothing to keep in sync, because there is only one bar.
A decode that fails is negatively cached. Audio sync runs on every playhead change, so without that a silent video would re-fetch its whole file once per frame. Failing to decode is the signal that there is no audio — not a reason to keep trying.
Solo covers audio, on both layer kinds. Soloing a title used to leave the footage audible; it no longer does.
A speed change mutes a clip’s audio, with a visible reason given. Stretch, reverse and time remap retime the picture by choosing a different source frame; audio would need resampling, which needs a pitch decision and a DSP pass that is not built. Muting is recoverable and states itself. Drift is neither.
The audio layer
Style → Audio carries:
| Control | Notes |
|---|---|
| Waveform | The decoded waveform, with a playhead marker |
| Level | Volume, in dB. Keyframable |
| Pan | Keyframable |
| In / out trim | Within the source |
| Mute | — |
Levels are keyframable, and they are dB
Audio properties sample per frame, like every other animatable property. Set a keyframe on Level and you get a real fade.
Under the hood the value is not assigned per frame — an AudioParam’s .value
steps once per render quantum, so a one-second fade would become roughly sixty
audible clicks. Both the live engine and the offline mixdown build a ramp
from one shared curve builder instead, so a fade renders as a fade in the file as
well as in the room.
Levels are stored in dB. Projects that stored the old percentage are migrated, so
100 stays unity rather than becoming +100 dB.
The audio expression accessor — currentLevel(), which drives Audio Throb —
counts audio layers only, deliberately. Including footage would silently
re-key every existing audio-reactive project the moment a clip was added. The
VU meter is unaffected: it meters the master bus, which does include footage.
Playback
Playback is driven by the transport through the Web Audio engine. Space plays and pauses, and audio follows the playhead.
Audio timing belongs to the clip bar: move the layer bar and the audio moves with it. One voice per clip.
The waveform on the clip bar
Both audio and video bars draw a waveform, from the same asset the picture comes from — so the two can never disagree about which file is shown.
The envelope is sliced to the clip’s own source window, so trimming or slipping redraws it. A bar that drew the whole file scaled to its width looked like a working waveform — peaks, silence, shape — while the peaks under the playhead were not the audio you would hear there. Cutting to a beat is what this is for, so that distinction is the whole feature.
A speaker glyph on the bar shows and toggles that layer’s audio mute. It is separate from the visibility eye, which hides the picture, and it writes the same property as the inspector’s Mute switch — one piece of state, seen twice.
The VU meter
Stereo peak bars in the status bar, from the master left/right analysers.
It draws only while playing, and is hidden entirely if Web Audio never produced an analyser. An absent VU meter therefore means “no audio path”, not “silence” — a useful distinction when something is not making noise.
Audio in exports
Audio is muxed into video exports, through the desktop backend’s staging and muxing path.
| Format | Audio |
|---|---|
| MP4 | AAC |
| WebM | Opus |
| MOV / ProRes | Yes |
| GIF | No — the format has none |
| PNG / JPEG sequence | Rides along as a separate audio.wav |
A PNG sequence export writes audio.wav alongside the frames. If you are
handing frames to another application, that is the file to bring with them.
The audio waveform visualiser
Separately from the layer’s own waveform display, there is an Audio Waveform shape operator that draws an amplitude envelope from a referenced audio layer. It is a visualiser you can style, animate and composite.
It is an amplitude envelope. For frequency bars, use the Audio Spectrum effect instead: it runs a real radix-2 FFT over a 1024-sample window and draws the bands between a start and end frequency you choose. See Shape operators and the effect catalog.
Audio effects
All ten of After Effects’ audio effects, applied to an audio layer or to a video layer’s own track.
| Effect | What it does |
|---|---|
| Bass & Treble | Shelving tone control |
| Parametric EQ | Frequency, Q and gain per band |
| High-Low Pass | Cut above or below a cutoff, in either direction |
| Delay | Time, feedback, dry/wet |
| Reverb | Decay, pre-delay, dry/wet |
| Flange & Chorus | Modulated short delay |
| Tone | Generates a tone rather than processing one |
| Modulator | Amplitude and frequency modulation |
| Stereo Mixer | Level and pan per channel |
| Backwards | Plays the source in reverse |
Numeric parameters are keyframable on the same schedule as levels, so a filter sweep or a reverb that opens up is ordinary animation. Each effect keeps a stable identity, so keyframes scope to the effect and survive a reorder.
The discrete choices are deliberately not keyframable — High-Low Pass’s direction, and the oscillator shape on Tone, Flange & Chorus and Modulator. Interpolating one would mean a frame that is half a highpass.
Reverb is deterministic. Its impulse response is generated from a seeded hash rather than from random numbers, because a tail that differed per render would make every export of one project sound different — the same rule the frame pipeline follows.
Backwards reverses the source, not the graph. It is applied before the audio graph exists, and a trimmed clip has its offset mirrored along with it — without that, a clip trimmed to 2–4 s of a ten-second file would play 6–8 s backwards, in time, with no error to tell you.