AUDIO VISUALIZATION TOOLKIT

Highly interactive, customizable waveforms, with less wiring

An ergonomic audio toolkit with reliable playback and fully customizable waveforms. Simple APIs, accessible controls, and a look that’s yours.

Prompt for your coding agentCodex · Claude Code · Cursor

Add a raavl audio waveform player to this app. Read https://raavl.dev/skill.md and follow its integration workflow. Use https://raavl.dev/llms.txt to find the relevant API documentation. Match this app's framework, preserve its existing styles, and verify playback, accessible seeking, errors, and resource cleanup.

Prefer to do it yourself? Follow the quickstart

How it feels

bach_classical.mp3

Bach · classical

0:00 / 0:00
Mouse, touch, and keyboard. All welcome.

IT'S THE LITTLE THINGS

Easy to wire up. Yours to shape.

Connect playback through clear methods and observable state. Use JavaScript or React, bring your own controls, and style the waveform to fit your application.

  • Less state plumbing.Play, pause, seek, and subscribe to changes without keeping a second playback state in sync.
  • Style it where you work.Use CSS tokens, reusable themes, and drawing options to control colors, bars, spacing, and rounded corners.
  • Add features as you need them.Start with playback. Add editable regions, markers, a timeline, or a minimap as your interface grows.
import { AudioPlayer } from 'raavl/react';import 'raavl/styles.css';export function AudioPlayback() {  return <AudioPlayer    source={{ kind: 'url', id: 'my-audio', url: '/audio.mp3' }}    waveform={{ interaction: { drag: 'seek' } }}    controls={{ playbackRate: true, loop: true }}    aria-label="Audio player"  />;}