New — hover-time tooltips & auto-highlighting markers in WaveformPlayer 1.16. What's new →

Examples

See it in every mode.

A live gallery of the visual styles, the headline features and a wall of brand themes. Every player below is real — and every one is just a <div>.

Visual styles

All six, one attribute apart.

bars · mirror · line · blocks · dots · seekbar — every card below reads the same kind of peak data and only changes data-waveform-style.

Bars data-waveform-style="bars"
Mirror data-waveform-style="mirror"
Line data-waveform-style="line"
Blocks data-waveform-style="blocks"
Dots data-waveform-style="dots"
Seekbar data-waveform-style="seekbar"

Inline catalog

A whole library, every row a waveform.

The stock-music layout — no bottom bar, everything inline. Each row is a headless WaveformPlayer (show-controls + show-info off) with the play control on the artwork. Click a row's waveform to seek; one track plays at a time.

Luminous
Aurora
Wings
The Wavelength
Icarus
Night Drive
House Piano
Keys Collective
Reach
Soft Focus
Red Woods
Lael
Nocturne
Halcyon

Features

The good stuff, switched on.

Chapters, BPM, speed control, artwork, compact layouts — each is one or two attributes. Here they are, running live.

Chapter markers
BPM detection
Playback speed
Album artwork
Preview layout
Waveform only

Gradient themes

Pour in a gradient.

The whole page is monochrome — except here. Each player passes an array of stops to data-waveform-color and a direction via data-waveform-gradient — a real canvas gradient, no images.

Sunset horizontal
Aurora horizontal
Ocean horizontal
Twilight diagonal
Spectrum horizontal
Mono glow vertical

It's just a div

No build step, no init call.

Every example on this page — styles, features, brand themes — is plain markup the runtime picks up on load. Here's the chapter-markers demo, verbatim.

examples.html
<div data-waveform-player
     data-url="/audio/little-paris.mp3"
     data-waveform="/waveforms/little-paris.json"
     data-title="Little Paris"
     data-waveform-style="mirror"
     data-markers='[{"time":0,"label":"Intro"},
                    {"time":3,"label":"Build"},
                    {"time":7,"label":"Drop"}]'></div>

Start shipping beautiful audio.

Free, open-source and ~10KB — add a div and go.

Read the docs

API reference, guides and recipes for all nine packages.

Browse docs

Open the builder

Configure a player visually and copy the HTML, JS or React.

Try it

Star on GitHub

MIT-licensed, open source, zero dependencies.

View source