After Effects não tem efeito nativo de "audio visualizer". Você constrói um vinculando amplitude/frequência de áudio a propriedades de layer via **Expressions**. Aqui está workflow production-ready de barras simples a espectro dividido por frequência.
Setup (Faça Isso Primeiro)
- Importe áudio → Arraste para comp.
- Botão direito na layer de áudio → **Keyframe Assistant → Convert Audio to Keyframes**. Cria null "Audio Amplitude" com sliders **Both Channels**, **Left**, **Right** (range 0–100).
- Renomeie null: `AUDIO_CTRL`. Trave.
Nível 1: Reação Simples de Amplitude (Barras, Círculos, Scale)
Aplique a qualquer propriedade (Scale, Opacity, Position, Path Size):
// Scale pulse (100% = base, 200% = pico) amp = thisComp.layer("AUDIO_CTRL").effect("Both Channels")("Slider"); base = 100; maxScale = 250; linear(amp, 0, 100, base, maxScale)
Suavização: Keyframes de áudio raw são trêmulos (1 frame = 1 sample). Adicione painel **Smoother** (Window → Smoother) → Aplique no slider "Both Channels" (tolerância 1–3). Ou use expression:
smooth(3, 5) // janela 3 seg, 5 samples/seg - coloque no próprio slider via expression // OU na propriedade: linear(smooth(thisComp.layer("AUDIO_CTRL").effect("Both Channels")("Slider"), 0.5, 10), 0, 100, 100, 250)
Nível 2: Bandas de Frequência (Visualizador EQ) — O Jeito Pro
Expression `audioFrequency` do AE é **lenta e single-threaded**. Não use em 100 layers. Em vez disso: **Pré-asse dados de frequência.**
Workflow A: Bake Externo (Mais Rápido, Preciso)
- No Audition / Python (librosa) / REAPER: Rode FFT → Exporte CSV: `tempo, bass, lowmid, highmid, treble`.
- No AE: Arquivo → Importar → CSV → Cria layer de planilha.
- Expression lê planilha: `thisComp.layer("audio_data").cell(row, col)` — instantâneo, scrubbável, zero CPU no render.
Workflow B: AE Nativo (Sem Ferramentas Externas)
- Duplique layer de áudio 4x. Nomes: `BASS`, `LOWMID`, `HIGHMID`, `TREBLE`.
- Em cada: Effect → **Audio → Bass & Treble** (ou **Parametric EQ**):
- BASS: Boost 60–250 Hz, Corte resto.
- LOWMID: 250–500 Hz.
- HIGHMID: 500–2000 Hz.
- TREBLE: 2000–8000 Hz.
- Em cada: **Convert Audio to Keyframes** → Cria `Audio Amplitude 2`, `3`, `4`, `5`.
- Renomeie sliders: `BASS_CTRL`, `MID_CTRL`, etc.
Agora cada elemento visual linka à sua banda:
// No Scale da Barra de Bass bass = thisComp.layer("BASS_CTRL").effect("Both Channels")("Slider"); linear(bass, 0, 100, 50, 400)
Nível 3: Espectro Circular / Radial (Coordenadas Polares)
- Crie Shape Layer → Ellipse Path → **Add → Repeater**.
- Repeater Copies: 64 (ou 128). Transform: Position 0,0. Rotation: `360 / copies`.
- Ellipse Path Size linkado à banda de frequência via expression em **Scale** ou **Path Size**.
- Use `valueAtTime(time - index * offset)` para efeito de onda trailing.
Nível 4: Sistemas de Partículas (Trapcode Particular / Stardust / Built-in CC Particle World)
- Emitter Rate / Velocity / Size linkado ao slider `BASS_CTRL`.
- Physics → Gravity / Wind linkado ao `TREBLE_CTRL`.
- Color over Life → Gradient mapeado ao `HIGHMID_CTRL` (shift de hue HSB).
Otimização de Performance (Crítica)
- Pre-compose comps pesadas de visualizer. Collapse transformations OFF.
- Reduza Densidade de Expressions: Um control null por banda, não por layer. Use referências `thisComp.layer("CTRL")`.
- Cache Audio Keyframes: Ative **Disk Cache** (Preferences → Media & Disk Cache → 50+ GB em NVMe).
- Render com Multi-Frame Rendering (MFR): On (default no AE 22+).
- Proxy: Renderize visualizer para ProRes 422 HQ / DNxHR HQX → substitua no comp principal.
Estrutura de Template Inicial
COMP: MAIN_VISUALIZER ├─ AUDIO_CTRL (Null, Audio→Keyframes baked) ├─ BASS_CTRL, MID_CTRL, HIGH_CTRL (Nulls, EQ'd + Keyframed) ├─ VIS_BARS (Pre-comp) │ ├─ BAR_1 (Shape) → Scale → expr(BASS_CTRL) │ ├─ BAR_2 → expr(LOWMID_CTRL) │ └─ ... ├─ VIS_CIRCULAR (Pre-comp) → Repeater + Polar └─ VIS_PARTICLES (Pre-comp) → Particular
Salve como template `.aep`. Troque áudio → Convert to Keyframes → Relinke `AUDIO_CTRL` → Render. Turnaround de 10 min para revisões de cliente.