Créer un visualiseur audio dans After Effects : Expressions & Workflow
After Effects n'a pas d'effet « visualiseur audio » natif. Vous en construisez un en liant amplitude/fréquence audio aux propriétés des calques via les **Expressions**. Voici un workflow prêt production, des barres simples au spectre découpé par fréquences.
Configuration (Faites ceci d'abord)
- Importez audio → Glissez dans comp.
- Clic droit calque audio → **Assistant keyframes → Convertir audio en keyframes**. Crée null « Amplitude Audio » avec curseurs **Les deux canaux**, **Gauche**, **Droite** (plage 0–100).
- Renommez null : `AUDIO_CTRL`. Verrouillez-le.
Niveau 1 : Réaction amplitude simple (Barres, Cercles, Scale)
Appliquez à n'importe quelle propriété (Scale, Opacité, Position, Taille chemin) :
// Pulse scale (100% = base, 200% = pic) amp = thisComp.layer("AUDIO_CTRL").effect("Les deux canaux")("Slider"); base = 100; maxScale = 250; linear(amp, 0, 100, base, maxScale)
Lissage : Keyframes audio bruts sont saccadés (1 frame = 1 échantillon). Ajoutez panneau **Lissage** (Fenêtre → Lissage) → Appliquez sur curseur « Les deux canaux » (tolérance 1–3). Ou expression :
smooth(3, 5) // fenêtre 3 sec, 5 échantillons/sec - sur curseur via expression // OU sur propriété : linear(smooth(thisComp.layer("AUDIO_CTRL").effect("Les deux canaux")("Slider"), 0.5, 10), 0, 100, 100, 250)
Niveau 2 : Bandes fréquentielles (Visualiseur EQ) — La voie Pro
L'expression `audioFrequency` d'AE est **lente et mono-thread**. Ne l'utilisez pas sur 100 calques. À la place : **Précuisez données fréquentielles.**
Workflow A : Cuisson externe (Le plus rapide, précis)
- Dans Audition / Python (librosa) / REAPER : Lancez FFT → Exportez CSV : `temps, bass, lowmid, highmid, treble`.
- Dans AE : Fichier → Importer → CSV → Crée calque feuille de calcul.
- Expression lit feuille : `thisComp.layer("audio_data").cell(row, col)` — instantané, scrubbable, zéro CPU au rendu.
Workflow B : AE natif (Sans outils externes)
- Dupliquez calque audio 4x. Nommez : `BASS`, `LOWMID`, `HIGHMID`, `TREBLE`.
- Sur chacun : Effet → **Audio → Basses & Aigus** (ou **EQ Paramétrique**) :
- BASS : Boost 60–250 Hz, Coupe reste.
- LOWMID : 250–500 Hz.
- HIGHMID : 500–2000 Hz.
- TREBLE : 2000–8000 Hz.
- Sur chacun : **Convertir audio en keyframes** → Crée `Amplitude Audio 2`, `3`, `4`, `5`.
- Renommez curseurs : `BASS_CTRL`, `MID_CTRL`, etc.
Maintenant chaque élément visuel lie à sa bande :
// Sur Scale de Barre Bass bass = thisComp.layer("BASS_CTRL").effect("Les deux canaux")("Slider"); linear(bass, 0, 100, 50, 400)
Niveau 3 : Spectre circulaire / radial (Coordonnées polaires)
- Créez Calque Forme → Chemin Ellipse → **Ajouter → Répéteur**.
- Répéteur Copies : 64 (ou 128). Transform : Position 0,0. Rotation : `360 / copies`.
- Taille Chemin Ellipse liée à bande fréquentielle via expression sur **Scale** ou **Taille chemin**.
- Utilisez `valueAtTime(time - index * offset)` pour effet vague traînante.
Niveau 4 : Systèmes particules (Trapcode Particular / Stardust / CC Particle World natif)
- Taux émission / Vitesse / Taille lié à curseur `BASS_CTRL`.
- Physique → Gravité / Vent lié à `TREBLE_CTRL`.
- Couleur sur vie → Dégradé mappé sur `HIGHMID_CTRL` (shift teinte HSB).
Optimisation performance (Critique)
- Pre-composez comps visualiseur lourdes. Collapse transformations OFF.
- Réduisez densité expressions : Un null contrôle par bande, pas par calque. Utilisez références `thisComp.layer("CTRL")`.
- Cachez keyframes audio : Activez **Cache disque** (Préférences → Cache média & disque → 50+ Go sur NVMe).
- Rendu Multi-Frame Rendering (MFR) : Activé (défaut AE 22+).
- Proxy : Rendez visualiseur vers ProRes 422 HQ / DNxHR HQX → remplacez dans comp principale.
Structure template démarrage
COMP: MAIN_VISUALIZER ├─ AUDIO_CTRL (Null, Audio→Keyframes cuit) ├─ BASS_CTRL, MID_CTRL, HIGH_CTRL (Nulls, EQ'd + Keyframed) ├─ VIS_BARS (Pre-comp) │ ├─ BAR_1 (Forme) → Scale → expr(BASS_CTRL) │ ├─ BAR_2 → expr(LOWMID_CTRL) │ └─ ... ├─ VIS_CIRCULAR (Pre-comp) → Répéteur + Polaire └─ VIS_PARTICLES (Pre-comp) → Particular
Sauvegardez comme `.aep` template. Changez audio → Convertir en Keyframes → Reliez `AUDIO_CTRL` → Rendez. 10 min turnaround révisions client.
