Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature: preserving pitch when changing tempo (#149) #1157

Closed
wants to merge 84 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
e6b5e62
close the audiocontext in the destroy method of the webaudio backend …
mspae Nov 16, 2016
ad8401e
Updated CHANGES.md with information about PR #862 (audioContext is de…
mspae Nov 19, 2016
808030b
resume ac only if suspended and has the resume method
Nov 19, 2016
f1bea49
v 1.2.5
Nov 19, 2016
4ee2b29
correcly calc the of the waveform on region zoom; resolve #825
Nov 19, 2016
d11607d
v 1.2.6
Nov 19, 2016
e063140
fix typo (#868)
thijstriemstra Nov 21, 2016
39e5d71
fix typo for real (#871)
thijstriemstra Nov 25, 2016
bf370ed
doc update (#873)
thijstriemstra Dec 3, 2016
0699fc7
timeline: properly unsubscribe on destroy; resolve #848
Dec 3, 2016
210f93f
timeline: re-render on zoom; resolve #825
Dec 3, 2016
4cdc9fa
v 1.2.7
Dec 3, 2016
270f2b2
Only call media.load() if it exists (#875)
pedantic-git Dec 5, 2016
462e42a
v 1.2.8
Dec 9, 2016
7a9931d
Update README.md
katspaugh Dec 17, 2016
b0c0a8b
Apply correct normalize absmax calculation to drawBars() (#916)
chrisparton1991 Jan 11, 2017
f9426cb
small refactor, removed unnecessary re-calculation (#901)
jsphweid Jan 16, 2017
3d908c5
Improve rendering performance when pxPerSec is high (#909)
elijah-taylor Jan 16, 2017
5cf96c0
fix draw wrong position while playing backward seeking (#918)
candyan Jan 19, 2017
02d99ab
make MultiCanvas the default; bump version and update build
Jan 19, 2017
6d89b9c
update bower version
Jan 19, 2017
f185d97
add getPlaybackRate (#936)
entonbiba Jan 27, 2017
8666da3
add wavesurfer.getPlaybackRate() (#939)
entonbiba Jan 28, 2017
cf6e35b
fixes broken split channel rendering caused by out-of-date call to dr…
mspae Feb 1, 2017
385578b
fix getDuration() return value when using MediaElement (#941)
entonbiba Feb 2, 2017
6384d94
Updated render function for drawPeaks/getPeaks (#959)
dmongrel Feb 3, 2017
f7c20ac
avoid 'for in' array enumeration (#961)
dlandau Feb 4, 2017
8be87f7
check if browser supports AudioContext.close in webaudio.js (#962)
entonbiba Feb 4, 2017
e633171
Update wavesurfer.minimap.js (#955)
entonbiba Feb 7, 2017
f177220
create debounce method in util.js (#964)
entonbiba Feb 7, 2017
5f8f50f
update version and changelog
Feb 7, 2017
9d59913
avoid error when calling pause before play (#977)
piem Feb 9, 2017
401caac
getVolume method (#978)
entonbiba Feb 10, 2017
02b8a7d
added getMute method, (#980)
entonbiba Feb 10, 2017
1f0887e
add debounce to resize/orientationchange event for minimap plugin (#987)
entonbiba Feb 12, 2017
f46df77
create new labels feature for spectrogram plugin (#984)
entonbiba Feb 12, 2017
d69fa6e
add getFilters method (#982)
entonbiba Feb 12, 2017
97993ff
update to version 1.3.2 (#989)
entonbiba Feb 12, 2017
c0e250a
update dist
Feb 12, 2017
04a8448
Cleanup npm package (#995)
thijstriemstra Feb 16, 2017
51a92d2
Media session plugin (#996)
thijstriemstra Feb 16, 2017
b166f91
Fixed AudioContext.close() (#998)
meefik Feb 17, 2017
c1b8f8c
update changelog and version
Feb 23, 2017
33be11a
added contributing info (#1006)
mspae Feb 24, 2017
1e0a01c
Add support for forceDecode (#1009)
scottt2 Feb 25, 2017
fb205b7
update version
Feb 25, 2017
f586e8c
add getImage method for MultiCanvas (#1012)
entonbiba Mar 2, 2017
947b48a
create playlist plugin (#1018)
entonbiba Mar 4, 2017
1ab8439
update playlist plugin name (#1029)
entonbiba Mar 5, 2017
029af95
add bar height parameter (#1020)
entonbiba Mar 5, 2017
aa7f3c2
Readded global audio singleton, added closeAudioContext parameter (#1…
mspae Mar 6, 2017
17ecdcb
return array when using getImage() (#1027)
entonbiba Mar 6, 2017
a8a6a6f
add getPlaybackRate method for mediaelement.js (#1022)
entonbiba Mar 6, 2017
f6ce2c3
Check AC State (#1033)
Stoyvo Mar 8, 2017
5265418
update to version 1.3.5 (#1036)
entonbiba Mar 12, 2017
cc7b861
add split-wave-plot drawer for drawing points above wave (#1048)
jrweth Mar 19, 2017
6eaa4e7
update version
Mar 19, 2017
6b4ae81
Fixed overlap of time labels for large duration (#1049)
meefik Mar 19, 2017
9ce8d86
update version again
Mar 19, 2017
9942a23
added elan-wave-segment plugin (#1052)
jrweth Mar 27, 2017
6699076
Prevent waveform vertical scrolling in chrome (#1054)
dbunker Apr 4, 2017
a761eb3
set isMuted to false on load method (#1045)
entonbiba Apr 7, 2017
01c851a
Switch to bsd license (#1060)
blakemurdock Apr 8, 2017
9983d92
update changelog and version (1.4.0)
Apr 10, 2017
ffef86e
add method setCurrentTime (#1046)
entonbiba Apr 18, 2017
b65d9e9
plugins: fix spectrogram freq labels position (#1073)
entonbiba Apr 29, 2017
0066f2c
add getPeaks background compatibility (#1072)
entonbiba May 4, 2017
23b54a1
Round to Milliseconds (#1087)
X-Raym May 14, 2017
7d8c103
"for... in" should not be used with arrays. This causes bugs! (#1081)
agamemnus May 15, 2017
7778308
fix exportPCM to return json data (#1094)
entonbiba May 19, 2017
0552da8
requestAnimationFrame addition to utils. (#1107)
agamemnus May 31, 2017
bc57ec8
Wrap drawing in requestAnimationFrame. (#1105)
agamemnus Jun 1, 2017
dcd8b55
Listen to and relay play and pause events on media element (#1104)
nlicitra Jun 8, 2017
828a43e
Update drawer.js (same as #1115 except master instead of next) (#1116)
agamemnus Jun 8, 2017
7fd5a6d
Add pointerEvents: none to left/right sides. (#1112)
agamemnus Jun 11, 2017
29fd88d
requestAnimationFrame should be bound on window... (#1120)
agamemnus Jun 11, 2017
d9f3394
Wrap drawing in requestAnimationFrame (multicanvas). (#1106)
agamemnus Jun 11, 2017
ab65f11
Add pointerEvents: none to left/right sides: undo zIndex change. (#1137)
agamemnus Jun 16, 2017
1f320ab
Remove unused argument from Spectrogram#resample (#1135)
glebm Jun 16, 2017
1d92bfa
Remove variable redeclariotions from spectrogram (#1152)
glebm Jul 2, 2017
0bc87cb
Ensure canvas elements are cleared before redrawing (#1144)
tf Jul 2, 2017
a1ff8ea
Join ends of peaks (#1142)
agamemnus Jul 2, 2017
64bd48b
fixes safari browser missing buffer when using webaudio (#1096)
entonbiba Jul 2, 2017
2fd7bc8
feature: soundtouch.js filter to preserve pitch when changing tempo (…
Jul 15, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Hey, thank you for testing and contributing to wavesurfer.js!

## Please make sure you can check all of these points below before opening an issue:

(You don't have to post this section)

- [ ] I have checked [the FAQ](https://wavesurfer-js.org/faq/) and it doesn't solve my problem.
- [ ] I have checked [the documentation](https://wavesurfer-js.org/docs/) and it doesn't solve my problem
- [ ] I have searched for [already open issues](https://github.com/katspaugh/wavesurfer.js/issues) which desribe my problem.
- [ ] The issue I'm having is related to and caused by wavesurfer.js, not by other software (which maybe packages and uses wavesurfer incorrectly) – In that case you should open the issue on the respective project pages.

## Please make sure you provide the following information (if applicable):

### Wavesurfer.js version(s):


### Browser version(s):


### Code needed to reproduce the issue:

(Please reduce your code as much as possible and only post the minimum code needed to reproduce the issue. [A Code pen](http://codepen.io/) is an excellent way to share such code)


### Use behaviour needed to reproduce the issue:

21 changes: 21 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Hey, thank you for contributing to wavesurfer.js!

To review/merge open PRs it is very helpful to know as much as possible about the changes which are being introduced. Reviewing PRs is very time consuming, please be patient, it can take some time to do properly.

**Title:** Please make sure the name of your PR is as descriptive as possible (Describe the feature that is introduced or the bug that is being fixed).

## Please make sure you provide the information below:

### Short description of changes:


### Breaking in the external API:


### Breaking changes in the internal API:


### Todos/Notes:


### Related Issues and other PRs:
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ dist/plugin/*.js
/_SpecRunner.html
.DS_Store
.idea
.project
9 changes: 6 additions & 3 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
/dist/wavesurfer.min.js.map
/dist/wavesurfer.amd.js
/dist/wavesurfer.min.js
# exclude everything except dist, plugin and src
**/*
!dist/*
!dist/plugin/*.min.js
!plugin/**
!src/**
70 changes: 70 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,76 @@
wavesurfer.js changelog
=======================

1.4.0 (10.04.2017)
------------------
- A "breaking" change: a new license. We switched to BSD 3 (#1060).
– Reset the mute state on subsequent file loads (#1045)
– A fix for vertical scroll (#1054)
– A new plugin for linguists: `elan-wave-segment` (#1052)


1.3.7 (19.03.2017)
------------------
- A fix for the timeline plugin (#1049)

1.3.6 (19.03.2017)
------------------
- New renderer: `SplitWavePointPlot` (#1048)

1.3.5 (10.03.2017)
------------------
- Add a `getImage` method for MultiCanvas (#1012)
- Add Playlist plugin (#1018)
- Add Playlist plugin sample (#1019)
- Add a new parameter `barHeight` (#1020)
- Add a `playBackRate` method for MediaElement (#1022)

1.3.4 (25.02.2017)
------------------
- Add a new parameter `forceDecode` (#1009)

1.3.3 (23.02.2017)
------------------
- Add Media Session plugin (#996)
- Fix check for AudioContext.close (#998)

1.3.2 (12.02.2017)
------------------
- Add a `getVolume` method (#979)
- Add a `getMute` method (#980)
- Add a `getFilters` method (#982)
- New feature for spectrogram plugin to display frequency labels

1.3.1 (07.02.2017)
------------------
- Add a `getPlaybackRate` method (#936)
- Add a `debounce` utility (#964)
- Fixes for MultiCanvas & peaks cache, a fix the minimap plugin – thanks @entonbiba!

1.3.0 (19.01.2017)
------------------
- MultiCanvas is now the default renderer. Single Canvas will be soon removed.
- Fix backward seeking with Media Element (#918)
- Fix normalize + bar-style waveform (#916)
- New option `partialRender` for better performance with high zoom (#909)

1.2.8 (09.12.2016)
------------------
- PhantomJS support with the MediaElement backend (#875)

1.2.7 (03.12.2016)
------------------
- Timeline bugfixes: correctly unsubscribe on destroy and re-render on zoom (#825, #848)

1.2.6 (19.11.2016)
------------------
- Solve the disappearing canvas problem on zoom (#825)

1.2.5 (19.11.2016)
------------------
- WebAudio backend closes the AudioContext when it is destroyed, unless the AudioContext was passed in as a parameter (params.audioContext)
- The AudioContext is no longer cached in WebAudio.audioContext, use the getter-function WebAudio.getAudioContext. (#862)

1.2.4 (11.11.2016)
------------------
- Fix a problem of Web Audio not playing in Safari on initial load (#749)
Expand Down
4 changes: 3 additions & 1 deletion Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ module.exports = function (grunt) {
'src/mediaelement.js',
'src/drawer.js',
'src/drawer.*.js',
'src/peakcache.js',
'src/html-init.js'
],
dest: 'dist/wavesurfer.js'
Expand Down Expand Up @@ -102,7 +103,8 @@ module.exports = function (grunt) {
strict: false,
globals: {
WaveSurfer: true,
Promise: true
Promise: true,
MediaMetadata: true
}
},
ignore_warning: {
Expand Down
29 changes: 29 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
BSD 3-Clause License

Copyright (c) 2012-2017, katspaugh and contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ Yes, if you use the `backend: 'MediaElement'` option. See here: https://wavesurf
### Can drawing be done as file loads?
No. Web Audio needs the whole file to decode it in the browser. You can however load pre-decoded waveform data to draw the waveform immediately. See here: https://wavesurfer-js.org/example/audio-element/ (the "Pre-recoded Peaks" section).

### Is wavesurfer.js ES6-compatible?
ES6 refactoring is going on in the `next` branch. In the meanwhile, you can import wavesurfer.js as an ES6 module via WebPack as described [here](https://github.com/katspaugh/wavesurfer.js/issues/767#issuecomment-267768714).

## API in examples

Choose a container:
Expand Down Expand Up @@ -102,7 +105,7 @@ grunt coverage
The HTML report can be found in `coverage/html/index.html`.

## Editing documentation
The homepage and the documentation are in the [`gh-pages` branch](https://github.com/katspaugh/wavesurfer.js/tree/gh-pages). Contributions to the documentation are especially welcome.
The homepage and documentation files are maintained in the [`gh-pages` branch](https://github.com/katspaugh/wavesurfer.js/tree/gh-pages). Contributions to the documentation are especially welcome.

## Credits

Expand All @@ -112,7 +115,7 @@ thanks to

## License

![cc-by](https://i.creativecommons.org/l/by/3.0/88x31.png)
[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)

This work is licensed under a
[Creative Commons Attribution 3.0 Unported License](https://creativecommons.org/licenses/by/3.0/deed.en_US).
[BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause).
4 changes: 2 additions & 2 deletions bower.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "wavesurfer.js",
"version": "1.2.4",
"version": "1.4.0",
"homepage": "http://wavesurfer-js.org",
"authors": [
"katspaugh <[email protected]>"
Expand All @@ -10,5 +10,5 @@
"keywords": [
"waveform", "audio", "music", "player"
],
"license": "CC BY 3.0"
"license": "BSD-3-Clause"
}
4 changes: 2 additions & 2 deletions dist/plugin/wavesurfer.cursor.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions dist/plugin/wavesurfer.elan-wave-segment.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading