New — WaveformSounds: search, filter and audition a whole sample pack from one list. Try it →

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"

Cover art on the button

The artwork is the play button.

One attribute — data-artwork-position="button" — turns the cover into the transport. It brings its own cover-sized defaults (no ring, square-ish tile), and a scrim keeps the glyph legible over any artwork. New in 1.22.

Sound library

A whole library, one list.

The right tool for a catalogue is WaveformSounds, not a stack of players. Every row draws a mini waveform from 64 bars of peaks and one shared player plays whichever you pick, so a pack of hundreds costs the same as one. Search it, filter by type, key or tempo, then run down it with ↓. Each preview here has a download button.

33 sounds

  • Paris Bass Loop 01LoopBass0:06
  • Paris Bass Loop 02LoopBass0:06
  • Paris Bass Note A1Bass0.4s
  • Paris Bass Note A2Bass0:02
  • Drum LoopLoopDrum loops1280:03
  • Paris Drums 01LoopDrum loops0:06
  • Paris Drums 02LoopDrum loops0:06
  • Electric PianoKeys1260:07
  • House PianoKeys126C#m0:07
  • Red WoodsLeadsG#m0:13

The full sound browser demo

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 ~12KB — 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