wavesurfer.js 6.1.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGES.md +12 -0
  2. package/README.md +2 -2
  3. package/dist/plugin/wavesurfer.cursor.js +4 -4
  4. package/dist/plugin/wavesurfer.cursor.js.map +1 -1
  5. package/dist/plugin/wavesurfer.cursor.min.js +2 -2
  6. package/dist/plugin/wavesurfer.cursor.min.js.map +1 -1
  7. package/dist/plugin/wavesurfer.elan.js +2 -2
  8. package/dist/plugin/wavesurfer.elan.js.map +1 -1
  9. package/dist/plugin/wavesurfer.elan.min.js +2 -2
  10. package/dist/plugin/wavesurfer.elan.min.js.map +1 -1
  11. package/dist/plugin/wavesurfer.markers.js +2 -2
  12. package/dist/plugin/wavesurfer.markers.js.map +1 -1
  13. package/dist/plugin/wavesurfer.markers.min.js +2 -2
  14. package/dist/plugin/wavesurfer.markers.min.js.map +1 -1
  15. package/dist/plugin/wavesurfer.mediasession.js +2 -2
  16. package/dist/plugin/wavesurfer.mediasession.js.map +1 -1
  17. package/dist/plugin/wavesurfer.mediasession.min.js +2 -2
  18. package/dist/plugin/wavesurfer.mediasession.min.js.map +1 -1
  19. package/dist/plugin/wavesurfer.microphone.js +2 -2
  20. package/dist/plugin/wavesurfer.microphone.js.map +1 -1
  21. package/dist/plugin/wavesurfer.microphone.min.js +2 -2
  22. package/dist/plugin/wavesurfer.microphone.min.js.map +1 -1
  23. package/dist/plugin/wavesurfer.minimap.js +2 -2
  24. package/dist/plugin/wavesurfer.minimap.js.map +1 -1
  25. package/dist/plugin/wavesurfer.minimap.min.js +2 -2
  26. package/dist/plugin/wavesurfer.minimap.min.js.map +1 -1
  27. package/dist/plugin/wavesurfer.playhead.js +2 -2
  28. package/dist/plugin/wavesurfer.playhead.js.map +1 -1
  29. package/dist/plugin/wavesurfer.playhead.min.js +2 -2
  30. package/dist/plugin/wavesurfer.playhead.min.js.map +1 -1
  31. package/dist/plugin/wavesurfer.regions.js +2 -2
  32. package/dist/plugin/wavesurfer.regions.js.map +1 -1
  33. package/dist/plugin/wavesurfer.regions.min.js +2 -2
  34. package/dist/plugin/wavesurfer.regions.min.js.map +1 -1
  35. package/dist/plugin/wavesurfer.spectrogram.js +16 -12
  36. package/dist/plugin/wavesurfer.spectrogram.js.map +1 -1
  37. package/dist/plugin/wavesurfer.spectrogram.min.js +2 -2
  38. package/dist/plugin/wavesurfer.spectrogram.min.js.map +1 -1
  39. package/dist/plugin/wavesurfer.timeline.js +2 -2
  40. package/dist/plugin/wavesurfer.timeline.js.map +1 -1
  41. package/dist/plugin/wavesurfer.timeline.min.js +2 -2
  42. package/dist/plugin/wavesurfer.timeline.min.js.map +1 -1
  43. package/dist/wavesurfer-html-init.js +2 -2
  44. package/dist/wavesurfer-html-init.js.map +1 -1
  45. package/dist/wavesurfer-html-init.min.js +2 -2
  46. package/dist/wavesurfer-html-init.min.js.map +1 -1
  47. package/dist/wavesurfer.js +4 -4
  48. package/dist/wavesurfer.js.map +1 -1
  49. package/dist/wavesurfer.min.js +2 -2
  50. package/dist/wavesurfer.min.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/plugin/cursor/index.js +2 -1
  53. package/src/plugin/spectrogram/index.js +14 -10
  54. package/src/wavesurfer.js +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wavesurfer.js",
3
- "version": "6.1.0",
3
+ "version": "6.2.0",
4
4
  "description": "Interactive navigable audio visualization using Web Audio and Canvas",
5
5
  "main": "dist/wavesurfer.js",
6
6
  "directories": {
@@ -90,7 +90,8 @@ export default class CursorPlugin {
90
90
  const bbox = this.wrapper.getBoundingClientRect();
91
91
  let y = 0;
92
92
  let x = this.wrapper.scrollLeft + event.clientX - bbox.left;
93
- let flip = bbox.right < event.clientX + this.displayTime.getBoundingClientRect().width;
93
+ const displayTimeWidth = this.displayTime ? this.displayTime.getBoundingClientRect().width : 0;
94
+ let flip = bbox.right < event.clientX + displayTimeWidth;
94
95
 
95
96
  if (this.params.showTime && this.params.followCursorY) {
96
97
  // follow y-position of the mouse
@@ -10,6 +10,8 @@ import FFT from './fft';
10
10
  * a power of 2.
11
11
  * @property {boolean} splitChannels=false Render with separate spectrograms for
12
12
  * the channels of the audio
13
+ * @property {number} height=fftSamples/2 Height of the spectrogram view in CSS
14
+ * pixels
13
15
  * @property {boolean} labels Set to true to display frequency labels.
14
16
  * @property {number} noverlap Size of the overlapping window. Must be <
15
17
  * fftSamples. Auto deduced from canvas size by default.
@@ -128,7 +130,7 @@ export default class SpectrogramPlugin {
128
130
  this.pixelRatio = this.params.pixelRatio || ws.params.pixelRatio;
129
131
  this.fftSamples =
130
132
  this.params.fftSamples || ws.params.fftSamples || 512;
131
- this.height = this.fftSamples / 2;
133
+ this.height = this.params.height || this.fftSamples / 2;
132
134
  this.noverlap = params.noverlap;
133
135
  this.windowFunc = params.windowFunc;
134
136
  this.alpha = params.alpha;
@@ -185,11 +187,10 @@ export default class SpectrogramPlugin {
185
187
  const labelsEl = (this.labelsEl = document.createElement('canvas'));
186
188
  labelsEl.classList.add('spec-labels');
187
189
  this.drawer.style(labelsEl, {
188
- left: 0,
189
- position: 'absolute',
190
+ position: 'fixed',
190
191
  zIndex: 9,
191
- height: `${this.height * this.channels / this.pixelRatio}px`,
192
- width: `${55 / this.pixelRatio}px`
192
+ height: `${this.height * this.channels}px`,
193
+ width: `55px`
193
194
  });
194
195
  this.wrapper.appendChild(labelsEl);
195
196
  this.loadLabels(
@@ -209,7 +210,7 @@ export default class SpectrogramPlugin {
209
210
  position: 'relative',
210
211
  userSelect: 'none',
211
212
  webkitUserSelect: 'none',
212
- height: `${this.height * this.channels / this.pixelRatio}px`
213
+ height: `${this.height * this.channels}px`
213
214
  });
214
215
 
215
216
  if (wsParams.fillParent || wsParams.scrollParent) {
@@ -256,8 +257,9 @@ export default class SpectrogramPlugin {
256
257
  updateCanvasStyle() {
257
258
  const width = Math.round(this.width / this.pixelRatio) + 'px';
258
259
  this.canvas.width = this.width;
259
- this.canvas.height = this.height * this.channels;
260
+ this.canvas.height = this.fftSamples / 2 * this.channels;
260
261
  this.canvas.style.width = width;
262
+ this.canvas.style.height = this.height + 'px';
261
263
  }
262
264
 
263
265
  drawSpectrogram(frequenciesData, my) {
@@ -267,7 +269,7 @@ export default class SpectrogramPlugin {
267
269
  }
268
270
 
269
271
  const spectrCc = my.spectrCc;
270
- const height = my.height;
272
+ const height = my.fftSamples / 2;
271
273
  const width = my.width;
272
274
  const freqFrom = my.buffer.sampleRate / 2;
273
275
  const freqMin = my.frequencyMin;
@@ -404,8 +406,10 @@ export default class SpectrogramPlugin {
404
406
 
405
407
  // prepare canvas element for labels
406
408
  const ctx = this.labelsEl.getContext('2d');
407
- this.labelsEl.height = this.height * this.channels;
408
- this.labelsEl.width = bgWidth;
409
+ const dispScale = window.devicePixelRatio;
410
+ this.labelsEl.height = this.height * this.channels * dispScale;
411
+ this.labelsEl.width = bgWidth * dispScale;
412
+ ctx.scale(dispScale, dispScale);
409
413
 
410
414
  if (!ctx) {
411
415
  return;
package/src/wavesurfer.js CHANGED
@@ -501,6 +501,7 @@ export default class WaveSurfer extends util.Observer {
501
501
  this._onResize = util.debounce(
502
502
  () => {
503
503
  if (
504
+ this.drawer.wrapper &&
504
505
  prevWidth != this.drawer.wrapper.clientWidth &&
505
506
  !this.params.scrollParent
506
507
  ) {