remotion-markup
Structure Remotion scenes with markup patterns for layout, typography, and reusable video UI.
Install
npx skills add https://github.com/remotion-dev/skills --skill remotion-markup- metadata
- tags: audio, visualization, spectrum, waveform, bass, music, audiogram, frequency
Audio Visualization in Remotion
Prerequisites
Loading Audio Data
Use useWindowedAudioData() (https://www.remotion.dev/docs/use-windowed-audio-data) to load audio data:
Spectrum Bar Visualization
Use visualizeAudio() (https://www.remotion.dev/docs/visualize-audio) to get frequency data for bar charts:
numberOfSamplesmust be power of 2 (32, 64, 128, 256, 512, 1024)- Values range 0-1; left of array = bass, right = highs
- Use
optimizeFor: "speed"for Lambda or high sample counts
Important: When passing audioData to child components, also pass the frame from the parent. Do not call useCurrentFrame() in each child - this causes discontinuous visualization when children are inside <Sequence> with offsets.
Waveform Visualization
Use visualizeAudioWaveform() (https://www.remotion.dev/docs/media-utils/visualize-audio-waveform) with createSmoothSvgPath() (https://www.remotion.dev/docs/media-utils/create-smooth-svg-path) for oscilloscope-style displays:
Bass-Reactive Effects
Extract low frequencies for beat-reactive animations:
Volume-Based Waveform
Use getWaveformPortion() (https://www.remotion.dev/docs/get-waveform-portion) when you need simplified volume data instead of frequency spectrum:
Postprocessing
Low frequencies naturally dominate. Apply logarithmic scaling for visual balance: