32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
# WaveSurferSB
|
|
|
|
A SpiderBasic wrapper for [wavesurfer.js v7](https://wavesurfer.xyz) — audio waveform visualization and playback.
|
|
|
|
This is rough and partially untested. It covers the core API (create, load, play, pause, seek, zoom, events…) and three plugins: **Timeline**, **Minimap**, and **Spectrogram**. Other plugins can be loaded via the generic `RegisterPlugin()` procedure.
|
|
|
|
## Quick Start
|
|
|
|
```spiderbasic
|
|
IncludeFile "WaveSurferSB.sbi"
|
|
|
|
Procedure OnLoaded(Success)
|
|
If Success
|
|
Global ws = WaveSurferSB::Create("#waveform", WaveSurferSB::#DragToSeek)
|
|
WaveSurferSB::TimelineCreate(ws)
|
|
WaveSurferSB::Load(ws, "audio.mp3")
|
|
EndIf
|
|
EndProcedure
|
|
|
|
WaveSurferSB::Download(@OnLoaded(), "timeline")
|
|
```
|
|
|
|
## Files
|
|
|
|
- `WaveSurferSB.sbi` — the module
|
|
- `WaveSurferSB_Plugins_Example.sb` — working example with all three plugins
|
|
|
|
## Notes
|
|
|
|
- Handles the AMD/UMD conflict with SpiderBasic's Dojo runtime automatically
|
|
- Loads from unpkg CDN by default; pass `UseLocalFiles = #True` to load from `LocalFiles/JS/`
|
|
- Each plugin procedure has a simple form and an `_ex` form accepting raw JSON options |