@waveform-playlist/browser provides React components and hooks for building waveform-based audio applications.
Install the core packages
Install the main package along with its required peer dependencies:If you already have React installed in your project, you can omit it from the installation command.
Peer dependencies explained
Waveform Playlist requires several peer dependencies that you must install separately:Required dependencies
tone (^15.0.0)
tone (^15.0.0)
Tone.js is a Web Audio framework that powers the audio playback engine. Waveform Playlist uses Tone.js for:
- Audio transport and scheduling
- Audio effects (reverb, delay, filters, etc.)
- Master volume and panning
- Offline rendering for WAV export
@dnd-kit/core (^6.0.0) and @dnd-kit/modifiers (^9.0.0)
@dnd-kit/core (^6.0.0) and @dnd-kit/modifiers (^9.0.0)
@dnd-kit is a modern drag-and-drop library for React. Waveform Playlist uses it for:
- Drag-to-move clips between tracks
- Drag-to-trim clip boundaries
- Drag-to-create and edit annotations
react (^18.2.0 || ^19.0.0)
react (^18.2.0 || ^19.0.0)
Waveform Playlist is built with React and requires React 18.2.0 or higher. React 19 is also supported.
styled-components (^6.0.0)
styled-components (^6.0.0)
styled-components is used for component styling and theming. All UI components support customization through the theme system.
Optional packages
Depending on your use case, you may want to install these optional packages:Annotations
For time-synced text annotations with keyboard navigation:Recording
For AudioWorklet-based audio recording with live waveform preview:Package versions
All@waveform-playlist/* packages use synchronized versioning. When installing, make sure all packages are on the same version (e.g., all 8.1.0).
package.json
TypeScript setup
Waveform Playlist is written in TypeScript and includes full type definitions. No additional@types packages are needed.
If you’re using TypeScript, ensure your tsconfig.json includes:
tsconfig.json
Verify installation
To verify your installation is complete, try importing the main components:App.tsx
Next steps
Quickstart
Build your first waveform player with a complete working example