-
(#353) Fixed setWaveformColor() to allow switching between fixed and gradient colors (@chrisn)
-
Changed
Peaks.init()
to return undefined. Instead of using thePeaks.init()
return value, you should now pass a callback parameter (@chrisn) -
Updated use of Konva.FastLayer, removes deprecation warnings (@chrisn)
-
Refactored SegmentsLayer and SegmentShape (@chrisn)
-
Removed undocumented
deprecationLogger
option (@chrisn)
-
(#380) Fixed cue events following renaming the player.play event in 0.24.0 (@chrisn)
-
Minor code optimization in PlayheadLayer (@chrisn)
-
Removed colors.css dependency (@chrisn)
-
Simplified template and container option checks in Peaks.init() (@chrisn)
-
Updated demo pages to use the containers option in Peaks.init() (@chrisn)
-
(#353) Added color gradient support for waveforms (@Christilut)
-
(#359) Fixed setSource() so that the mediaUrl option is only required if using a media element (@Christilut)
-
(#360) Fixed waveform initialisation where the media element has preload="none" (@chrisn)
-
(#363) Changed playSegment() to use requestAnimationFrame() (@ffxsam)
-
(#363) The player.play event has been renamed to player.playing, for consistency with the corresponding HTMLMediaElement event (@chrisn)
-
(#367) Added player.ended event. This is emitted when the media element emits an "ended" event, and when playSegment() reaches the end of the segment (@ffxsam)
-
(#369) Fixed documentation (@OmarShehata)
-
Various fixes to the demo pages (@chrisn)
- Version bump to update npm release (@chrisn)
-
(#325) Added fontFamily, fontStyle, fontSize config options (@chrisn)
-
(#321) Fixed waveform rendering so that waveforms are no longer inverted (@chrisn)
-
Removed unnecessary waveform re-render after dragging to scroll the zoomable waveform view (@chrisn)
-
(#329) Added looped playback option to
segments.playSegment()
(@chrisn) -
(#336) Allow users to set custom point and segment attributes (@chrisn)
-
(#332) Adjust playhead time label position when the playhead is at the right edge of the waveform display (@Karoid)
-
(#328) Fixed package.json to work on Windows (@chrisn)
-
(#314) Added
player
option to allow use of external media player libraries. See customizing.md for details (@tscz) -
(#104) Fixed initialization error for short media files, where the overview waveform is shorter than the container width (@chrisn)
-
(#31) Added player events to the public API, and renamed events for consistency (e.g.,
player_seek
toplayer.seeked
). See README.md for the new event names (@chrisn) -
Replaced EventEmitter2 with EventEmitter3, to reduce file size (@chrisn)
-
(#319) Added
timeLabelPrecision
option andview.setTimeLabelPrecision()
method (@Dananji) -
(#308) Added
waveformData
option, which allows Peaks.js to use pre-computed waveform data, instead of fetching the data from a web server or computing it using the Web Audio API (@is343) -
Removed deprecated code, including:
-
segments.ready
event (usepeaks.ready
or pass a callback toPeaks.init()
instead) -
points.add()
no longer accepts atimestamp
option (usetime
instead) -
points.add()
andsegments.add()
now only accept an object or an array of objects with point or segment data -
time.setCurrentTime()
andtime.getCurrentTime()
methods (useplayer.seek()
andplayer.getCurrentTime()
instead) (@chrisn)
-
-
Fixed error handling to use
Peaks.init()
callback consistently instead of throwing errors in some cases (@chrisn) -
Enabled code coverage test reports (@chrisn)
-
Updated dependencies (@chrisn)
-
(#309) Fixed rendering of non-editable segment marker handles (@chrisn)
-
Reduced size of npm and Bower installs by removing unnecessary files (@chrisn)
-
Refactored to simplify code structure. All source files are now placed in a single 'src' directory, and several files have been renamed for consistency (@chrisn)
-
(#306) Updated TypeScript declarations (@tscz)
-
Documented
zoomview.setStartTime()
(@chrisn)
-
(#300) Redesigned the marker customization API. Refer to customizing.md for detailed documentation on how to customize the appearance of point and segment marker handles (@chrisn)
-
Added a
view.fitToContainer()
method that resizes the waveform and point and segment marker handles to fit the available space (@chrisn) -
Added zoomview.setStartTime() method (@chrisn)
-
The
inMarkerColor
andoutMarkerColor
configuration options have been renamed tosegmentStartMarkerColor
andsegmentEndMarkerColor
(@chrisn) -
(#305) Added a
zoomview.setZoom()
method that gives applications greater flexibility in setting the zoom level. The zoom level can be set to (a) a number of samples per pixel, as per the existingpeaks.zoom.setZoom()
API, (b) a number of seconds fit to the available width, or (c) the entire audio duration fit to the available width (@chrisn)
-
(#302) Fixed segment handle dragging so that dragging the start marker does not change the segment end time, and vice versa (@chrisn)
-
Added
view.enableMarkerEditing()
method (@chrisn) -
Updated Typescript definitions (@is343, @chrisn)
-
(#262) Increased hit region for segment mouseenter and mouseleave events, no longer requires placing the mouse directly over the waveform image (@chrisn)
-
(#263, #283) Added
destroyZoomview()
anddestroyOverview()
methods (@chrisn)
-
(#293) Added
overview.dblclick
andzoomview.dblclick
events (@chrisn) -
Fixed Typescript definitions (@tscz, @chrisn)
-
(#290) Fixed
setAmplitudeScale()
to update all waveform segments (@chrisn) -
Disabled warnings from Konva.js
-
Fixed demo pages for Webkit
- (#289) Fixed
overlapHighlightOffset
behaviour when value too large (@jodonnell)
- (#288) Added
overviewHighlightOffset
option, and renamed theoverviewHighlightRectangleColor
option tooverviewHighlightColor
(@jodonnell)
-
(#285) The axis labels are now correctly rendered on top of the waveform (@chrisn)
-
(#286) Fixed point/segment marker creation function options, and updated documentation (@chrisn)
-
(#284) Fixed
peaks.destroy()
(@chrisn) -
Updated waveform-data.js to v3.1.0 (@chrisn)
- (#287) Added
segment.dragstart
andsegment.dragend
events. Thesegment.dragged
event now receives a boolean parameter that indicates whether the start or end marker is being dragged (@Spidy88)
-
(#281) Fixed TypeScript definitions (@tscz)
-
Updated demo pages to use updated
Peaks.init()
API options (@chrisn)
-
(#228, #240) Added ability to intialise a Peaks instance given an AudioBuffer
-
The API for creating waveforms using the Web Audio API has changed. Instead of passing an
audioContext
option toPeaks.init()
orpeaksInstance.setSource()
, you should now pass awebAudio
object, for example:const options = { // ... etc webAudio: { audioContext: new AudioContext(), multiChannel: true } } Peaks.init(options, function(err, peaksInstance) { ... });
-
The (undocumented)
waveformBuilderOptions
option has also been removed. If you were usingamplitude_scale
, please useview.setAmplitudeScale()
instead. Thescale
option is now determined by the lowestzoomLevels
setting -
Added
view.enableAutoScroll()
method
- (#194) Added multi-channel waveform support (@chrisn)
- Updated waveform-data.js to v3.0.0 (@chrisn)
-
(#243, #268) Added
emitCueEvents
option that causes Peaks.js to emitpoints.enter
,segments.enter
, andsegments.exit
events during playback or on seeking (@gmarinov, @chrisn) -
(#92) Added
setSource()
method to change the media element's source URL and update the waveform (@chrisn)
-
(#211) Added
view.setAmplitudeScale()
method, and documented new API methods for creating and accessing the waveform views (@chrisn) -
(#270) Fixed segment rendering after updating
startTime
orendTime
(@chrisn) -
(#267) Added option to run specific test files by glob pattern (@gmarinov)
-
(#247) Added
update()
methods to allow changes to segment and point properties (@zachsa) -
(#250) Added
segments.mouseenter
,segments.mouseleave
, andsegments.click
events (@zachsa) -
(#258) Added new
containers
option, to allow creation of zoomable and non-zoomable ('overview') waveform views. Added example pages, in the 'demo' folder (@chrisn) -
Updated to Konva 3.3.3 (@chrisn)
-
(#249, #251, #252) Enabled touch events for waveform container and point and segment markers (@rfrei)
-
Updated to Konva 3.1.6 and waveform-data.js 2.1.2, and updated development dependencies (@chrisn)
-
Updated TypeScript declarations (@evanlouie)
- Added TypeScript declarations (@evanlouie)
- Version bump after updating npm access token (@chrisn)
-
Refactored waveform rendering code, added WaveformShape class (@chrisn)
-
Removed background layer, to reduce the number of Konva layers used (@chrisn)
-
Avoid building waveform data multiple times when using the Web Audio API (@cky917)
-
Fixed use of Web Audio API in Safari (@ibobobo)
-
Fixed point drag event handling (@anthonytex, @chrisn)
-
Allow Peaks objects to be created using the new operator (@chrisn)
-
The
points.add()
andsegments.add()
methods now operate atomically. This change ensures that the input point/segment objects are validated before storing, so that if an exception is thrown, we leave the state of the points/segments array as it was before the function was called (@chrisn) -
Added
points.mouseenter
andpoints.mouseleave
events. Also addedpoints.dblclick
, which replaces the (previously undocumented)pointDblClickHandler
config option (@markjongkind, @chrisn) -
Added
points.dragstart
andpoints.dragend
events, and renamedpoints.dragged
topoints.dragmove
. The (also undocumented)pointDragEndHandler
config option is deprecated (@chrisn)
-
Ensure resources used by
Player
object are released on callingpeaks.destroy()
(@chrisn) -
points.remove()
andsegments.remove()
no longer throw an exception if multiple matching markers are found. The removed markers are returned in an array (@chrisn) -
Updated to eventemitter2 v5.0.1, also updated development dependencies (@chrisn)
-
(#104) Prevent "zoom level too low" exception when using the Web Audio API to compute the waveform data (@chrisn)
-
(#213) Added
withCredentials
option to allow users to send credentials when requesting waveform data files using XHR (@bennypowers) -
(#212) Fixed
points.removeAll()
andsegments.removeAll()
(@chrisn) -
Fixed a bug where the time axis would show the wrong times next to the axis markers (@chrisn)
-
Peaks.js is now available via cdnjs. Added a link to the ReadMe (@extend1994)
- (#112) Fixed a race condition where an audio element that contains
one or more source elements is added to a page, and
Peaks.init()
is called before the audio element has selected which source to use. Also improved error reporting, to avoid a misleading "Unable to determine a compatible dataUri format for this browser" error (@chrisn)
- (#207) Prevent jump in playhead motion after starting playback (@chrisn, @jdelStrother)
- Version bump to refresh npm and browserify cached releases (@chrisn)
-
(#201) Added
showPlayheadTime
option to control display of the current time position next to the playhead marker (@chrisn) -
(#202) Keep playhead layer in sync with timeupdate events (@jdelStrother)
-
(#199) The playhead position is now correctly updated in the zoomable view after calling
player.seek()
(@chrisn) -
Added parameter validation to
player.seek()
(@chrisn) -
Show the time when dragging point markers (@chrisn)
-
Use a fixed set of default colors instead of random colors for segments (@chrisn)
-
Simplified
createSegmentMarker
,createSegmentLabel
, andcreatePointMarker
functions (@chrisn) -
Refactored
WaveformPoints
andWaveformSegments
classes (@chrisn) -
Refactored
PointsLayer
andSegmentsLayer
_removeInvisiblePoints
methods (@chrisn)
- Fixed bug in IE11 which caused adding segment objects to fail (@chrisn)
-
(#184, #116) Fixed waveform zoom and scrolling behaviour. Note that the animated zoom feature no longer works, and so static zoom is now always used, regardless of the
zoomAdapter
option (@chrisn) -
Refactored
WaveformSegments
andWaveformPoints
to separate the UI code into newSegmentsLayer
andPointsLayer
classes (@chrisn) -
Points and segments are now represented by
Point
andSegment
objects, rather than plain JavaScript objects (@chrisn) -
(#117) Improved rendering speed of points and segments (@chrisn)
-
Points and segments with duplicate ids are no longer allowed (@chrisn)
-
The
segments.ready
event is deprecated, usepeaks.ready
instead (@chrisn) -
Added
add
,remove
,remove_all
, anddragged
events for points and segments (@chrisn) -
The demo page now allows points and segments to be removed (@chrisn)
-
Added
ZoomController
andTimeController
classes to simplify main.js (@chrisn) -
Added
PlayheadLayer
class and refactoredWaveformOverview
andWaveformZoomView
so that the playhead update code is reused between both (@chrisn) -
Added
peaks.points.getPoint()
method (@chrisn) -
Changed the keyboard interface so that the left/right arrow keys scroll the waveform by 1 second, and shift+left/right by one screen width (@chrisn)
-
Improved error messages (@chrisn)
-
Removed Node.js v4 and added v8 in Travis CI builds. Please use v6.0 or later to build Peaks.js (@chrisn)
-
Many other refactorings and code improvements (@chrisn)
-
Fixed deprecation logging from time API functions (@chrisn)
-
Added parameter validation to
player.playSegment()
(@chrisn)
-
(#192) Added
player.playSegment()
method (@craigharvi3) -
Deprecated the time API; use the player API instead (@chrisn)
-
Display optional point label text (@chrisn)
-
Added documentation for the points API (@chrisn)
-
Build ChangeLog manually (@chrisn)
-
Updated to waveform-data.js v2.0.1 (@chrisn)
-
(#182) Modified build to output a single UMD module; supporting installation with package managers or the script-tag (@craigjohnwright)
-
Another fix to mouse dragging behaviour (@chrisn)
-
(#187) Fixed segment handle rendering (@chrisn)
-
(#167) Added audioContext config option (@chrisn, @oncletom, @dodds-cc)
-
(#165) Fixed mouse dragging behaviour (@chrisn)
-
(#161) More reliable clicking behaviour, don't turn seek click off on vertical mouse movement (@Develliot)
-
(#159) Added JSDoc comments (@chrisn)
-
(#157) Register mouse up/move events to the window rather than the waveform stages (@jdelStrother)
-
(#156) Refactored player and keyboard handler objects (@chrisn)
-
(#155) Refactored
WaveformPoints
andWaveformSegments
(@chrisn)
- (#150) Add Peaks.destroy method (@jdelStrother)
-
(#151) Report XHR errors (@jdelStrother)
-
(#152) Use the npm version of waveform-data.js (@oncletom)
-
Fixed bug in
defaultInMarker()
which caused the wrong colour to be used for left-hand segment markers (@chrisn) -
Renamed keyboard events (@chrisn)
-
Updated to EventEmitter v1.0.x (@chrisn)
-
Updated to Konva v1.0.x (@chrisn)
-
Fixed adding points from Peaks.init() (@chrisn)
-
(#144) Use
Konva.FastLayer
for drawing waveforms (@jdelStrother) -
(#143) Improve
addSegment()
method signature (@jdelStrother) -
(#142) Serve media from Karma during tests (@jdelStrother)
-
(#141) Add/remove points and segments by ID (@jdelStrother)
-
(#140) Expose browserified version as package.json "main" property (@oncletom)
-
(#139) Fixed keyboard right-shift bug (@chrisn)
-
Numerous other refactorings (@chrisn)
-
(#127) Don't add waveform layer to the overview stage twice and ensure the UI layer is on top (@johvet)
-
(#125) Node 0.12 and iojs compatibility (@oncletom)
-
(#120) Explicit segment draw on drag resize (@oncletom)
-
(#121) Make more colors configurable (@ziggythehamster)
- (#123) Allow alternate zoom adapters, add a static (non-animated) zoom adapter, add more safety checks (@johvet, @ziggythehamster)
-
(#122) Fix typo, seeking instead of seaking (@johvet)
-
(#113) Make the axis label and gridline colors configurable (@ziggythehamster)
-
(#111) Initial error logging function for async errors (@oncletom)
-
(#108) fix for bug #105 (@un-chein-andalou)
- (#101) deamdify and browserify back to optionalDependencies (@oncletom)
-
Replaced example image in README.md
-
Fixed time-out errors in Travis CI builds
- (#86) Fix Kinetic bower path in README (@oncletom)
-
(#72) Upgrade to Kinetic 5.10 (@oncletom)
-
(#84) Switch from SauceLabs to BrowserStack (@oncletom)
-
(#81) beforeEach -> before, afterEach -> after (@oncletom)
-
(#78) Added
peaks.points.removeAll()
method (@oncletom)
-
(#79) EventEmitter2 prototype workaround (@oncletom)
-
(#75) Fixed Travis + IE9 tests (@oncletom)
- (#74) 0.3 Build System Fix (@oncletom)
- (#71) Replaced eventEmitter with eventemitter2 (@oncletom)
- (#62) Added waveformZoomReady event (after segments and points initialized) (@chainlink)
- Automatically deamdify files with browserify
-
(#66) Simplified build system (@oncletom)
-
(#63) Fixed bug when using grunt build for vanilla JS (Kinetic Not Found) (@chainlink)
-
(#52) Custom height for each container (@bbcrd)
-
Refactored waveform rendering code (@oncletom)
-
View height can be set through CSS (@oncletom)
-
Added smooth zoom animation (@mgrewal, @oncletom)
-
Use waveform-data.js v1.2.0 (@chainlink)
-
Added Points interface (@chainlink)
-
(#51) Added functions to delete segments (@oncletom)
-
Aliased
segments.addSegment()
assegments.add()
(@oncletom)
-
(#50) Peaks build system (@oncletom)
-
Added Web Audio builder from waveform-data.js
-
(#43) Fixed "SYNTAX_ERR: DOM Exception 12" error in Safari (@oncletom)
-
(#28) Segment improvement (@oncletom)
-
(#36) Ability to work with a video element as well (@oncletom)
-
(#39) Fixing the
FAILED Peaks.segments "before each" hook
breaking CI (@oncletom) -
(#38) Removing the requirejs builder (@oncletom)
-
(#37) Added
segments.ready
event (@oncletom) -
(#35) Simplifying the AMD tree (@oncletom)
-
(#32) Resize event is assigned to window and not the Peaks instance (@oncletom)
-
(#33) Enforcing strict mode (@oncletom)
-
(#26) Removed sass dependency (@oncletom)
-
(#20) Removed JST/Underscore dependencies (@oncletom)
-
(#19) Added tests for each element of the public API (@oncletom)
-
(#15) Partially removed jQuery dependency (@oncletom)
-
(#14) Fixed {zoom,over}view mouseup is not releasing
document.addEventListener("mouseup")
(@oncletom) -
(#11) Handling multiple Peaks instances (@oncletom)
-
(#10) Added
peaks.time.setCurrentTime()
(@oncletom) -
Rewrote the README and added screenshot (@oncletom)
-
Fixed playhead positioning after click/drag etc (@oncletom)
-
Removed dependency on underscore (@oncletom)
-
Added parameter validation (@oncletom)
-
Added test cases for segments API and zoom levels (@oncletom)
-
Removed bootstrap module (@oncletom)
- (#30) Clicking in the zoomview should just change the playhead position (@oncletom)
-
(#25) Dragging zoomview bug (low priority) (@oncletom)
-
(#24) Out of Range bug (@oncletom)
- (#22) Seeking not working (@oncletom)
-
(#17) Moving the playhead in views now updates the audio element currentTime (@oncletom)
-
(#16) Fixed IE9 bug with createSegment (@oncletom)
-
(#3) Added TravisCI + Saucelabs (@oncletom)
-
(#13) Migrated to Mocha+Chai for tests (@oncletom)
-
(#12)
element.currentTime
side-effect (@oncletom) -
(#5) Segments performance boost (@oncletom)
- (#1) bower install failing for me (@oncletom)