A web-based audio player with waveform visualisations.
Provides a similar audio interface to wavesurfer.js or SoundCloud.
Playback:
Customisation:
- Python 3.11+
- FFmpeg on PATH
Version 1 | Version 2 |
---|---|
Waveform is a pre-rendered image. | Waveform is rendered using HTML5 canvas. |
Waveform size is fixed. | Waveform size is not fixed. |
Output is a site containing the players. (Static site generator) | Output is a component that can be added to any site. |
Basic playback animations. | Better playback animations with colour. |
Playlist is just multiple players in a list. | Playlist uses one player and switches tracks. |
No AJAX, can be opened locally. | AJAX, web server needed. |
- Put inputs as
.mp3
in theinputs
folder. - Run
gen.py
. - View output in the
output
folder.
- Put inputs as
.mp3
in theinputs
folder. - Run
gen.py
. - Host the files on a web server.
- Navigate to
index.html
in a web browser.
- Seeking does not work for large files on Chrome, but does work on Firefox.
- This is due to differences in how Chrome and Firefox handle streaming media.
- To fix this, you must set
Accept-Ranges: bytes
in the HTTP response header for the audio files. - See this.