- Add
autoCenter
andautoCenterRate
options (#1699) - Make sure
isReady
is true before firing theready
event (#1749) - Improve fetch error messages (#1748)
- Use
MediaElement
backend for browsers that don't support WebAudio (#1739) - Regions plugin:
- Use
isResizing
andisDragging
to filter events in region-updated listener (#1716) - Fix
playLoop
andloop
option for clips with duration <15s (#1626)
- Use
- Spectrogram plugin: fix variable name in click handler (#1742)
- Minimap plugin: fix left/width calculations for regions on retina/4k screens (#1743)
- New example: video-annotation (#1726)
- Add
wavesurfer.getActivePlugins()
: return map of plugins that are currently initialised - Replace usage of
util.ajax
withutil.fetchFile
(#1365) - Update progress when seeking with HTML media controls (#1535)
- Make sure mute/volume is updated when using
MediaElement
backend (#1615) - Refactor
MultiCanvas
and addCanvasEntry
class (#1617) - Fix
wavesurfer.isReady
: make it a public boolean, the brokenisReady
method is removed (#1597) - Add support for
Blob
output type inwavesurfer.exportImage
(#1610) - Fix fallback to Audio Element in browsers that don't support Web Audio (#1614)
util.getId()
now accepts aprefix
argument (#1619)- Improve documentation for
xhr
option (#1656) - Fix: the
progressWave
should not be rendered when specifying the same value for theprogressColor
andwaveColor
options (#1620) - Cursor plugin:
- Add
formatTimeCallback
option - Add
followCursorY
option (#1605) - Remove deprecated
enableCursor
method (#1646) - Hide the cursor elements before first mouseover if
hideOnBlur
is set (#1663)
- Add
- Spectrogram plugin:
- Fix
ready
listener when loading multiple audio files (#1572) - Allow user to specify a colorMap (#1436)
- Fix
- Regions plugin:
- Fix
ready
listener when loading multiple audio files (#1602) - Add
snapToGridInterval
andsnapToGridOffset
options (#1632) - Allow drawing regions over existing regions, if the underlying ones are not draggable or resizable (#1633)
- Calculate the duration at event time to allow predefined regions to be dragged and resized (#1673)
- Remove deprecated
initRegions
method (#1646)
- Fix
- Timeline plugin: fix
ready
listener when loading multiple audio files - Minimap plugin: remove deprecated
initMinimap
method (#1646)
Check UPGRADE.md
for backward incompatible changes since v2.x.
- Add
backgroundColor
option (#1118) - Spectrogram plugin: fix click handler (#1585)
- Cursor plugin: fix
displayTime
(#1589)
- Add
rtl
option (#1296) - Fix peaks rendering issue on zooming and scrolling multicanvas (#1570)
- Add
duration
option to specify an explicit audio length (#1441) - Spectrogram plugin: fix event listener removal (#1571)
- Regions plugin: display regions before file load using
duration
option (#1441) - Build: switch to terser-webpack-plugin for minifying
- Fix removeOnAudioProcess for Safari (#1215, #1367, #1398)
- Fix computing peaks when buffer is not set (#1530)
- Cursor plugin: fix displayed time (#1543)
- Cursor plugin: document new params (#1516)
- Add syntax highlighting in examples (#1522)
- Fix order of arguments for PluginClass.constructor (#1472)
- Microphone plugin: Safari support (#1377)
- Minimap plugin: fix styling issues and add support for zooming (#1464)
- Timeline plugin: add duration parameter handling (#1491)
- Cursor plugin: add showTime option (#1143)
- Fix: progress bar did not reach 100% when audio file is small (#1502)
- Add wavesurfer.js logo, created by @entonbiba (#1409)
- Library version number is now available as
WaveSurfer.VERSION
(#1430) - Fix
setSinkId
that used deprecated API (#1428) - Set
isReady
attribute to false when emptying wavesufer (#1396, #1403) - Microphone plugin: make it work in MS Edge browser (#627)
- Timeline plugin: display more tick marks as user zooms in closely (#1455)
- Cursor plugin: fix
destroy
(#1435)
- Build library using webpack 4 (#1376)
- Add
audioScriptProcessor
option to use custom script processor node (#1389) - Added
mute
andvolume
events (#1345)
- Fix
util.ajax
on iteratingrequestHeaders
(#1329) - Add version information to distributed files (#1330)
- Regions plugin: prevent click when creating / updating region (#1295)
- Add
wavesurfer.isReady
method (#1333)
- Added
xhr
option to configure util.ajax for authorization (#1310, #1038, #1100) - Fix
setCurrentTime
method (#1292) - Fix
getScrollX
method: Check bounds whenscrollParent: true
(#1312) - Minimap plugin: fix initial load, canvas click did not work (#1265)
- Regions plugin: fix dragging a region utside of scrollbar (#430)
- Added support for selecting different audio output devices using
setSinkId
(#1293) - Replace deprecated playbackRate.value setter (#1302)
- Play method now properly returns a Promise (#1229)
- Added
barGap
parameter to set the space between bars (#1058) - Replace deprecated gain.value setter (#1277)
- MediaElement backend: Update progress on pause events (#1267)
- Restore missing MediaSession plugin (#1286)
- Core library and the plugins were refactored to be modular so it can be used with a module bundler
- Code updated to ES6/ES7 syntax and is transpiled with babel and webpack
- New plugin API
MultiCanvas
renderer is now the default- Added getters and setters for height and color options (#1145)
- Introduce option to prevent removing media element on destroy (#1163)
- Added duration parameter for the load function (#1239)
- New soundtouch.js filter to preserve pitch when changing tempo (#149)
- Add
getPlaybackRate
method (#1022) - Switched to BSD license (#1060)
- Added
setCurrentTime
method - Added
util.debounce
(#993)
- Fix a problem of Web Audio not playing in Safari on initial load (#749)
- Add a 'waveform-ready' event, triggered when waveform is drawn with MediaElement backend (#736)
- Add a 'preload' parameter to load function to choose the preload HTML5 audio attribute value if MediaElement backend is choosen (#854)
- Determistic way to mute and unmute a track (#841)
- Replace jasmine with karma / jasmine test suite (#849)
- Regions plugin: fix a bug when clicking on scroll-bar in Firefox (#851)
- Added changelog (#824)
- Correct AMD module name for plugins (#831)
- Fix to remove small gaps between regions (#834)