Socket
Socket
Sign inDemoInstall

wavefile

Package Overview
Dependencies
Maintainers
1
Versions
150
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wavefile - npm Package Compare versions

Comparing version 10.3.0 to 10.4.0

lib/resampler/butterworth-lpf.js

11

CHANGELOG.md
# CHANGELOG
## version 10.4.0 - 2020-01-20
- Default LPF for resample is IIR
- Use FIR or IIR LPFs to resample:
```javascript
// Will use 'linear' method with a FIR LPF
wav.toSampleRate(44100, {method: "linear", LPF: true, LPFType: 'FIR'});
// Will use 'linear' method with a IIR LPF, the default
wav.toSampleRate(44100, {method: "linear", LPF: true});
```
## version 10.3.0 - 2020-01-20

@@ -4,0 +15,0 @@

172

dist/wavefile.js

@@ -1,85 +0,87 @@

try{if(!Uint8Array.prototype.slice)Object.defineProperty(Uint8Array.prototype,"slice",{value:function(begin,end){return new Uint8Array(Array.prototype.slice.call(this,begin,end))}})}catch(err){}var ba="function"==typeof Object.create?Object.create:function(n){function m(){}m.prototype=n;return new m},E;
if("function"==typeof Object.setPrototypeOf)E=Object.setPrototypeOf;else{var O;a:{var ca={ya:!0},oa={};try{oa.__proto__=ca;O=oa.ya;break a}catch(n){}O=!1}E=O?function(n,m){n.__proto__=m;if(n.__proto__!==m)throw new TypeError(n+" is not extensible");return n}:null}var pa=E;
function R(n,m){n.prototype=ba(m.prototype);n.prototype.constructor=n;if(pa)pa(n,m);else for(var l in m)if("prototype"!=l)if(Object.defineProperties){var q=Object.getOwnPropertyDescriptor(m,l);q&&Object.defineProperty(n,l,q)}else n[l]=m[l]}var qa="function"==typeof Object.defineProperties?Object.defineProperty:function(n,m,l){n!=Array.prototype&&n!=Object.prototype&&(n[m]=l.value)},ra="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this;
function S(n,m){if(m){for(var l=ra,q=n.split("."),v=0;v<q.length-1;v++){var r=q[v];r in l||(l[r]={});l=l[r]}q=q[q.length-1];v=l[q];r=m(v);r!=v&&null!=r&&qa(l,q,{configurable:!0,writable:!0,value:r})}}S("Object.is",function(n){return n?n:function(m,l){return m===l?0!==m||1/m===1/l:m!==m&&l!==l}});
S("Array.prototype.includes",function(n){return n?n:function(m,l){var q=this;q instanceof String&&(q=String(q));var v=q.length,r=l||0;for(0>r&&(r=Math.max(r+v,0));r<v;r++){var z=q[r];if(z===m||Object.is(z,m))return!0}return!1}});
S("String.prototype.codePointAt",function(n){return n?n:function(m){if(null==this)throw new TypeError("The 'this' value for String.prototype.codePointAt must not be null or undefined");var l=this.length;m=Number(m)||0;if(0<=m&&m<l){m|=0;var q=this.charCodeAt(m);if(55296>q||56319<q||m+1===l)return q;m=this.charCodeAt(m+1);return 56320>m||57343<m?q:1024*(q-55296)+m+9216}}});
var sa="function"==typeof Object.assign?Object.assign:function(n,m){for(var l=1;l<arguments.length;l++){var q=arguments[l];if(q)for(var v in q)Object.prototype.hasOwnProperty.call(q,v)&&(n[v]=q[v])}return n};S("Object.assign",function(n){return n||sa});var T=this;
function U(n){function m(a){a=void 0===a?null:a;var b=l.call(this)||this;a&&b.fromBuffer(a);return b}function l(){return r.apply(this,arguments)||this}function q(a,b,c){c=2*Math.PI*c/b;b=0;this.b=[];for(var d=0;d<=a;d++)0===d-a/2?this.b[d]=c:(this.b[d]=Math.sin(c*(d-a/2))/(d-a/2),this.b[d]*=.54-.46*Math.cos(2*Math.PI*d/a)),b+=this.b[d];for(c=0;c<=a;c++)this.b[c]/=b;this.a=this.c()}function v(a,b,c){this.v=a;this.j=(a-1)/b;this.L=this.H;"point"===c.method?this.L=this.G:"linear"===c.method?this.L=this.F:
"cubic"===c.method&&(this.L=this.N);this.l=ta;"periodic"===c.clip?(this.j=a/b,this.l=da):"mirror"===c.clip&&(this.l=ua);this.I=1-Math.max(0,Math.min(1,c.tension||0));this.A=c.sincFilterSize||1;this.D=va(c.sincWindow||wa)}function r(){return z.apply(this,arguments)||this}function z(){return t.apply(this,arguments)||this}function t(){var a=u.call(this)||this;a.bitDepth="0";a.f={h:0,o:!1,C:!1,K:!1};a.N={4:17,8:1,"8a":6,"8m":7,16:1,24:1,32:1,"32f":3,64:3};return a}function u(){return w.apply(this,arguments)||
this}function w(){var a=B.call(this)||this;a.X.push("RF64");a.fmt={chunkId:"",chunkSize:0,audioFormat:0,numChannels:0,sampleRate:0,byteRate:0,blockAlign:0,bitsPerSample:0,cbSize:0,validBitsPerSample:0,dwChannelMask:0,subformat:[]};a.fact={chunkId:"",chunkSize:0,dwSampleLength:0};a.cue={chunkId:"",chunkSize:0,dwCuePoints:0,points:[]};a.smpl={chunkId:"",chunkSize:0,dwManufacturer:0,dwProduct:0,dwSamplePeriod:0,dwMIDIUnityNote:0,dwMIDIPitchFraction:0,dwSMPTEFormat:0,dwSMPTEOffset:0,dwNumSampleLoops:0,
dwSamplerData:0,loops:[]};a.bext={chunkId:"",chunkSize:0,description:"",originator:"",originatorReference:"",originationDate:"",originationTime:"",timeReference:[0,0],version:0,UMID:"",loudnessValue:0,loudnessRange:0,maxTruePeakLevel:0,maxMomentaryLoudness:0,maxShortTermLoudness:0,reserved:"",codingHistory:""};a.iXML={chunkId:"",chunkSize:0,value:""};a.ds64={chunkId:"",chunkSize:0,riffSizeHigh:0,riffSizeLow:0,dataSizeHigh:0,dataSizeLow:0,originationTime:0,sampleCountHigh:0,sampleCountLow:0};a.data=
{chunkId:"",chunkSize:0,samples:new Uint8Array(0)};a.LIST=[];a.junk={chunkId:"",chunkSize:0,chunkData:[]};a._PMX={chunkId:"",chunkSize:0,value:""};a.g={h:16,o:!1,C:!1,K:!1};return a}function B(){this.container="";this.chunkSize=0;this.format="";this.W={};this.c=0;this.a={h:32,o:!1,C:!1,K:!1};this.X=["RIFF","RIFX"]}function I(a,b,c){this.a=this.c(a,b,c);this.offset=Math.ceil(a/8)}function M(a){a=C.call(this,a)||this;a.max=Math.pow(2,a.h)/2-1;a.min=-a.max-1;return a}function C(a){this.h=a;this.b=8>
a?1:Math.ceil(a/8);this.max=Math.pow(2,a)-1;this.min=0;a=8-((a-1|7)+1-a);this.f=Math.pow(2,0<a?a:8)-1}function J(a,b){this.b=a;this.c=b;this.a=(1<<a-1)-1;this.f=Math.ceil((a+b)/8);this.g=Math.pow(2,this.a+1);this.i=a+b;this.j=Math.pow(2,-(8*this.f-1-a))}function xa(a){for(var b=new Uint8Array(256),c=0;64>c;c++)b["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(c)]=c;c=.75*a.length;"="===a[a.length-1]&&(c--,"="===a[a.length-2]&&c--);c=new ArrayBuffer(c);for(var d=new Uint8Array(c),
e=0,f=0;e<a.length;e+=4){var h=b[a.charCodeAt(e)],k=b[a.charCodeAt(e+1)],p=b[a.charCodeAt(e+2)],y=b[a.charCodeAt(e+3)];d[f++]=h<<2|k>>4;d[f++]=(k&15)<<4|p>>2;d[f++]=(p&3)<<6|y&63}return c}function ya(a,b){return a=0<a?parseInt(a/b.ba*b.$,10):parseInt(a/b.ca*b.aa,10)}function za(a,b){return parseInt(0<a?a*b.$:a*b.aa,10)}function Aa(a,b){return 0<a?a/b.ba:a/b.ca}function Ba(a,b){function c(d){return d}a!=b&&(c=["32f","64"].includes(a)?za:["32f","64"].includes(b)?Aa:ya);return c}function ea(a){if("32f"!=
a&&"64"!=a&&("8">parseInt(a,10)||"53"<parseInt(a,10)))throw Error("Invalid bit depth.");}function fa(a,b,c){if("8"==a)for(a=c?-128:128,c=0;c<b.length;c++)b[c]=b[c]+=a}function Ca(a){for(var b=new Uint8Array(a.length),c=[],d=0,e=0,f=0;f<a.length;f++)0==f%505&&0!=f&&(b.set(Da(c),d),d+=256,c=[],e++),c.push(a[f]);a=a.length/2;a%2&&a++;return b.slice(0,a+512+4*e)}function Ea(a,b){b=void 0===b?256:b;for(var c=new Int16Array(2*a.length),d=[],e=0,f=0;f<a.length;f++){if(0==f%b&&0!=f){var h=d[1]<<8|d[0];D=
32768<h?h-65536:h;F=d[2];K=V[F];h=[D,D];for(var k=4;k<d.length;k++){var p=d[k],y=p>>4;h.push(ha(y<<4^p));h.push(ha(y))}d=h;c.set(d,e);e+=d.length;d=[]}d.push(a[f])}return c}function Da(a){var b=a[0];W(b);var c=[];c.push(b&255);c.push(b>>8&255);c.push(H);c.push(0);for(b=3;b<a.length;b+=2){var d=W(a[b]),e=W(a[b+1]);c.push(e<<4|d)}return c}function W(a){var b=a-G;0<=b?a=0:(a=8,b=-b);var c=V[H],d=c>>3;b>c&&(a|=4,b-=c,d+=c);c>>=1;b>c&&(a|=2,b-=c,d+=c);c>>=1;b>c&&(a|=1,d+=c);b=a;G=b&8?G-d:G+d;-32768>G?
G=-32768:32767<G&&(G=32767);H+=ia[b&7];0>H?H=0:88<H&&(H=88);return a}function ha(a){var b=0;a&4&&(b+=K);a&2&&(b+=K>>1);a&1&&(b+=K>>2);b+=K>>3;a&8&&(b=-b);D+=b;32767<D?D=32767:-32767>D&&(D=-32767);F+=ia[a];0>F?F=0:88<F&&(F=88);K=V[F];return D}function Fa(a){for(var b=new Uint8Array(a.length),c=0;c<a.length;c++){var d=c;var e=a[c];e=-32768==e?-32767:e;var f=~e>>8&128;f||(e*=-1);32635<e&&(e=32635);if(256<=e){var h=Ga[e>>8&127];e=h<<4|e>>h+3&15}else e>>=4;b[d]=e^f^85}return b}function Ha(a){for(var b=
new Int16Array(a.length),c=0;c<a.length;c++){var d=c,e=a[c],f=0;e^=85;e&128&&(e&=-129,f=-1);var h=((e&240)>>4)+4;e=4!=h?1<<h|(e&15)<<h-4|1<<h-5:e<<1|1;b[d]=-8*(0===f?e:-e)}return b}function Ia(a){for(var b=new Uint8Array(a.length),c=0;c<a.length;c++){var d=c,e=a[c];var f=e>>8&128;0!=f&&(e=-e);32635<e&&(e=32635);e+=132;var h=Ja[e>>7&255];b[d]=~(f|h<<4|e>>h+3&15)}return b}function Ka(a){for(var b=new Int16Array(a.length),c=0;c<a.length;c++){var d=c,e=a[c];e=~e;var f=e>>4&7;f=La[f]+((e&15)<<f+3);0!=
(e&128)&&(f=-f);b[d]=f}return b}function X(a,b,c,d){d=void 0===d?a.length:d;if(d%b)throw Error("Bad buffer length.");for(c=void 0===c?0:c;c<d;c+=b){var e=a,f=b,h=c;f--;for(var k=0;k<f;k++){var p=e[h+k];e[h+k]=e[h+f];e[h+f]=p;f--}}}function Y(a,b,c){c=void 0===c?0:c;for(var d=0,e=a.length;d<e;d++){var f=a.codePointAt(d);if(128>f)b[c]=f,c++;else{var h=0,k=0;2047>=f?(h=1,k=192):65535>=f?(h=2,k=224):1114111>=f&&(h=3,k=240,d++);b[c]=(f>>6*h)+k;for(c++;0<h;)b[c]=128|f>>6*(h-1)&63,c++,h--}}return c}function Z(a){var b=
Math.floor(a);a-=b;return.5>a?b:.5<a?b+1:b%2?b+1:b}function L(a,b,c){c=void 0===c?a.length:c;var d=void 0===b?0:b;c=void 0===c?a.length:c;b="";for(d=void 0===d?0:d;d<c;){var e=128,f=191,h=!1,k=a[d++];if(0<=k&&127>=k)b+=String.fromCharCode(k);else{var p=0;194<=k&&223>=k?p=1:224<=k&&239>=k?(p=2,224===a[d]&&(e=160),237===a[d]&&(f=159)):240<=k&&244>=k?(p=3,240===a[d]&&(e=144),244===a[d]&&(f=143)):h=!0;k&=(1<<8-p-1)-1;for(var y=0;y<p;y++){if(a[d]<e||a[d]>f)h=!0;k=k<<6|a[d]&63;d++}h?b+=String.fromCharCode(65533):
65535>=k?b+=String.fromCharCode(k):(k-=65536,b+=String.fromCharCode((k>>10&1023)+55296,(k&1023)+56320))}}return b}function x(a){var b=[];Y(a,b,0);return b}function P(a,b,c,d){d=void 0===d?0:d;b=b||{};var e=new I(b.h,b.K,b.C),f=0,h=d;try{for(var k=a.length;f<k;f++)d=e.B(c,a[f],d);b.o&&X(c,e.offset,h,d)}catch(p){ja(p,a[f],f)}return d}function N(a,b,c,d,e,f){d=void 0===d?0:d;e=void 0===e?a.length:e;f=void 0===f?!1:f;b=b||{};var h=new I(b.h,b.K,b.C),k=h.offset,p=(e-d)%k;if(f&&(p||a.length<k))throw Error("Bad buffer length");
e-=p;f=0;p=d;try{for(b.o&&X(a,k,d,e);p<e;p+=k,f++)c[f]=h.M(a,p);b.o&&X(a,k,d,e)}catch(y){ja(y,a.slice(p,p+k),p)}}function g(a,b){var c=[];P([a],b,c,0);return c}function aa(a,b,c,d,e){d=void 0===d?a.length:d;var f=[];N(a,b,f,void 0===c?0:c,d,void 0===e?!1:e);return f}function Q(a,b,c){c=void 0===c?0:c;return aa(a,b,c,c+Math.ceil(b.h/8),!0)[0]}function ja(a,b,c){a.message=a.constructor.name+" at index "+c+": "+b;throw a;}function A(a,b,c){c=void 0===c?!0:c;a=x(a);if(c)for(c=a.length;c<b;c++)a.push(0);
return a}function ka(a,b){for(var c=8===b?255:Math.pow(2,b)/2-1,d=8===b?0:-c-1,e=0,f=a.length;e<f;e++)a[e]=Math.round(a[e]),a[e]>c?a[e]=c:a[e]<d&&(a[e]=d)}function wa(a){return Math.exp(-a*a)}function va(a){return function(b){return(0===b?1:Math.sin(Math.PI*b)/(Math.PI*b))*a(b)}}function ta(a,b){return Math.max(0,Math.min(a,b-1))}function da(a,b){a%=b;0>a&&(a+=b);return a}function ua(a,b){var c=2*(b-1);a=da(a,c);a>b-1&&(a=c-a);return a}function la(a,b,c,d){d=void 0===d?{}:d;var e=new Float64Array(a.length*
((c-b)/b+1));d.method=d.method||"cubic";var f=new v(a.length,e.length,{method:d.method,tension:d.tension||0,sincFilterSize:d.sincFilterSize||6,sincWindow:d.sincWindow||void 0,clip:d.clip||"mirror"});void 0===d.LPF&&(d.LPF=Ma[d.method]);if(d.LPF)if(c>b){b=new q(d.LPForder||ma[d.method],c,b/2);c=0;for(d=e.length;c<d;c++)e[c]=b.filter(f.L(c,a));b.reset();for(a=e.length-1;0<=a;a--)e[a]=b.filter(e[a])}else{b=new q(d.LPForder||ma[d.method],b,c/2);c=0;for(d=a.length;c<d;c++)a[c]=b.filter(a[c]);b.reset();
for(c=a.length-1;0<=c;c--)a[c]=b.filter(a[c]);na(a,e,f)}else na(a,e,f);return e}function na(a,b,c){for(var d=0,e=b.length;d<e;d++)b[d]=c.L(d,a)}var ia=[-1,-1,-1,-1,2,4,6,8,-1,-1,-1,-1,2,4,6,8],V=[7,8,9,10,11,12,13,14,16,17,19,21,23,25,28,31,34,37,41,45,50,55,60,66,73,80,88,97,107,118,130,143,157,173,190,209,230,253,279,307,337,371,408,449,494,544,598,658,724,796,876,963,1060,1166,1282,1411,1552,1707,1878,2066,2272,2499,2749,3024,3327,3660,4026,4428,4871,5358,5894,6484,7132,7845,8630,9493,10442,11487,
12635,13899,15289,16818,18500,20350,22385,24623,27086,29794,32767],G=0,H=0,D=0,F=0,K=7,Ga=[1,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],Ja=[0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],La=[0,132,396,924,1980,4092,8316,16764];J.prototype.B=function(a,b,c){if("number"!=typeof b)throw new TypeError;Math.abs(b)>this.g-2*this.i&&
(b=0>b?-Infinity:Infinity);var d=0>((b=+b)||1/b)?1:0>b?1:0;b=Math.abs(b);var e=Math.min(Math.floor(Math.log(b)/Math.LN2),1023),f=Z(b/Math.pow(2,e)*Math.pow(2,this.c));b!==b?(f=Math.pow(2,this.c-1),e=(1<<this.b)-1):0!==b&&(b>=Math.pow(2,1-this.a)?(2<=f/Math.pow(2,this.c)&&(e+=1,f=1),e>this.a?(e=(1<<this.b)-1,f=0):(e+=this.a,f=Z(f)-Math.pow(2,this.c))):(f=Z(b/Math.pow(2,1-this.a-this.c)),e=0));return this.m(a,c,d,e,f)};J.prototype.M=function(a,b){for(var c=(1<<this.b)-1,d="",e=this.f-1;0<=e;e--){var f=
a[e+b].toString(2);d+="00000000".substring(f.length)+f}e="1"==d.charAt(0)?-1:1;d=d.substring(1);f=parseInt(d.substring(0,this.b),2);d=d.substring(this.b);if(f==c)return 0!==parseInt(d,2)?NaN:Infinity*e;0===f?(f+=1,c=parseInt(d,2)):c=parseInt("1"+d,2);return e*c*this.j*Math.pow(2,f-this.a)};J.prototype.m=function(a,b,c,d,e){var f=[];f.push(c);for(c=this.b;0<c;--c)f[c]=d%2?1:0,d=Math.floor(d/2);d=f.length;for(c=this.c;0<c;--c)f[d+c]=e%2?1:0,e=Math.floor(e/2);e=f.join("");f=this.f+b-1;for(d=b;f>=b;)a[f]=
parseInt(e.substring(0,8),2),e=e.substring(8),f--,d++;return d};C.prototype.B=function(a,b,c){c=void 0===c?0:c;if(b!==b||"number"!=typeof b)throw new TypeError;this.a(b);return this.g(a,b,c)};C.prototype.M=function(a,b){var c=this.c(a,void 0===b?0:b);this.a(c);return c};C.prototype.c=function(a,b){b=void 0===b?0:b;for(var c=0,d=0;d<this.b;d++)c+=a[b+d]*Math.pow(256,d);return c};C.prototype.a=function(a){if(a>this.max||a<this.min)throw new RangeError;};C.prototype.g=function(a,b,c){c=void 0===c?0:
c;a[c]=(0>b?b+Math.pow(2,this.h):b)&255;c++;for(var d=this.b,e=2;e<d;e++)a[c]=Math.floor(b/Math.pow(2,8*(e-1)))&255,c++;8<this.h&&(a[c]=Math.floor(b/Math.pow(2,8*(this.b-1)))&this.f,c++);return c};R(M,C);M.prototype.B=function(a,b,c){return C.prototype.B.call(this,a,b,void 0===c?0:c)};M.prototype.M=function(a,b){var c=C.prototype.c.call(this,a,void 0===b?0:b);c=this.i(c);this.a(c);return c};M.prototype.i=function(a){a>this.max&&(a-=2*this.max+2);return a};I.prototype.M=function(a,b){return this.a.M(a,
void 0===b?0:b)};I.prototype.B=function(a,b,c){return this.a.B(a,b,void 0===c?0:c)};I.prototype.c=function(a,b,c){if(b){if(!a||16!==a&&32!==a&&64!==a)throw Error("Unsupported type: float, bits: "+a);return this.b(a)}if(!a||1>a||53<a)throw Error("Unsupported type: int, bits: "+a);return c?new M(a):new C(a)};I.prototype.b=function(a){return 16===a?new J(5,11):32===a?new J(8,23):new J(11,52)};B.prototype.ma=function(a){this.c=0;this.container=this.s(a,4);if(-1===this.X.indexOf(this.container))throw Error("Not a supported format.");
this.a.o="RIFX"===this.container;this.chunkSize=this.b(a);this.format=this.s(a,4);this.W={chunkId:this.container,chunkSize:this.chunkSize,format:this.format,subChunks:this.T(a)}};B.prototype.m=function(a,b){b=void 0===b?!1:b;for(var c=this.W.subChunks,d=[],e=0;e<c.length;e++)if(c[e].chunkId==a)if(b)d.push(c[e]);else return c[e];return"LIST"==a?d.length?d:null:null};B.prototype.s=function(a,b){var c=L(a,this.c,this.c+b);this.c+=b;return c};B.prototype.b=function(a){a=Q(a,this.a,this.c);this.c+=4;return a};
B.prototype.T=function(a){for(var b=[],c=this.c;c<=a.length-8;)b.push(this.Ma(a,c)),c+=8+b[b.length-1].chunkSize,c=c%2?c+1:c;return b};B.prototype.Ma=function(a,b){var c={chunkId:this.va(a,b),chunkSize:this.wa(a,b)};"LIST"==c.chunkId?(c.format=L(a,b+8,b+12),this.c+=4,c.subChunks=this.T(a)):(this.c=b+8+(c.chunkSize%2?c.chunkSize+1:c.chunkSize),c.chunkData={start:b+8,end:this.c});return c};B.prototype.va=function(a,b){this.c+=4;return L(a,b,b+4)};B.prototype.wa=function(a,b){this.c+=4;return Q(a,this.a,
b+4)};R(w,B);w.prototype.fromBuffer=function(a,b){b=void 0===b?!0:b;this.S();this.ma(a);this.g.o=this.a.o;if("WAVE"!=this.format)throw Error('Could not find the "WAVE" format identifier');this.Ta(a);this.Va(a);this.Ua(a);this.Qa(a);this.ha(a);this.Ra(a);this.fa(a);this.Sa(a,b);this.Xa(a);this.Ya(a);this.ga(a)};w.prototype.S=function(){var a=new w;Object.assign(this.fmt,a.fmt);Object.assign(this.fact,a.fact);Object.assign(this.cue,a.cue);Object.assign(this.smpl,a.smpl);Object.assign(this.bext,a.bext);
Object.assign(this.iXML,a.iXML);Object.assign(this.ds64,a.ds64);Object.assign(this.data,a.data);this.LIST=[];Object.assign(this.junk,a.junk);Object.assign(this._PMX,a._PMX)};w.prototype.Va=function(a){var b=this.m("fmt ");if(b)this.c=b.chunkData.start,this.fmt.chunkId=b.chunkId,this.fmt.chunkSize=b.chunkSize,this.fmt.audioFormat=this.i(a),this.fmt.numChannels=this.i(a),this.fmt.sampleRate=this.b(a),this.fmt.byteRate=this.b(a),this.fmt.blockAlign=this.i(a),this.fmt.bitsPerSample=this.i(a),this.Wa(a);
else throw Error('Could not find the "fmt " chunk');};w.prototype.Wa=function(a){16<this.fmt.chunkSize&&(this.fmt.cbSize=this.i(a),18<this.fmt.chunkSize&&(this.fmt.validBitsPerSample=this.i(a),20<this.fmt.chunkSize&&(this.fmt.dwChannelMask=this.b(a),this.fmt.subformat=[this.b(a),this.b(a),this.b(a),this.b(a)])))};w.prototype.Ua=function(a){var b=this.m("fact");b&&(this.c=b.chunkData.start,this.fact.chunkId=b.chunkId,this.fact.chunkSize=b.chunkSize,this.fact.dwSampleLength=this.b(a))};w.prototype.Ra=
function(a){var b=this.m("cue ");if(b)for(this.c=b.chunkData.start,this.cue.chunkId=b.chunkId,this.cue.chunkSize=b.chunkSize,this.cue.dwCuePoints=this.b(a),b=0;b<this.cue.dwCuePoints;b++)this.cue.points.push({dwName:this.b(a),dwPosition:this.b(a),fccChunk:this.s(a,4),dwChunkStart:this.b(a),dwBlockStart:this.b(a),dwSampleOffset:this.b(a)})};w.prototype.fa=function(a){var b=this.m("smpl");if(b)for(this.c=b.chunkData.start,this.smpl.chunkId=b.chunkId,this.smpl.chunkSize=b.chunkSize,this.smpl.dwManufacturer=
this.b(a),this.smpl.dwProduct=this.b(a),this.smpl.dwSamplePeriod=this.b(a),this.smpl.dwMIDIUnityNote=this.b(a),this.smpl.dwMIDIPitchFraction=this.b(a),this.smpl.dwSMPTEFormat=this.b(a),this.smpl.dwSMPTEOffset=this.b(a),this.smpl.dwNumSampleLoops=this.b(a),this.smpl.dwSamplerData=this.b(a),b=0;b<this.smpl.dwNumSampleLoops;b++)this.smpl.loops.push({dwName:this.b(a),dwType:this.b(a),dwStart:this.b(a),dwEnd:this.b(a),dwFraction:this.b(a),dwPlayCount:this.b(a)})};w.prototype.Sa=function(a,b){var c=this.m("data");
if(c)this.data.chunkId="data",this.data.chunkSize=c.chunkSize,b&&(this.data.samples=a.slice(c.chunkData.start,c.chunkData.end));else throw Error('Could not find the "data" chunk');};w.prototype.Qa=function(a){var b=this.m("bext");b&&(this.c=b.chunkData.start,this.bext.chunkId=b.chunkId,this.bext.chunkSize=b.chunkSize,this.bext.description=this.s(a,256),this.bext.originator=this.s(a,32),this.bext.originatorReference=this.s(a,32),this.bext.originationDate=this.s(a,10),this.bext.originationTime=this.s(a,
8),this.bext.timeReference=[this.b(a),this.b(a)],this.bext.version=this.i(a),this.bext.UMID=this.s(a,64),this.bext.loudnessValue=this.i(a),this.bext.loudnessRange=this.i(a),this.bext.maxTruePeakLevel=this.i(a),this.bext.maxMomentaryLoudness=this.i(a),this.bext.maxShortTermLoudness=this.i(a),this.bext.reserved=this.s(a,180),this.bext.codingHistory=this.s(a,this.bext.chunkSize-602))};w.prototype.ha=function(a){var b=this.m("iXML");b&&(this.c=b.chunkData.start,this.iXML.chunkId=b.chunkId,this.iXML.chunkSize=
b.chunkSize,this.iXML.value=L(a,this.c,this.c+this.iXML.chunkSize))};w.prototype.Ta=function(a){var b=this.m("ds64");if(b)this.c=b.chunkData.start,this.ds64.chunkId=b.chunkId,this.ds64.chunkSize=b.chunkSize,this.ds64.riffSizeHigh=this.b(a),this.ds64.riffSizeLow=this.b(a),this.ds64.dataSizeHigh=this.b(a),this.ds64.dataSizeLow=this.b(a),this.ds64.originationTime=this.b(a),this.ds64.sampleCountHigh=this.b(a),this.ds64.sampleCountLow=this.b(a);else if("RF64"==this.container)throw Error('Could not find the "ds64" chunk');
};w.prototype.Ya=function(a){var b=this.m("LIST",!0);if(null!==b)for(var c=0;c<b.length;c++){var d=b[c];this.LIST.push({chunkId:d.chunkId,chunkSize:d.chunkSize,format:d.format,subChunks:[]});for(var e=0;e<d.subChunks.length;e++)this.ea(d.subChunks[e],d.format,a)}};w.prototype.ea=function(a,b,c){"adtl"==b?-1<["labl","note","ltxt"].indexOf(a.chunkId)&&(this.c=a.chunkData.start,b={chunkId:a.chunkId,chunkSize:a.chunkSize,dwName:this.b(c)},"ltxt"==a.chunkId?(b.dwSampleLength=this.b(c),b.dwPurposeID=this.b(c),
b.dwCountry=this.i(c),b.dwLanguage=this.i(c),b.dwDialect=this.i(c),b.dwCodePage=this.i(c),b.value=""):b.value=this.V(c,this.c),this.LIST[this.LIST.length-1].subChunks.push(b)):"INFO"==b&&(this.c=a.chunkData.start,this.LIST[this.LIST.length-1].subChunks.push({chunkId:a.chunkId,chunkSize:a.chunkSize,value:this.V(c,this.c)}))};w.prototype.Xa=function(a){var b=this.m("junk");b&&(this.junk={chunkId:b.chunkId,chunkSize:b.chunkSize,chunkData:[].slice.call(a.slice(b.chunkData.start,b.chunkData.end))})};w.prototype.ga=
function(a){var b=this.m("_PMX");b&&(this.c=b.chunkData.start,this._PMX.chunkId=b.chunkId,this._PMX.chunkSize=b.chunkSize,this._PMX.value=L(a,this.c,this.c+this._PMX.chunkSize))};w.prototype.V=function(a,b){for(var c=b=void 0===b?0:b;c<a.length&&(this.c++,0!==a[c]);c++);return L(a,b,this.c-1)};w.prototype.i=function(a){a=Q(a,this.g,this.c);this.c+=2;return a};R(u,w);u.prototype.toBuffer=function(){this.g.o="RIFX"===this.container;this.a.o=this.g.o;for(var a=[this.Fa(),this.Ba(),this.ua(),this.Oa(),
this.Da(),this.Ca(),x(this.data.chunkId),g(this.data.samples.length,this.a),this.data.samples,this.xa(),this.Ka(),this.Ga(),this.Na()],b=0,c=0;c<a.length;c++)b+=a[c].length;c=new Uint8Array(b+12);var d=Y(this.container,c,0);d=P([b+4],this.a,c,void 0===d?0:d);d=Y(this.format,c,void 0===d?0:d);for(b=0;b<a.length;b++)c.set(a[b],d),d+=a[b].length;return c};u.prototype.ua=function(){var a=[];this.ta();this.bext.chunkId&&(this.bext.chunkSize=602+this.bext.codingHistory.length,a=a.concat(x(this.bext.chunkId),
g(602+this.bext.codingHistory.length,this.a),A(this.bext.description,256),A(this.bext.originator,32),A(this.bext.originatorReference,32),A(this.bext.originationDate,10),A(this.bext.originationTime,8),g(this.bext.timeReference[0],this.a),g(this.bext.timeReference[1],this.a),g(this.bext.version,this.g),A(this.bext.UMID,64),g(this.bext.loudnessValue,this.g),g(this.bext.loudnessRange,this.g),g(this.bext.maxTruePeakLevel,this.g),g(this.bext.maxMomentaryLoudness,this.g),g(this.bext.maxShortTermLoudness,
this.g),A(this.bext.reserved,180),A(this.bext.codingHistory,this.bext.codingHistory.length)));this.j(a);return a};u.prototype.ta=function(){for(var a in this.bext)if(this.bext.hasOwnProperty(a)&&this.bext[a]&&"timeReference"!=a){this.bext.chunkId="bext";break}if(this.bext.timeReference[0]||this.bext.timeReference[1])this.bext.chunkId="bext"};u.prototype.Oa=function(){var a=[];if(this.iXML.chunkId){var b=x(this.iXML.value);this.iXML.chunkSize=b.length;a=a.concat(x(this.iXML.chunkId),g(this.iXML.chunkSize,
this.a),b)}this.j(a);return a};u.prototype.Ba=function(){var a=[];this.ds64.chunkId&&(a=a.concat(x(this.ds64.chunkId),g(this.ds64.chunkSize,this.a),g(this.ds64.riffSizeHigh,this.a),g(this.ds64.riffSizeLow,this.a),g(this.ds64.dataSizeHigh,this.a),g(this.ds64.dataSizeLow,this.a),g(this.ds64.originationTime,this.a),g(this.ds64.sampleCountHigh,this.a),g(this.ds64.sampleCountLow,this.a)));this.j(a);return a};u.prototype.xa=function(){var a=[];if(this.cue.chunkId){var b=this.za();a=a.concat(x(this.cue.chunkId),
g(b.length+4,this.a),g(this.cue.dwCuePoints,this.a),b)}this.j(a);return a};u.prototype.za=function(){for(var a=[],b=0;b<this.cue.dwCuePoints;b++)a=a.concat(g(this.cue.points[b].dwName,this.a),g(this.cue.points[b].dwPosition,this.a),x(this.cue.points[b].fccChunk),g(this.cue.points[b].dwChunkStart,this.a),g(this.cue.points[b].dwBlockStart,this.a),g(this.cue.points[b].dwSampleOffset,this.a));return a};u.prototype.Ka=function(){var a=[];if(this.smpl.chunkId){var b=this.La();a=a.concat(x(this.smpl.chunkId),
g(b.length+36,this.a),g(this.smpl.dwManufacturer,this.a),g(this.smpl.dwProduct,this.a),g(this.smpl.dwSamplePeriod,this.a),g(this.smpl.dwMIDIUnityNote,this.a),g(this.smpl.dwMIDIPitchFraction,this.a),g(this.smpl.dwSMPTEFormat,this.a),g(this.smpl.dwSMPTEOffset,this.a),g(this.smpl.dwNumSampleLoops,this.a),g(this.smpl.dwSamplerData,this.a),b)}this.j(a);return a};u.prototype.La=function(){for(var a=[],b=0;b<this.smpl.dwNumSampleLoops;b++)a=a.concat(g(this.smpl.loops[b].dwName,this.a),g(this.smpl.loops[b].dwType,
this.a),g(this.smpl.loops[b].dwStart,this.a),g(this.smpl.loops[b].dwEnd,this.a),g(this.smpl.loops[b].dwFraction,this.a),g(this.smpl.loops[b].dwPlayCount,this.a));return a};u.prototype.Ca=function(){var a=[];this.fact.chunkId&&(a=a.concat(x(this.fact.chunkId),g(this.fact.chunkSize,this.a),g(this.fact.dwSampleLength,this.a)));this.j(a);return a};u.prototype.Da=function(){var a=[];if(this.fmt.chunkId)return a=a.concat(x(this.fmt.chunkId),g(this.fmt.chunkSize,this.a),g(this.fmt.audioFormat,this.g),g(this.fmt.numChannels,
this.g),g(this.fmt.sampleRate,this.a),g(this.fmt.byteRate,this.a),g(this.fmt.blockAlign,this.g),g(this.fmt.bitsPerSample,this.g),this.Ea()),this.j(a),a;throw Error('Could not find the "fmt " chunk');};u.prototype.Ea=function(){var a=[];16<this.fmt.chunkSize&&(a=a.concat(g(this.fmt.cbSize,this.g)));18<this.fmt.chunkSize&&(a=a.concat(g(this.fmt.validBitsPerSample,this.g)));20<this.fmt.chunkSize&&(a=a.concat(g(this.fmt.dwChannelMask,this.a)));24<this.fmt.chunkSize&&(a=a.concat(g(this.fmt.subformat[0],
this.a),g(this.fmt.subformat[1],this.a),g(this.fmt.subformat[2],this.a),g(this.fmt.subformat[3],this.a)));return a};u.prototype.Ga=function(){for(var a=[],b=0;b<this.LIST.length;b++){var c=this.Ia(this.LIST[b].subChunks,this.LIST[b].format);a=a.concat(x(this.LIST[b].chunkId),g(c.length+4,this.a),x(this.LIST[b].format),c)}this.j(a);return a};u.prototype.Ia=function(a,b){for(var c=[],d=0;d<a.length;d++){if("INFO"==b){var e=A(a[d].value,a[d].value.length);c=c.concat(x(a[d].chunkId),g(e.length+1,this.a),
e);c.push(0)}else"adtl"==b&&(-1<["labl","note"].indexOf(a[d].chunkId)?(e=A(a[d].value,a[d].value.length),c=c.concat(x(a[d].chunkId),g(e.length+5,this.a),g(a[d].dwName,this.a),e),c.push(0)):"ltxt"==a[d].chunkId&&(c=c.concat(this.Ja(a[d]))));this.j(c)}return c};u.prototype.Na=function(){var a=[];if(this._PMX.chunkId){var b=x(this._PMX.value);this._PMX.chunkSize=b.length;a=a.concat(x(this._PMX.chunkId),g(this._PMX.chunkSize,this.a),b)}this.j(a);return a};u.prototype.Ja=function(a){return x(a.chunkId).concat(g(a.value.length+
20,this.a),g(a.dwName,this.a),g(a.dwSampleLength,this.a),g(a.dwPurposeID,this.a),g(a.dwCountry,this.g),g(a.dwLanguage,this.g),g(a.dwDialect,this.g),g(a.dwCodePage,this.g),A(a.value,a.value.length))};u.prototype.Fa=function(){var a=[];if(this.junk.chunkId)return a.concat(x(this.junk.chunkId),g(this.junk.chunkData.length,this.a),this.junk.chunkData);this.j(a);return a};u.prototype.j=function(a){a.length%2&&a.push(0)};R(t,u);t.prototype.fromScratch=function(a,b,c,d,e){e=void 0===e?{}:e;this.S();this.U(a,
b,c,d,e)};t.prototype.fromBuffer=function(a,b){u.prototype.fromBuffer.call(this,a,void 0===b?!0:b);this.pa();this.Y()};t.prototype.toBuffer=function(){this.Z();return u.prototype.toBuffer.call(this)};t.prototype.getSamples=function(a,b){a=void 0===a?!1:a;b=void 0===b?Float64Array:b;var c=new b(this.data.samples.length/(this.f.h/8));N(this.data.samples,this.f,c);if(!a&&1<this.fmt.numChannels){var d=this.fmt.numChannels,e=b;e=void 0===e?Float64Array:e;for(var f=[],h=0;h<d;h++)f[h]=new e(c.length/d);
for(e=0;e<d;e++){h=0;for(var k=e;k<c.length;k+=d)f[e][h++]=c[k]}c=f}return c};t.prototype.getSample=function(a){a*=this.f.h/8;if(a+this.f.h/8>this.data.samples.length)throw Error("Range error");return Q(this.data.samples.slice(a,a+this.f.h/8),this.f)};t.prototype.setSample=function(a,b){a*=this.f.h/8;if(a+this.f.h/8>this.data.samples.length)throw Error("Range error");P([b],this.f,this.data.samples,void 0===a?0:a)};t.prototype.getiXML=function(){return this.iXML.value};t.prototype.setiXML=function(a){if("string"!==
typeof a)throw new TypeError("iXML value must be a string.");this.iXML.value=a;this.iXML.chunkId="iXML"};t.prototype.get_PMX=function(){return this._PMX.value};t.prototype.set_PMX=function(a){if("string"!==typeof a)throw new TypeError("_PMX value must be a string.");this._PMX.value=a;this._PMX.chunkId="_PMX"};t.prototype.U=function(a,b,c,d,e){e=void 0===e?{}:e;e.container||(e.container="RIFF");this.container=e.container;this.bitDepth=c;var f=[];if(0<d.length)if(d[0].constructor!==Number){f=new Float64Array(d[0].length*
d.length);for(var h=0,k=0,p=d[0].length;k<p;k++)for(var y=0,Na=d.length;y<Na;y++)f[h]=d[y][k],h++}else f=d;d=f;this.Y();f=this.f.h/8;this.data.samples=new Uint8Array(d.length*f);P(d,this.f,this.data.samples);this.Pa(c,a,b,f,this.data.samples.length,e);this.data.chunkId="data";this.data.chunkSize=this.data.samples.length;this.Z()};t.prototype.Pa=function(a,b,c,d,e,f){"4"==a?this.qa(a,b,c,d,e,f):"8a"==a||"8m"==a?this.ra(a,b,c,d,e,f):-1==Object.keys(this.N).indexOf(a)||2<b?this.sa(a,b,c,d,e,f):this.A(a,
b,c,d,e,f)};t.prototype.A=function(a,b,c,d,e,f){this.container=f.container;this.chunkSize=36+e;this.format="WAVE";this.bitDepth=a;this.fmt={chunkId:"fmt ",chunkSize:16,audioFormat:this.N[a]||65534,numChannels:b,sampleRate:c,byteRate:b*d*c,blockAlign:b*d,bitsPerSample:parseInt(a,10),cbSize:0,validBitsPerSample:0,dwChannelMask:0,subformat:[]}};t.prototype.qa=function(a,b,c,d,e,f){this.A(a,b,c,d,e,f);this.chunkSize=40+e;this.fmt.chunkSize=20;this.fmt.byteRate=4055;this.fmt.blockAlign=256;this.fmt.bitsPerSample=
4;this.fmt.cbSize=2;this.fmt.validBitsPerSample=505;this.fact={chunkId:"fact",chunkSize:4,dwSampleLength:2*e}};t.prototype.sa=function(a,b,c,d,e,f){this.A(a,b,c,d,e,f);this.chunkSize=60+e;this.fmt.chunkSize=40;this.fmt.bitsPerSample=(parseInt(a,10)-1|7)+1;this.fmt.cbSize=22;this.fmt.validBitsPerSample=parseInt(a,10);a=this.fmt;c=0;1===b?c=4:2===b?c=3:4===b?c=51:6===b?c=63:8===b&&(c=1599);a.dwChannelMask=c;this.fmt.subformat=[1,1048576,2852126848,1905997824]};t.prototype.ra=function(a,b,c,d,e,f){this.A(a,
b,c,d,e,f);this.chunkSize=40+e;this.fmt.chunkSize=20;this.fmt.cbSize=2;this.fmt.validBitsPerSample=8;this.fact={chunkId:"fact",chunkSize:4,dwSampleLength:e}};t.prototype.pa=function(){3===this.fmt.audioFormat&&32===this.fmt.bitsPerSample?this.bitDepth="32f":6===this.fmt.audioFormat?this.bitDepth="8a":7===this.fmt.audioFormat?this.bitDepth="8m":this.bitDepth=this.fmt.bitsPerSample.toString()};t.prototype.na=function(){if(!(this.N[this.bitDepth]||8<parseInt(this.bitDepth,10)&&54>parseInt(this.bitDepth,
10)))throw Error("Invalid bit depth.");};t.prototype.Y=function(){this.f={h:(parseInt(this.bitDepth,10)-1|7)+1,K:"32f"==this.bitDepth||"64"==this.bitDepth,C:"8"!=this.bitDepth,o:"RIFX"==this.container};-1<["4","8a","8m"].indexOf(this.bitDepth)&&(this.f.h=8,this.f.C=!1)};t.prototype.Z=function(){this.na();var a=this.fmt.numChannels;if(1>a||65535<a*this.fmt.bitsPerSample/8)throw Error("Invalid number of channels.");a=this.fmt.sampleRate;if(1>a||4294967295<this.fmt.bitsPerSample/8*this.fmt.numChannels*
a)throw Error("Invalid sample rate.");};R(z,t);z.prototype.getTag=function(a){a=this.I(a);return null!==a.w?this.LIST[a.LIST].subChunks[a.w].value:null};z.prototype.setTag=function(a,b){var c=a;if(c.constructor!==String)throw Error("Invalid tag name.");if(4>c.length)for(var d=0,e=4-c.length;d<e;d++)c+=" ";a=c;c=this.I(a);null!==c.w?(this.LIST[c.LIST].subChunks[c.w].chunkSize=b.length+1,this.LIST[c.LIST].subChunks[c.w].value=b):null!==c.LIST?this.LIST[c.LIST].subChunks.push({chunkId:a,chunkSize:b.length+
1,value:b}):(this.LIST.push({chunkId:"LIST",chunkSize:b.length+9,format:"INFO",subChunks:[]}),this.LIST[this.LIST.length-1].subChunks.push({chunkId:a,chunkSize:b.length+1,value:b}))};z.prototype.deleteTag=function(a){a=this.I(a);return null!==a.w?(this.LIST[a.LIST].subChunks.splice(a.w,1),!0):!1};z.prototype.listTags=function(){var a=this.Ha(),b={};if(null!==a)for(var c=0,d=this.LIST[a].subChunks.length;c<d;c++)b[this.LIST[a].subChunks[c].chunkId]=this.LIST[a].subChunks[c].value;return b};z.prototype.Ha=
function(){for(var a=null,b=0,c=this.LIST.length;b<c;b++)if("INFO"===this.LIST[b].format){a=b;break}return a};z.prototype.I=function(a){for(var b={LIST:null,w:null},c=0,d=this.LIST.length;c<d;c++)if("INFO"==this.LIST[c].format){b.LIST=c;d=0;for(var e=this.LIST[c].subChunks.length;d<e;d++)if(this.LIST[c].subChunks[d].chunkId==a){b.w=d;break}break}return b};R(r,z);r.prototype.listCuePoints=function(){for(var a=this.H(),b=0,c=a.length;b<c;b++)a[b].position=a[b].dwSampleOffset/this.fmt.sampleRate*1E3,
a[b].dwSampleLength?(a[b].end=a[b].dwSampleLength/this.fmt.sampleRate*1E3,a[b].end+=a[b].position):a[b].end=null,delete a[b].value;return a};r.prototype.setCuePoint=function(a){this.cue.chunkId="cue ";a.label||(a.label="");var b=this.H();this.F();this.cue.points=[];a.dwSampleOffset=a.position*this.fmt.sampleRate/1E3;a.dwSampleLength=0;a.end&&(a.dwSampleLength=a.end*this.fmt.sampleRate/1E3-a.dwSampleOffset);0===b.length?this.v(a,1):this.ia(b,a);this.cue.dwCuePoints=this.cue.points.length};r.prototype.deleteCuePoint=
function(a){this.cue.chunkId="cue ";var b=this.H();this.F();var c=this.cue.points.length;this.cue.points=[];for(var d=0;d<c;d++)d+1!==a&&this.v(b[d],d+1);this.cue.dwCuePoints=this.cue.points.length;this.cue.dwCuePoints?this.cue.chunkId="cue ":(this.cue.chunkId="",this.F())};r.prototype.updateLabel=function(a,b){var c=this.G();if(null!==c)for(var d=0,e=this.LIST[c].subChunks.length;d<e;d++)this.LIST[c].subChunks[d].dwName==a&&(this.LIST[c].subChunks[d].value=b)};r.prototype.H=function(){for(var a=
[],b=0;b<this.cue.points.length;b++){var c=this.cue.points[b],d=this.Aa(c.dwName);d.label=d.value?d.value:"";d.dwPosition=c.dwPosition;d.fccChunk=c.fccChunk;d.dwChunkStart=c.dwChunkStart;d.dwBlockStart=c.dwBlockStart;d.dwSampleOffset=c.dwSampleOffset;a.push(d)}return a};r.prototype.Aa=function(a){var b=this.G(),c={};null!==b&&this.da(c,b,a);return c};r.prototype.da=function(a,b,c){for(var d=0,e=this.LIST[b].subChunks.length;d<e;d++)if(this.LIST[b].subChunks[d].dwName==c){var f=this.LIST[b].subChunks[d];
a.value=f.value||a.value;a.dwName=f.dwName||0;a.dwSampleLength=f.dwSampleLength||0;a.dwPurposeID=f.dwPurposeID||0;a.dwCountry=f.dwCountry||0;a.dwLanguage=f.dwLanguage||0;a.dwDialect=f.dwDialect||0;a.dwCodePage=f.dwCodePage||0}};r.prototype.G=function(){for(var a=0,b=this.LIST.length;a<b;a++)if("adtl"==this.LIST[a].format)return a;return null};r.prototype.v=function(a,b){this.cue.points.push({dwName:b,dwPosition:a.dwPosition?a.dwPosition:0,fccChunk:a.fccChunk?a.fccChunk:"data",dwChunkStart:a.dwChunkStart?
a.dwChunkStart:0,dwBlockStart:a.dwBlockStart?a.dwBlockStart:0,dwSampleOffset:a.dwSampleOffset});this.ka(a,b)};r.prototype.ia=function(a,b){for(var c=!1,d=0;d<a.length;d++)a[d].dwSampleOffset>b.dwSampleOffset&&!c?(this.v(b,d+1),this.v(a[d],d+2),c=!0):this.v(a[d],c?d+2:d+1);c||this.v(b,this.cue.points.length+1)};r.prototype.F=function(){for(var a=0,b=this.LIST.length;a<b;a++)"adtl"==this.LIST[a].format&&this.LIST.splice(a)};r.prototype.ka=function(a,b){var c=this.G();null===c&&(this.LIST.push({chunkId:"LIST",
chunkSize:4,format:"adtl",subChunks:[]}),c=this.LIST.length-1);this.ja(c,a,b);a.dwSampleLength&&this.la(c,a,b)};r.prototype.ja=function(a,b,c){this.LIST[a].subChunks.push({chunkId:"labl",chunkSize:4,dwName:c,value:b.label});this.LIST[a].chunkSize+=12};r.prototype.la=function(a,b,c){this.LIST[a].subChunks.push({chunkId:"ltxt",chunkSize:20,dwName:c,dwSampleLength:b.dwSampleLength,dwPurposeID:b.dwPurposeID||0,dwCountry:b.dwCountry||0,dwLanguage:b.dwLanguage||0,dwDialect:b.dwDialect||0,dwCodePage:b.dwCodePage||
0,value:b.label});this.LIST[a].chunkSize+=28};v.prototype.G=function(a,b){return this.f(Math.round(this.j*a),b)};v.prototype.F=function(a,b){a*=this.j;var c=Math.floor(a);a-=c;return(1-a)*this.f(c,b)+a*this.f(c+1,b)};v.prototype.N=function(a,b){a*=this.j;var c=Math.floor(a),d=[this.u(c,b),this.u(c+1,b)],e=[this.f(c,b),this.f(c+1,b)];a-=c;c=a*a;var f=a*c;return(2*f-3*c+1)*e[0]+(f-2*c+a)*d[0]+(-2*f+3*c)*e[1]+(f-c)*d[1]};v.prototype.H=function(a,b){a*=this.j;var c=Math.floor(a),d=c-this.A+1;c+=this.A;
for(var e=0,f=d,h=d;d<=c?h<=c:h>=c;f=d<=c?++h:--h)e+=this.D(a-f)*this.f(f,b);return e};v.prototype.u=function(a,b){return this.I*(this.f(a+1,b)-this.f(a-1,b))/2};v.prototype.f=function(a,b){return 0<=a&&a<this.v?b[a]:b[this.l(a,this.v)]};q.prototype.filter=function(a){this.a.J[this.a.O]=a;for(var b=a=0,c=this.a.J.length;b<c;b++)a+=this.b[b]*this.a.J[(this.a.O+b)%this.a.J.length];this.a.O=(this.a.O+1)%this.a.J.length;return a};q.prototype.reset=function(){this.a=this.c()};q.prototype.c=function(){for(var a=
[],b=0;b<this.b.length-1;b++)a.push(0);return{J:a,O:0}};var Ma={point:!1,linear:!1,cubic:!0,sinc:!0},ma={point:71,linear:71,cubic:71,sinc:71};R(l,r);l.prototype.toRIFF=function(){this.l(this.fmt.numChannels,this.fmt.sampleRate,this.bitDepth,aa(this.data.samples,this.f))};l.prototype.toRIFX=function(){this.l(this.fmt.numChannels,this.fmt.sampleRate,this.bitDepth,aa(this.data.samples,this.f),{container:"RIFX"})};l.prototype.toIMAADPCM=function(){if(8E3!==this.fmt.sampleRate)throw Error("Only 8000 Hz files can be compressed as IMA-ADPCM.");
if(1!==this.fmt.numChannels)throw Error("Only mono files can be compressed as IMA-ADPCM.");this.D();var a=new Int16Array(this.P());N(this.data.samples,this.f,a);this.l(this.fmt.numChannels,this.fmt.sampleRate,"4",Ca(a),{container:this.u()})};l.prototype.fromIMAADPCM=function(a){a=void 0===a?"16":a;this.l(this.fmt.numChannels,this.fmt.sampleRate,"16",Ea(this.data.samples,this.fmt.blockAlign),{container:this.u()});"16"!=a&&this.toBitDepth(a)};l.prototype.toALaw=function(){this.D();var a=new Int16Array(this.P());
N(this.data.samples,this.f,a);this.l(this.fmt.numChannels,this.fmt.sampleRate,"8a",Fa(a),{container:this.u()})};l.prototype.fromALaw=function(a){a=void 0===a?"16":a;this.l(this.fmt.numChannels,this.fmt.sampleRate,"16",Ha(this.data.samples),{container:this.u()});"16"!=a&&this.toBitDepth(a)};l.prototype.toMuLaw=function(){this.D();var a=new Int16Array(this.P());N(this.data.samples,this.f,a);this.l(this.fmt.numChannels,this.fmt.sampleRate,"8m",Ia(a),{container:this.u()})};l.prototype.fromMuLaw=function(a){a=
void 0===a?"16":a;this.l(this.fmt.numChannels,this.fmt.sampleRate,"16",Ka(this.data.samples),{container:this.u()});"16"!=a&&this.toBitDepth(a)};l.prototype.toBitDepth=function(a,b){var c=a,d=this.bitDepth;void 0===b||b||("32f"!=a&&(c=this.f.h.toString()),d=""+this.f.h);this.R();var e=this.getSamples(!0),f=new Float64Array(e.length),h=d;if(-1<["32f","64"].indexOf(h)&&-1<["32f","64"].indexOf(c))f.set(e);else{ea(h);ea(c);d=Ba(h,c);var k={ca:Math.pow(2,parseInt(h,10))/2,aa:Math.pow(2,parseInt(c,10))/
2,ba:Math.pow(2,parseInt(h,10))/2-1,$:Math.pow(2,parseInt(c,10))/2-1};fa(h,e,!0);if(-1<["32f","64"].indexOf(h)){h=e.length;for(var p=0;p<h;p++)1<e[p]?e[p]=1:-1>e[p]&&(e[p]=-1)}for(h=0;h<e.length;h++)f[h]=d(e[h],k);fa(c,f,!1)}this.l(this.fmt.numChannels,this.fmt.sampleRate,a,f,{container:this.u()})};l.prototype.toSampleRate=function(a,b){b=void 0===b?{}:b;this.oa(a);var c=this.getSamples(),d=[];if(c.constructor===Float64Array)d=la(c,this.fmt.sampleRate,a,b);else for(var e=0;e<c.length;e++)d.push(la(c[e],
this.fmt.sampleRate,a,b));if("64"!==this.bitDepth&&"32f"!==this.bitDepth)if(d[0].constructor===Number)ka(d,this.f.h);else for(c=0;c<d.length;c++)ka(d[c],this.f.h);this.l(this.fmt.numChannels,a,this.bitDepth,d,{container:this.u()})};l.prototype.oa=function(a){if(1>a||4294967295<this.fmt.bitsPerSample/8*this.fmt.numChannels*a)throw Error("Invalid sample rate.");if(-1<["4","8a","8m"].indexOf(this.bitDepth))throw Error("wavefile can't change the sample rate of compressed files.");};l.prototype.D=function(){this.R();
"16"!=this.bitDepth&&this.toBitDepth("16")};l.prototype.R=function(){"8a"==this.bitDepth?this.fromALaw():"8m"==this.bitDepth?this.fromMuLaw():"4"==this.bitDepth&&this.fromIMAADPCM()};l.prototype.u=function(){return"RF64"==this.container?"RIFF":this.container};l.prototype.l=function(a,b,c,d,e){e=void 0===e?{}:e;var f=new r;Object.assign(this.fmt,f.fmt);Object.assign(this.fact,f.fact);Object.assign(this.ds64,f.ds64);Object.assign(this.data,f.data);this.U(a,b,c,d,e)};l.prototype.P=function(){var a=this.data.samples.length/
2;a%2&&a++;return a};R(m,l);m.prototype.fromBase64=function(a){this.fromBuffer(new Uint8Array(xa(a)))};m.prototype.toBase64=function(){for(var a=this.toBuffer(),b="",c=0;c<a.length;c+=3)b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a[c]>>2],b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(a[c]&3)<<4|a[c+1]>>4],b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(a[c+1]&15)<<2|a[c+2]>>6],b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a[c+
2]&63];2===a.length%3?b=b.substring(0,b.length-1)+"=":1===a.length%3&&(b=b.substring(0,b.length-2)+"==");return b};m.prototype.toDataURI=function(){return"data:audio/wav;base64,"+this.toBase64()};m.prototype.fromDataURI=function(a){this.fromBase64(a.replace("data:audio/wav;base64,",""))};n.WaveFile=m;Object.defineProperty(n,"__esModule",{value:!0})}
"object"===typeof exports&&"undefined"!==typeof module?U(exports):"function"===typeof define&&define.amd?define(["exports"],U):(T=T||self,U(T.wavefile={}));
try{if(!Uint8Array.prototype.slice)Object.defineProperty(Uint8Array.prototype,"slice",{value:function(begin,end){return new Uint8Array(Array.prototype.slice.call(this,begin,end))}})}catch(err){}var ca="function"==typeof Object.create?Object.create:function(n){function m(){}m.prototype=n;return new m},F;
if("function"==typeof Object.setPrototypeOf)F=Object.setPrototypeOf;else{var P;a:{var da={D:!0},pa={};try{pa.__proto__=da;P=pa.D;break a}catch(n){}P=!1}F=P?function(n,m){n.__proto__=m;if(n.__proto__!==m)throw new TypeError(n+" is not extensible");return n}:null}var qa=F;
function S(n,m){n.prototype=ca(m.prototype);n.prototype.constructor=n;if(qa)qa(n,m);else for(var l in m)if("prototype"!=l)if(Object.defineProperties){var p=Object.getOwnPropertyDescriptor(m,l);p&&Object.defineProperty(n,l,p)}else n[l]=m[l]}var ra="function"==typeof Object.defineProperties?Object.defineProperty:function(n,m,l){n!=Array.prototype&&n!=Object.prototype&&(n[m]=l.value)},sa="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this;
function T(n,m){if(m){for(var l=sa,p=n.split("."),y=0;y<p.length-1;y++){var v=p[y];v in l||(l[v]={});l=l[v]}p=p[p.length-1];y=l[p];v=m(y);v!=y&&null!=v&&ra(l,p,{configurable:!0,writable:!0,value:v})}}T("Object.is",function(n){return n?n:function(m,l){return m===l?0!==m||1/m===1/l:m!==m&&l!==l}});
T("Array.prototype.includes",function(n){return n?n:function(m,l){var p=this;p instanceof String&&(p=String(p));var y=p.length,v=l||0;for(0>v&&(v=Math.max(v+y,0));v<y;v++){var w=p[v];if(w===m||Object.is(w,m))return!0}return!1}});
T("String.prototype.codePointAt",function(n){return n?n:function(m){if(null==this)throw new TypeError("The 'this' value for String.prototype.codePointAt must not be null or undefined");var l=this.length;m=Number(m)||0;if(0<=m&&m<l){m|=0;var p=this.charCodeAt(m);if(55296>p||56319<p||m+1===l)return p;m=this.charCodeAt(m+1);return 56320>m||57343<m?p:1024*(p-55296)+m+9216}}});
var ta="function"==typeof Object.assign?Object.assign:function(n,m){for(var l=1;l<arguments.length;l++){var p=arguments[l];if(p)for(var y in p)Object.prototype.hasOwnProperty.call(p,y)&&(n[y]=p[y])}return n};T("Object.assign",function(n){return n||ta});var U=this;
function V(n){function m(a){a=void 0===a?null:a;var b=l.call(this)||this;a&&b.fromBuffer(a);return b}function l(){return w.apply(this,arguments)||this}function p(a,b,c){for(var d=[],e=0;e<a;e++)d.push(this.b({pa:b,oa:c,Q:.5/Math.sin(Math.PI/(2*a)*(e+.5))}));this.a=[];for(a=0;a<d.length;a++)this.a[a]={Ka:d[a].A[0],La:d[a].A[1],Ma:d[a].A[2],Ha:d[a].D[0],Ia:d[a].D[1],k:d[a].k,z:[0,0]}}function y(a,b,c){c=2*Math.PI*c/b;b=0;this.a=[];for(var d=0;d<=a;d++)0===d-a/2?this.a[d]=c:(this.a[d]=Math.sin(c*(d-
a/2))/(d-a/2),this.a[d]*=.54-.46*Math.cos(2*Math.PI*d/a)),b+=this.a[d];for(c=0;c<=a;c++)this.a[c]/=b;this.z=this.b()}function v(a,b,c){this.v=a;this.j=(a-1)/b;this.P=this.K;"point"===c.method?this.P=this.J:"linear"===c.method?this.P=this.I:"cubic"===c.method&&(this.P=this.C);this.l=ua;"periodic"===c.clip?(this.j=a/b,this.l=ea):"mirror"===c.clip&&(this.l=va);this.L=1-Math.max(0,Math.min(1,c.tension||0));this.B=c.sincFilterSize||1;this.H=wa(c.sincWindow||xa)}function w(){return D.apply(this,arguments)||
this}function D(){return t.apply(this,arguments)||this}function t(){var a=r.call(this)||this;a.bitDepth="0";a.f={h:0,o:!1,G:!1,O:!1};a.H={4:17,8:1,"8a":6,"8m":7,16:1,24:1,32:1,"32f":3,64:3};return a}function r(){return u.apply(this,arguments)||this}function u(){var a=B.call(this)||this;a.$.push("RF64");a.fmt={chunkId:"",chunkSize:0,audioFormat:0,numChannels:0,sampleRate:0,byteRate:0,blockAlign:0,bitsPerSample:0,cbSize:0,validBitsPerSample:0,dwChannelMask:0,subformat:[]};a.fact={chunkId:"",chunkSize:0,
dwSampleLength:0};a.cue={chunkId:"",chunkSize:0,dwCuePoints:0,points:[]};a.smpl={chunkId:"",chunkSize:0,dwManufacturer:0,dwProduct:0,dwSamplePeriod:0,dwMIDIUnityNote:0,dwMIDIPitchFraction:0,dwSMPTEFormat:0,dwSMPTEOffset:0,dwNumSampleLoops:0,dwSamplerData:0,loops:[]};a.bext={chunkId:"",chunkSize:0,description:"",originator:"",originatorReference:"",originationDate:"",originationTime:"",timeReference:[0,0],version:0,UMID:"",loudnessValue:0,loudnessRange:0,maxTruePeakLevel:0,maxMomentaryLoudness:0,maxShortTermLoudness:0,
reserved:"",codingHistory:""};a.iXML={chunkId:"",chunkSize:0,value:""};a.ds64={chunkId:"",chunkSize:0,riffSizeHigh:0,riffSizeLow:0,dataSizeHigh:0,dataSizeLow:0,originationTime:0,sampleCountHigh:0,sampleCountLow:0};a.data={chunkId:"",chunkSize:0,samples:new Uint8Array(0)};a.LIST=[];a.junk={chunkId:"",chunkSize:0,chunkData:[]};a._PMX={chunkId:"",chunkSize:0,value:""};a.g={h:16,o:!1,G:!1,O:!1};return a}function B(){this.container="";this.chunkSize=0;this.format="";this.Z={};this.c=0;this.a={h:32,o:!1,
G:!1,O:!1};this.$=["RIFF","RIFX"]}function J(a,b,c){this.a=this.c(a,b,c);this.offset=Math.ceil(a/8)}function N(a){a=C.call(this,a)||this;a.max=Math.pow(2,a.h)/2-1;a.min=-a.max-1;return a}function C(a){this.h=a;this.b=8>a?1:Math.ceil(a/8);this.max=Math.pow(2,a)-1;this.min=0;a=8-((a-1|7)+1-a);this.f=Math.pow(2,0<a?a:8)-1}function K(a,b){this.b=a;this.c=b;this.a=(1<<a-1)-1;this.f=Math.ceil((a+b)/8);this.g=Math.pow(2,this.a+1);this.i=a+b;this.j=Math.pow(2,-(8*this.f-1-a))}function ya(a){for(var b=new Uint8Array(256),
c=0;64>c;c++)b["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(c)]=c;c=.75*a.length;"="===a[a.length-1]&&(c--,"="===a[a.length-2]&&c--);c=new ArrayBuffer(c);for(var d=new Uint8Array(c),e=0,f=0;e<a.length;e+=4){var g=b[a.charCodeAt(e)],k=b[a.charCodeAt(e+1)],q=b[a.charCodeAt(e+2)],z=b[a.charCodeAt(e+3)];d[f++]=g<<2|k>>4;d[f++]=(k&15)<<4|q>>2;d[f++]=(q&3)<<6|z&63}return c}function za(a,b){return a=0<a?parseInt(a/b.fa*b.da,10):parseInt(a/b.ga*b.ea,10)}function Aa(a,b){return parseInt(0<
a?a*b.da:a*b.ea,10)}function Ba(a,b){return 0<a?a/b.fa:a/b.ga}function Ca(a,b){function c(d){return d}a!=b&&(c=["32f","64"].includes(a)?Aa:["32f","64"].includes(b)?Ba:za);return c}function fa(a){if("32f"!=a&&"64"!=a&&("8">parseInt(a,10)||"53"<parseInt(a,10)))throw Error("Invalid bit depth.");}function ha(a,b,c){if("8"==a)for(a=c?-128:128,c=0;c<b.length;c++)b[c]=b[c]+=a}function Da(a){for(var b=new Uint8Array(a.length),c=[],d=0,e=0,f=0;f<a.length;f++)0==f%505&&0!=f&&(b.set(Ea(c),d),d+=256,c=[],e++),
c.push(a[f]);a=a.length/2;a%2&&a++;return b.slice(0,a+512+4*e)}function Fa(a,b){b=void 0===b?256:b;for(var c=new Int16Array(2*a.length),d=[],e=0,f=0;f<a.length;f++){if(0==f%b&&0!=f){var g=d[1]<<8|d[0];E=32768<g?g-65536:g;G=d[2];L=W[G];g=[E,E];for(var k=4;k<d.length;k++){var q=d[k],z=q>>4;g.push(ia(z<<4^q));g.push(ia(z))}d=g;c.set(d,e);e+=d.length;d=[]}d.push(a[f])}return c}function Ea(a){var b=a[0];X(b);var c=[];c.push(b&255);c.push(b>>8&255);c.push(I);c.push(0);for(b=3;b<a.length;b+=2){var d=X(a[b]),
e=X(a[b+1]);c.push(e<<4|d)}return c}function X(a){var b=a-H;0<=b?a=0:(a=8,b=-b);var c=W[I],d=c>>3;b>c&&(a|=4,b-=c,d+=c);c>>=1;b>c&&(a|=2,b-=c,d+=c);c>>=1;b>c&&(a|=1,d+=c);b=a;H=b&8?H-d:H+d;-32768>H?H=-32768:32767<H&&(H=32767);I+=ja[b&7];0>I?I=0:88<I&&(I=88);return a}function ia(a){var b=0;a&4&&(b+=L);a&2&&(b+=L>>1);a&1&&(b+=L>>2);b+=L>>3;a&8&&(b=-b);E+=b;32767<E?E=32767:-32767>E&&(E=-32767);G+=ja[a];0>G?G=0:88<G&&(G=88);L=W[G];return E}function Ga(a){for(var b=new Uint8Array(a.length),c=0;c<a.length;c++){var d=
c;var e=a[c];e=-32768==e?-32767:e;var f=~e>>8&128;f||(e*=-1);32635<e&&(e=32635);if(256<=e){var g=Ha[e>>8&127];e=g<<4|e>>g+3&15}else e>>=4;b[d]=e^f^85}return b}function Ia(a){for(var b=new Int16Array(a.length),c=0;c<a.length;c++){var d=c,e=a[c],f=0;e^=85;e&128&&(e&=-129,f=-1);var g=((e&240)>>4)+4;e=4!=g?1<<g|(e&15)<<g-4|1<<g-5:e<<1|1;b[d]=-8*(0===f?e:-e)}return b}function Ja(a){for(var b=new Uint8Array(a.length),c=0;c<a.length;c++){var d=c,e=a[c];var f=e>>8&128;0!=f&&(e=-e);32635<e&&(e=32635);e+=132;
var g=Ka[e>>7&255];b[d]=~(f|g<<4|e>>g+3&15)}return b}function La(a){for(var b=new Int16Array(a.length),c=0;c<a.length;c++){var d=c,e=a[c];e=~e;var f=e>>4&7;f=Ma[f]+((e&15)<<f+3);0!=(e&128)&&(f=-f);b[d]=f}return b}function Y(a,b,c,d){d=void 0===d?a.length:d;if(d%b)throw Error("Bad buffer length.");for(c=void 0===c?0:c;c<d;c+=b){var e=a,f=b,g=c;f--;for(var k=0;k<f;k++){var q=e[g+k];e[g+k]=e[g+f];e[g+f]=q;f--}}}function Z(a,b,c){c=void 0===c?0:c;for(var d=0,e=a.length;d<e;d++){var f=a.codePointAt(d);
if(128>f)b[c]=f,c++;else{var g=0,k=0;2047>=f?(g=1,k=192):65535>=f?(g=2,k=224):1114111>=f&&(g=3,k=240,d++);b[c]=(f>>6*g)+k;for(c++;0<g;)b[c]=128|f>>6*(g-1)&63,c++,g--}}return c}function aa(a){var b=Math.floor(a);a-=b;return.5>a?b:.5<a?b+1:b%2?b+1:b}function M(a,b,c){c=void 0===c?a.length:c;var d=void 0===b?0:b;c=void 0===c?a.length:c;b="";for(d=void 0===d?0:d;d<c;){var e=128,f=191,g=!1,k=a[d++];if(0<=k&&127>=k)b+=String.fromCharCode(k);else{var q=0;194<=k&&223>=k?q=1:224<=k&&239>=k?(q=2,224===a[d]&&
(e=160),237===a[d]&&(f=159)):240<=k&&244>=k?(q=3,240===a[d]&&(e=144),244===a[d]&&(f=143)):g=!0;k&=(1<<8-q-1)-1;for(var z=0;z<q;z++){if(a[d]<e||a[d]>f)g=!0;k=k<<6|a[d]&63;d++}g?b+=String.fromCharCode(65533):65535>=k?b+=String.fromCharCode(k):(k-=65536,b+=String.fromCharCode((k>>10&1023)+55296,(k&1023)+56320))}}return b}function x(a){var b=[];Z(a,b,0);return b}function Q(a,b,c,d){d=void 0===d?0:d;b=b||{};var e=new J(b.h,b.O,b.G),f=0,g=d;try{for(var k=a.length;f<k;f++)d=e.F(c,a[f],d);b.o&&Y(c,e.offset,
g,d)}catch(q){ka(q,a[f],f)}return d}function O(a,b,c,d,e,f){d=void 0===d?0:d;e=void 0===e?a.length:e;f=void 0===f?!1:f;b=b||{};var g=new J(b.h,b.O,b.G),k=g.offset,q=(e-d)%k;if(f&&(q||a.length<k))throw Error("Bad buffer length");e-=q;f=0;q=d;try{for(b.o&&Y(a,k,d,e);q<e;q+=k,f++)c[f]=g.R(a,q);b.o&&Y(a,k,d,e)}catch(z){ka(z,a.slice(q,q+k),q)}}function h(a,b){var c=[];Q([a],b,c,0);return c}function ba(a,b,c,d,e){d=void 0===d?a.length:d;var f=[];O(a,b,f,void 0===c?0:c,d,void 0===e?!1:e);return f}function R(a,
b,c){c=void 0===c?0:c;return ba(a,b,c,c+Math.ceil(b.h/8),!0)[0]}function ka(a,b,c){a.message=a.constructor.name+" at index "+c+": "+b;throw a;}function A(a,b,c){c=void 0===c?!0:c;a=x(a);if(c)for(c=a.length;c<b;c++)a.push(0);return a}function la(a,b){for(var c=8===b?255:Math.pow(2,b)/2-1,d=8===b?0:-c-1,e=0,f=a.length;e<f;e++)a[e]=Math.round(a[e]),a[e]>c?a[e]=c:a[e]<d&&(a[e]=d)}function xa(a){return Math.exp(-a*a)}function wa(a){return function(b){return(0===b?1:Math.sin(Math.PI*b)/(Math.PI*b))*a(b)}}
function ua(a,b){return Math.max(0,Math.min(a,b-1))}function ea(a,b){a%=b;0>a&&(a+=b);return a}function va(a,b){var c=2*(b-1);a=ea(a,c);a>b-1&&(a=c-a);return a}function ma(a,b,c,d){d=void 0===d?{}:d;var e=new Float64Array(a.length*((c-b)/b+1));d.method=d.method||"cubic";var f=new v(a.length,e.length,{method:d.method,tension:d.tension||0,sincFilterSize:d.sincFilterSize||6,sincWindow:d.sincWindow||void 0,clip:d.clip||"mirror"});void 0===d.LPF&&(d.LPF=Na[d.method]);if(d.LPF){d.LPFType=d.LPFType||"IIR";
var g=Oa[d.LPFType];if(c>b){b=new g(d.LPForder||na[d.LPFType],c,b/2);c=0;for(d=e.length;c<d;c++)e[c]=b.filter(f.P(c,a));b.reset();for(a=e.length-1;0<=a;a--)e[a]=b.filter(e[a])}else{b=new g(d.LPForder||na[d.LPFType],b,c/2);c=0;for(d=a.length;c<d;c++)a[c]=b.filter(a[c]);b.reset();for(c=a.length-1;0<=c;c--)a[c]=b.filter(a[c]);oa(a,e,f)}}else oa(a,e,f);return e}function oa(a,b,c){for(var d=0,e=b.length;d<e;d++)b[d]=c.P(d,a)}var ja=[-1,-1,-1,-1,2,4,6,8,-1,-1,-1,-1,2,4,6,8],W=[7,8,9,10,11,12,13,14,16,17,
19,21,23,25,28,31,34,37,41,45,50,55,60,66,73,80,88,97,107,118,130,143,157,173,190,209,230,253,279,307,337,371,408,449,494,544,598,658,724,796,876,963,1060,1166,1282,1411,1552,1707,1878,2066,2272,2499,2749,3024,3327,3660,4026,4428,4871,5358,5894,6484,7132,7845,8630,9493,10442,11487,12635,13899,15289,16818,18500,20350,22385,24623,27086,29794,32767],H=0,I=0,E=0,G=0,L=7,Ha=[1,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],Ka=[0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],Ma=[0,132,396,924,1980,4092,8316,16764];K.prototype.F=function(a,b,c){if("number"!=typeof b)throw new TypeError;Math.abs(b)>this.g-2*this.i&&(b=0>b?-Infinity:Infinity);var d=0>((b=+b)||1/b)?1:0>b?1:0;b=Math.abs(b);var e=Math.min(Math.floor(Math.log(b)/Math.LN2),1023),f=aa(b/Math.pow(2,e)*Math.pow(2,this.c));b!==b?(f=Math.pow(2,this.c-1),e=(1<<this.b)-1):
0!==b&&(b>=Math.pow(2,1-this.a)?(2<=f/Math.pow(2,this.c)&&(e+=1,f=1),e>this.a?(e=(1<<this.b)-1,f=0):(e+=this.a,f=aa(f)-Math.pow(2,this.c))):(f=aa(b/Math.pow(2,1-this.a-this.c)),e=0));return this.m(a,c,d,e,f)};K.prototype.R=function(a,b){for(var c=(1<<this.b)-1,d="",e=this.f-1;0<=e;e--){var f=a[e+b].toString(2);d+="00000000".substring(f.length)+f}e="1"==d.charAt(0)?-1:1;d=d.substring(1);f=parseInt(d.substring(0,this.b),2);d=d.substring(this.b);if(f==c)return 0!==parseInt(d,2)?NaN:Infinity*e;0===f?
(f+=1,c=parseInt(d,2)):c=parseInt("1"+d,2);return e*c*this.j*Math.pow(2,f-this.a)};K.prototype.m=function(a,b,c,d,e){var f=[];f.push(c);for(c=this.b;0<c;--c)f[c]=d%2?1:0,d=Math.floor(d/2);d=f.length;for(c=this.c;0<c;--c)f[d+c]=e%2?1:0,e=Math.floor(e/2);e=f.join("");f=this.f+b-1;for(d=b;f>=b;)a[f]=parseInt(e.substring(0,8),2),e=e.substring(8),f--,d++;return d};C.prototype.F=function(a,b,c){c=void 0===c?0:c;if(b!==b||"number"!=typeof b)throw new TypeError;this.a(b);return this.g(a,b,c)};C.prototype.R=
function(a,b){var c=this.c(a,void 0===b?0:b);this.a(c);return c};C.prototype.c=function(a,b){b=void 0===b?0:b;for(var c=0,d=0;d<this.b;d++)c+=a[b+d]*Math.pow(256,d);return c};C.prototype.a=function(a){if(a>this.max||a<this.min)throw new RangeError;};C.prototype.g=function(a,b,c){c=void 0===c?0:c;a[c]=(0>b?b+Math.pow(2,this.h):b)&255;c++;for(var d=this.b,e=2;e<d;e++)a[c]=Math.floor(b/Math.pow(2,8*(e-1)))&255,c++;8<this.h&&(a[c]=Math.floor(b/Math.pow(2,8*(this.b-1)))&this.f,c++);return c};S(N,C);N.prototype.F=
function(a,b,c){return C.prototype.F.call(this,a,b,void 0===c?0:c)};N.prototype.R=function(a,b){var c=C.prototype.c.call(this,a,void 0===b?0:b);c=this.i(c);this.a(c);return c};N.prototype.i=function(a){a>this.max&&(a-=2*this.max+2);return a};J.prototype.R=function(a,b){return this.a.R(a,void 0===b?0:b)};J.prototype.F=function(a,b,c){return this.a.F(a,b,void 0===c?0:c)};J.prototype.c=function(a,b,c){if(b){if(!a||16!==a&&32!==a&&64!==a)throw Error("Unsupported type: float, bits: "+a);return this.b(a)}if(!a||
1>a||53<a)throw Error("Unsupported type: int, bits: "+a);return c?new N(a):new C(a)};J.prototype.b=function(a){return 16===a?new K(5,11):32===a?new K(8,23):new K(11,52)};B.prototype.wa=function(a){this.c=0;this.container=this.s(a,4);if(-1===this.$.indexOf(this.container))throw Error("Not a supported format.");this.a.o="RIFX"===this.container;this.chunkSize=this.b(a);this.format=this.s(a,4);this.Z={chunkId:this.container,chunkSize:this.chunkSize,format:this.format,subChunks:this.W(a)}};B.prototype.m=
function(a,b){b=void 0===b?!1:b;for(var c=this.Z.subChunks,d=[],e=0;e<c.length;e++)if(c[e].chunkId==a)if(b)d.push(c[e]);else return c[e];return"LIST"==a?d.length?d:null:null};B.prototype.s=function(a,b){var c=M(a,this.c,this.c+b);this.c+=b;return c};B.prototype.b=function(a){a=R(a,this.a,this.c);this.c+=4;return a};B.prototype.W=function(a){for(var b=[],c=this.c;c<=a.length-8;)b.push(this.ab(a,c)),c+=8+b[b.length-1].chunkSize,c=c%2?c+1:c;return b};B.prototype.ab=function(a,b){var c={chunkId:this.Fa(a,
b),chunkSize:this.Ga(a,b)};"LIST"==c.chunkId?(c.format=M(a,b+8,b+12),this.c+=4,c.subChunks=this.W(a)):(this.c=b+8+(c.chunkSize%2?c.chunkSize+1:c.chunkSize),c.chunkData={start:b+8,end:this.c});return c};B.prototype.Fa=function(a,b){this.c+=4;return M(a,b,b+4)};B.prototype.Ga=function(a,b){this.c+=4;return R(a,this.a,b+4)};S(u,B);u.prototype.fromBuffer=function(a,b){b=void 0===b?!0:b;this.V();this.wa(a);this.g.o=this.a.o;if("WAVE"!=this.format)throw Error('Could not find the "WAVE" format identifier');
this.ib(a);this.kb(a);this.jb(a);this.fb(a);this.ra(a);this.gb(a);this.na(a);this.hb(a,b);this.ia(a);this.ja(a);this.qa(a)};u.prototype.V=function(){var a=new u;Object.assign(this.fmt,a.fmt);Object.assign(this.fact,a.fact);Object.assign(this.cue,a.cue);Object.assign(this.smpl,a.smpl);Object.assign(this.bext,a.bext);Object.assign(this.iXML,a.iXML);Object.assign(this.ds64,a.ds64);Object.assign(this.data,a.data);this.LIST=[];Object.assign(this.junk,a.junk);Object.assign(this._PMX,a._PMX)};u.prototype.kb=
function(a){var b=this.m("fmt ");if(b)this.c=b.chunkData.start,this.fmt.chunkId=b.chunkId,this.fmt.chunkSize=b.chunkSize,this.fmt.audioFormat=this.i(a),this.fmt.numChannels=this.i(a),this.fmt.sampleRate=this.b(a),this.fmt.byteRate=this.b(a),this.fmt.blockAlign=this.i(a),this.fmt.bitsPerSample=this.i(a),this.lb(a);else throw Error('Could not find the "fmt " chunk');};u.prototype.lb=function(a){16<this.fmt.chunkSize&&(this.fmt.cbSize=this.i(a),18<this.fmt.chunkSize&&(this.fmt.validBitsPerSample=this.i(a),
20<this.fmt.chunkSize&&(this.fmt.dwChannelMask=this.b(a),this.fmt.subformat=[this.b(a),this.b(a),this.b(a),this.b(a)])))};u.prototype.jb=function(a){var b=this.m("fact");b&&(this.c=b.chunkData.start,this.fact.chunkId=b.chunkId,this.fact.chunkSize=b.chunkSize,this.fact.dwSampleLength=this.b(a))};u.prototype.gb=function(a){var b=this.m("cue ");if(b)for(this.c=b.chunkData.start,this.cue.chunkId=b.chunkId,this.cue.chunkSize=b.chunkSize,this.cue.dwCuePoints=this.b(a),b=0;b<this.cue.dwCuePoints;b++)this.cue.points.push({dwName:this.b(a),
dwPosition:this.b(a),fccChunk:this.s(a,4),dwChunkStart:this.b(a),dwBlockStart:this.b(a),dwSampleOffset:this.b(a)})};u.prototype.na=function(a){var b=this.m("smpl");if(b)for(this.c=b.chunkData.start,this.smpl.chunkId=b.chunkId,this.smpl.chunkSize=b.chunkSize,this.smpl.dwManufacturer=this.b(a),this.smpl.dwProduct=this.b(a),this.smpl.dwSamplePeriod=this.b(a),this.smpl.dwMIDIUnityNote=this.b(a),this.smpl.dwMIDIPitchFraction=this.b(a),this.smpl.dwSMPTEFormat=this.b(a),this.smpl.dwSMPTEOffset=this.b(a),
this.smpl.dwNumSampleLoops=this.b(a),this.smpl.dwSamplerData=this.b(a),b=0;b<this.smpl.dwNumSampleLoops;b++)this.smpl.loops.push({dwName:this.b(a),dwType:this.b(a),dwStart:this.b(a),dwEnd:this.b(a),dwFraction:this.b(a),dwPlayCount:this.b(a)})};u.prototype.hb=function(a,b){var c=this.m("data");if(c)this.data.chunkId="data",this.data.chunkSize=c.chunkSize,b&&(this.data.samples=a.slice(c.chunkData.start,c.chunkData.end));else throw Error('Could not find the "data" chunk');};u.prototype.fb=function(a){var b=
this.m("bext");b&&(this.c=b.chunkData.start,this.bext.chunkId=b.chunkId,this.bext.chunkSize=b.chunkSize,this.bext.description=this.s(a,256),this.bext.originator=this.s(a,32),this.bext.originatorReference=this.s(a,32),this.bext.originationDate=this.s(a,10),this.bext.originationTime=this.s(a,8),this.bext.timeReference=[this.b(a),this.b(a)],this.bext.version=this.i(a),this.bext.UMID=this.s(a,64),this.bext.loudnessValue=this.i(a),this.bext.loudnessRange=this.i(a),this.bext.maxTruePeakLevel=this.i(a),
this.bext.maxMomentaryLoudness=this.i(a),this.bext.maxShortTermLoudness=this.i(a),this.bext.reserved=this.s(a,180),this.bext.codingHistory=this.s(a,this.bext.chunkSize-602))};u.prototype.ra=function(a){var b=this.m("iXML");b&&(this.c=b.chunkData.start,this.iXML.chunkId=b.chunkId,this.iXML.chunkSize=b.chunkSize,this.iXML.value=M(a,this.c,this.c+this.iXML.chunkSize))};u.prototype.ib=function(a){var b=this.m("ds64");if(b)this.c=b.chunkData.start,this.ds64.chunkId=b.chunkId,this.ds64.chunkSize=b.chunkSize,
this.ds64.riffSizeHigh=this.b(a),this.ds64.riffSizeLow=this.b(a),this.ds64.dataSizeHigh=this.b(a),this.ds64.dataSizeLow=this.b(a),this.ds64.originationTime=this.b(a),this.ds64.sampleCountHigh=this.b(a),this.ds64.sampleCountLow=this.b(a);else if("RF64"==this.container)throw Error('Could not find the "ds64" chunk');};u.prototype.ja=function(a){var b=this.m("LIST",!0);if(null!==b)for(var c=0;c<b.length;c++){var d=b[c];this.LIST.push({chunkId:d.chunkId,chunkSize:d.chunkSize,format:d.format,subChunks:[]});
for(var e=0;e<d.subChunks.length;e++)this.la(d.subChunks[e],d.format,a)}};u.prototype.la=function(a,b,c){"adtl"==b?-1<["labl","note","ltxt"].indexOf(a.chunkId)&&this.ma(c,a):"INFO"==b&&this.ka(c,a)};u.prototype.ma=function(a,b){this.c=b.chunkData.start;var c={chunkId:b.chunkId,chunkSize:b.chunkSize,dwName:this.b(a)};"ltxt"==b.chunkId?(c.dwSampleLength=this.b(a),c.dwPurposeID=this.b(a),c.dwCountry=this.i(a),c.dwLanguage=this.i(a),c.dwDialect=this.i(a),c.dwCodePage=this.i(a),c.value=""):c.value=this.Y(a,
this.c);this.LIST[this.LIST.length-1].subChunks.push(c)};u.prototype.ka=function(a,b){this.c=b.chunkData.start;this.LIST[this.LIST.length-1].subChunks.push({chunkId:b.chunkId,chunkSize:b.chunkSize,value:this.Y(a,this.c)})};u.prototype.ia=function(a){var b=this.m("junk");b&&(this.junk={chunkId:b.chunkId,chunkSize:b.chunkSize,chunkData:[].slice.call(a.slice(b.chunkData.start,b.chunkData.end))})};u.prototype.qa=function(a){var b=this.m("_PMX");b&&(this.c=b.chunkData.start,this._PMX.chunkId=b.chunkId,
this._PMX.chunkSize=b.chunkSize,this._PMX.value=M(a,this.c,this.c+this._PMX.chunkSize))};u.prototype.Y=function(a,b){for(var c=b=void 0===b?0:b;c<a.length&&(this.c++,0!==a[c]);c++);return M(a,b,this.c-1)};u.prototype.i=function(a){a=R(a,this.g,this.c);this.c+=2;return a};S(r,u);r.prototype.toBuffer=function(){this.g.o="RIFX"===this.container;this.a.o=this.g.o;for(var a=[this.Ta(),this.Pa(),this.Ea(),this.cb(),this.Ra(),this.Qa(),x(this.data.chunkId),h(this.data.samples.length,this.a),this.data.samples,
this.ha(),this.Za(),this.Ua(),this.bb()],b=0,c=0;c<a.length;c++)b+=a[c].length;c=new Uint8Array(b+12);var d=Z(this.container,c,0);d=Q([b+4],this.a,c,void 0===d?0:d);d=Z(this.format,c,void 0===d?0:d);for(b=0;b<a.length;b++)c.set(a[b],d),d+=a[b].length;return c};r.prototype.Ea=function(){var a=[];this.Da();this.bext.chunkId&&(this.bext.chunkSize=602+this.bext.codingHistory.length,a=a.concat(x(this.bext.chunkId),h(602+this.bext.codingHistory.length,this.a),A(this.bext.description,256),A(this.bext.originator,
32),A(this.bext.originatorReference,32),A(this.bext.originationDate,10),A(this.bext.originationTime,8),h(this.bext.timeReference[0],this.a),h(this.bext.timeReference[1],this.a),h(this.bext.version,this.g),A(this.bext.UMID,64),h(this.bext.loudnessValue,this.g),h(this.bext.loudnessRange,this.g),h(this.bext.maxTruePeakLevel,this.g),h(this.bext.maxMomentaryLoudness,this.g),h(this.bext.maxShortTermLoudness,this.g),A(this.bext.reserved,180),A(this.bext.codingHistory,this.bext.codingHistory.length)));this.j(a);
return a};r.prototype.Da=function(){for(var a in this.bext)if(this.bext.hasOwnProperty(a)&&this.bext[a]&&"timeReference"!=a){this.bext.chunkId="bext";break}if(this.bext.timeReference[0]||this.bext.timeReference[1])this.bext.chunkId="bext"};r.prototype.cb=function(){var a=[];if(this.iXML.chunkId){var b=x(this.iXML.value);this.iXML.chunkSize=b.length;a=a.concat(x(this.iXML.chunkId),h(this.iXML.chunkSize,this.a),b)}this.j(a);return a};r.prototype.Pa=function(){var a=[];this.ds64.chunkId&&(a=a.concat(x(this.ds64.chunkId),
h(this.ds64.chunkSize,this.a),h(this.ds64.riffSizeHigh,this.a),h(this.ds64.riffSizeLow,this.a),h(this.ds64.dataSizeHigh,this.a),h(this.ds64.dataSizeLow,this.a),h(this.ds64.originationTime,this.a),h(this.ds64.sampleCountHigh,this.a),h(this.ds64.sampleCountLow,this.a)));this.j(a);return a};r.prototype.ha=function(){var a=[];if(this.cue.chunkId){var b=this.Na();a=a.concat(x(this.cue.chunkId),h(b.length+4,this.a),h(this.cue.dwCuePoints,this.a),b)}this.j(a);return a};r.prototype.Na=function(){for(var a=
[],b=0;b<this.cue.dwCuePoints;b++)a=a.concat(h(this.cue.points[b].dwName,this.a),h(this.cue.points[b].dwPosition,this.a),x(this.cue.points[b].fccChunk),h(this.cue.points[b].dwChunkStart,this.a),h(this.cue.points[b].dwBlockStart,this.a),h(this.cue.points[b].dwSampleOffset,this.a));return a};r.prototype.Za=function(){var a=[];if(this.smpl.chunkId){var b=this.$a();a=a.concat(x(this.smpl.chunkId),h(b.length+36,this.a),h(this.smpl.dwManufacturer,this.a),h(this.smpl.dwProduct,this.a),h(this.smpl.dwSamplePeriod,
this.a),h(this.smpl.dwMIDIUnityNote,this.a),h(this.smpl.dwMIDIPitchFraction,this.a),h(this.smpl.dwSMPTEFormat,this.a),h(this.smpl.dwSMPTEOffset,this.a),h(this.smpl.dwNumSampleLoops,this.a),h(this.smpl.dwSamplerData,this.a),b)}this.j(a);return a};r.prototype.$a=function(){for(var a=[],b=0;b<this.smpl.dwNumSampleLoops;b++)a=a.concat(h(this.smpl.loops[b].dwName,this.a),h(this.smpl.loops[b].dwType,this.a),h(this.smpl.loops[b].dwStart,this.a),h(this.smpl.loops[b].dwEnd,this.a),h(this.smpl.loops[b].dwFraction,
this.a),h(this.smpl.loops[b].dwPlayCount,this.a));return a};r.prototype.Qa=function(){var a=[];this.fact.chunkId&&(a=a.concat(x(this.fact.chunkId),h(this.fact.chunkSize,this.a),h(this.fact.dwSampleLength,this.a)));this.j(a);return a};r.prototype.Ra=function(){var a=[];if(this.fmt.chunkId)return a=a.concat(x(this.fmt.chunkId),h(this.fmt.chunkSize,this.a),h(this.fmt.audioFormat,this.g),h(this.fmt.numChannels,this.g),h(this.fmt.sampleRate,this.a),h(this.fmt.byteRate,this.a),h(this.fmt.blockAlign,this.g),
h(this.fmt.bitsPerSample,this.g),this.Sa()),this.j(a),a;throw Error('Could not find the "fmt " chunk');};r.prototype.Sa=function(){var a=[];16<this.fmt.chunkSize&&(a=a.concat(h(this.fmt.cbSize,this.g)));18<this.fmt.chunkSize&&(a=a.concat(h(this.fmt.validBitsPerSample,this.g)));20<this.fmt.chunkSize&&(a=a.concat(h(this.fmt.dwChannelMask,this.a)));24<this.fmt.chunkSize&&(a=a.concat(h(this.fmt.subformat[0],this.a),h(this.fmt.subformat[1],this.a),h(this.fmt.subformat[2],this.a),h(this.fmt.subformat[3],
this.a)));return a};r.prototype.Ua=function(){for(var a=[],b=0;b<this.LIST.length;b++){var c=this.Wa(this.LIST[b].subChunks,this.LIST[b].format);a=a.concat(x(this.LIST[b].chunkId),h(c.length+4,this.a),x(this.LIST[b].format),c)}this.j(a);return a};r.prototype.Wa=function(a,b){for(var c=[],d=0,e=a.length;d<e;d++)"INFO"==b?c=c.concat(this.Va(a[d])):"adtl"==b&&(c=c.concat(this.Xa(a[d]))),this.j(c);return c};r.prototype.Va=function(a){var b=[],c=A(a.value,a.value.length);b=b.concat(x(a.chunkId),h(c.length+
1,this.a),c);b.push(0);return b};r.prototype.Xa=function(a){var b=[];if(-1<["labl","note"].indexOf(a.chunkId)){var c=A(a.value,a.value.length);b=b.concat(x(a.chunkId),h(c.length+5,this.a),h(a.dwName,this.a),c);b.push(0)}else"ltxt"==a.chunkId&&(b=b.concat(this.Ya(a)));return b};r.prototype.Ya=function(a){return x(a.chunkId).concat(h(a.value.length+20,this.a),h(a.dwName,this.a),h(a.dwSampleLength,this.a),h(a.dwPurposeID,this.a),h(a.dwCountry,this.g),h(a.dwLanguage,this.g),h(a.dwDialect,this.g),h(a.dwCodePage,
this.g),A(a.value,a.value.length))};r.prototype.bb=function(){var a=[];if(this._PMX.chunkId){var b=x(this._PMX.value);this._PMX.chunkSize=b.length;a=a.concat(x(this._PMX.chunkId),h(this._PMX.chunkSize,this.a),b)}this.j(a);return a};r.prototype.Ta=function(){var a=[];if(this.junk.chunkId)return a.concat(x(this.junk.chunkId),h(this.junk.chunkData.length,this.a),this.junk.chunkData);this.j(a);return a};r.prototype.j=function(a){a.length%2&&a.push(0)};S(t,r);t.prototype.fromScratch=function(a,b,c,d,e){e=
void 0===e?{}:e;this.V();this.X(a,b,c,d,e)};t.prototype.fromBuffer=function(a,b){r.prototype.fromBuffer.call(this,a,void 0===b?!0:b);this.za();this.aa()};t.prototype.toBuffer=function(){this.ba();return r.prototype.toBuffer.call(this)};t.prototype.getSamples=function(a,b){a=void 0===a?!1:a;b=void 0===b?Float64Array:b;var c=new b(this.data.samples.length/(this.f.h/8));O(this.data.samples,this.f,c);if(!a&&1<this.fmt.numChannels){var d=this.fmt.numChannels,e=b;e=void 0===e?Float64Array:e;for(var f=[],
g=0;g<d;g++)f[g]=new e(c.length/d);for(e=0;e<d;e++){g=0;for(var k=e;k<c.length;k+=d)f[e][g++]=c[k]}c=f}return c};t.prototype.getSample=function(a){a*=this.f.h/8;if(a+this.f.h/8>this.data.samples.length)throw Error("Range error");return R(this.data.samples.slice(a,a+this.f.h/8),this.f)};t.prototype.setSample=function(a,b){a*=this.f.h/8;if(a+this.f.h/8>this.data.samples.length)throw Error("Range error");Q([b],this.f,this.data.samples,void 0===a?0:a)};t.prototype.getiXML=function(){return this.iXML.value};
t.prototype.setiXML=function(a){if("string"!==typeof a)throw new TypeError("iXML value must be a string.");this.iXML.value=a;this.iXML.chunkId="iXML"};t.prototype.get_PMX=function(){return this._PMX.value};t.prototype.set_PMX=function(a){if("string"!==typeof a)throw new TypeError("_PMX value must be a string.");this._PMX.value=a;this._PMX.chunkId="_PMX"};t.prototype.X=function(a,b,c,d,e){e=void 0===e?{}:e;e.container||(e.container="RIFF");this.container=e.container;this.bitDepth=c;var f=[];if(0<d.length)if(d[0].constructor!==
Number){f=new Float64Array(d[0].length*d.length);for(var g=0,k=0,q=d[0].length;k<q;k++)for(var z=0,Pa=d.length;z<Pa;z++)f[g]=d[z][k],g++}else f=d;d=f;this.aa();f=this.f.h/8;this.data.samples=new Uint8Array(d.length*f);Q(d,this.f,this.data.samples);this.eb(c,a,b,f,this.data.samples.length,e);this.data.chunkId="data";this.data.chunkSize=this.data.samples.length;this.ba()};t.prototype.eb=function(a,b,c,d,e,f){"4"==a?this.Aa(a,b,c,d,e,f):"8a"==a||"8m"==a?this.Ba(a,b,c,d,e,f):-1==Object.keys(this.H).indexOf(a)||
2<b?this.Ca(a,b,c,d,e,f):this.B(a,b,c,d,e,f)};t.prototype.B=function(a,b,c,d,e,f){this.container=f.container;this.chunkSize=36+e;this.format="WAVE";this.bitDepth=a;this.fmt={chunkId:"fmt ",chunkSize:16,audioFormat:this.H[a]||65534,numChannels:b,sampleRate:c,byteRate:b*d*c,blockAlign:b*d,bitsPerSample:parseInt(a,10),cbSize:0,validBitsPerSample:0,dwChannelMask:0,subformat:[]}};t.prototype.Aa=function(a,b,c,d,e,f){this.B(a,b,c,d,e,f);this.chunkSize=40+e;this.fmt.chunkSize=20;this.fmt.byteRate=4055;this.fmt.blockAlign=
256;this.fmt.bitsPerSample=4;this.fmt.cbSize=2;this.fmt.validBitsPerSample=505;this.fact={chunkId:"fact",chunkSize:4,dwSampleLength:2*e}};t.prototype.Ca=function(a,b,c,d,e,f){this.B(a,b,c,d,e,f);this.chunkSize=60+e;this.fmt.chunkSize=40;this.fmt.bitsPerSample=(parseInt(a,10)-1|7)+1;this.fmt.cbSize=22;this.fmt.validBitsPerSample=parseInt(a,10);a=this.fmt;c=0;1===b?c=4:2===b?c=3:4===b?c=51:6===b?c=63:8===b&&(c=1599);a.dwChannelMask=c;this.fmt.subformat=[1,1048576,2852126848,1905997824]};t.prototype.Ba=
function(a,b,c,d,e,f){this.B(a,b,c,d,e,f);this.chunkSize=40+e;this.fmt.chunkSize=20;this.fmt.cbSize=2;this.fmt.validBitsPerSample=8;this.fact={chunkId:"fact",chunkSize:4,dwSampleLength:e}};t.prototype.za=function(){3===this.fmt.audioFormat&&32===this.fmt.bitsPerSample?this.bitDepth="32f":6===this.fmt.audioFormat?this.bitDepth="8a":7===this.fmt.audioFormat?this.bitDepth="8m":this.bitDepth=this.fmt.bitsPerSample.toString()};t.prototype.xa=function(){if(!(this.H[this.bitDepth]||8<parseInt(this.bitDepth,
10)&&54>parseInt(this.bitDepth,10)))throw Error("Invalid bit depth.");};t.prototype.aa=function(){this.f={h:(parseInt(this.bitDepth,10)-1|7)+1,O:"32f"==this.bitDepth||"64"==this.bitDepth,G:"8"!=this.bitDepth,o:"RIFX"==this.container};-1<["4","8a","8m"].indexOf(this.bitDepth)&&(this.f.h=8,this.f.G=!1)};t.prototype.ba=function(){this.xa();var a=this.fmt.numChannels;if(1>a||65535<a*this.fmt.bitsPerSample/8)throw Error("Invalid number of channels.");a=this.fmt.sampleRate;if(1>a||4294967295<this.fmt.bitsPerSample/
8*this.fmt.numChannels*a)throw Error("Invalid sample rate.");};S(D,t);D.prototype.getTag=function(a){a=this.L(a);return null!==a.w?this.LIST[a.LIST].subChunks[a.w].value:null};D.prototype.setTag=function(a,b){var c=a;if(c.constructor!==String)throw Error("Invalid tag name.");if(4>c.length)for(var d=0,e=4-c.length;d<e;d++)c+=" ";a=c;c=this.L(a);null!==c.w?(this.LIST[c.LIST].subChunks[c.w].chunkSize=b.length+1,this.LIST[c.LIST].subChunks[c.w].value=b):null!==c.LIST?this.LIST[c.LIST].subChunks.push({chunkId:a,
chunkSize:b.length+1,value:b}):(this.LIST.push({chunkId:"LIST",chunkSize:b.length+9,format:"INFO",subChunks:[]}),this.LIST[this.LIST.length-1].subChunks.push({chunkId:a,chunkSize:b.length+1,value:b}))};D.prototype.deleteTag=function(a){a=this.L(a);return null!==a.w?(this.LIST[a.LIST].subChunks.splice(a.w,1),!0):!1};D.prototype.listTags=function(){var a=this.C("INFO"),b={};if(null!==a)for(var c=0,d=this.LIST[a].subChunks.length;c<d;c++)b[this.LIST[a].subChunks[c].chunkId]=this.LIST[a].subChunks[c].value;
return b};D.prototype.C=function(a){for(var b=0,c=this.LIST.length;b<c;b++)if(this.LIST[b].format==a)return b;return null};D.prototype.L=function(a){for(var b={LIST:null,w:null},c=0,d=this.LIST.length;c<d;c++)if("INFO"==this.LIST[c].format){b.LIST=c;d=0;for(var e=this.LIST[c].subChunks.length;d<e;d++)if(this.LIST[c].subChunks[d].chunkId==a){b.w=d;break}break}return b};S(w,D);w.prototype.listCuePoints=function(){for(var a=this.K(),b=0,c=a.length;b<c;b++)a[b].position=a[b].dwSampleOffset/this.fmt.sampleRate*
1E3,a[b].dwSampleLength?(a[b].end=a[b].dwSampleLength/this.fmt.sampleRate*1E3,a[b].end+=a[b].position):a[b].end=null,delete a[b].value;return a};w.prototype.setCuePoint=function(a){this.cue.chunkId="cue ";a.label||(a.label="");var b=this.K();this.J();this.cue.points=[];a.dwSampleOffset=a.position*this.fmt.sampleRate/1E3;a.dwSampleLength=0;a.end&&(a.dwSampleLength=a.end*this.fmt.sampleRate/1E3-a.dwSampleOffset);0===b.length?this.v(a,1):this.sa(b,a);this.cue.dwCuePoints=this.cue.points.length};w.prototype.deleteCuePoint=
function(a){this.cue.chunkId="cue ";var b=this.K();this.J();var c=this.cue.points.length;this.cue.points=[];for(var d=0;d<c;d++)d+1!==a&&this.v(b[d],d+1);this.cue.dwCuePoints=this.cue.points.length;this.cue.dwCuePoints?this.cue.chunkId="cue ":(this.cue.chunkId="",this.J())};w.prototype.updateLabel=function(a,b){var c=this.C("adtl");if(null!==c)for(var d=0,e=this.LIST[c].subChunks.length;d<e;d++)this.LIST[c].subChunks[d].dwName==a&&(this.LIST[c].subChunks[d].value=b)};w.prototype.K=function(){for(var a=
[],b=0;b<this.cue.points.length;b++){var c=this.cue.points[b],d=this.Oa(c.dwName);d.label=d.value?d.value:"";d.dwPosition=c.dwPosition;d.fccChunk=c.fccChunk;d.dwChunkStart=c.dwChunkStart;d.dwBlockStart=c.dwBlockStart;d.dwSampleOffset=c.dwSampleOffset;a.push(d)}return a};w.prototype.Oa=function(a){var b=this.C("adtl"),c={};null!==b&&this.Ja(c,b,a);return c};w.prototype.Ja=function(a,b,c){for(var d=0,e=this.LIST[b].subChunks.length;d<e;d++)if(this.LIST[b].subChunks[d].dwName==c){var f=this.LIST[b].subChunks[d];
a.value=f.value||a.value;a.dwName=f.dwName||0;a.dwSampleLength=f.dwSampleLength||0;a.dwPurposeID=f.dwPurposeID||0;a.dwCountry=f.dwCountry||0;a.dwLanguage=f.dwLanguage||0;a.dwDialect=f.dwDialect||0;a.dwCodePage=f.dwCodePage||0}};w.prototype.v=function(a,b){this.cue.points.push({dwName:b,dwPosition:a.dwPosition?a.dwPosition:0,fccChunk:a.fccChunk?a.fccChunk:"data",dwChunkStart:a.dwChunkStart?a.dwChunkStart:0,dwBlockStart:a.dwBlockStart?a.dwBlockStart:0,dwSampleOffset:a.dwSampleOffset});this.ua(a,b)};
w.prototype.sa=function(a,b){for(var c=!1,d=0;d<a.length;d++)a[d].dwSampleOffset>b.dwSampleOffset&&!c?(this.v(b,d+1),this.v(a[d],d+2),c=!0):this.v(a[d],c?d+2:d+1);c||this.v(b,this.cue.points.length+1)};w.prototype.J=function(){for(var a=0,b=this.LIST.length;a<b;a++)"adtl"==this.LIST[a].format&&this.LIST.splice(a)};w.prototype.ua=function(a,b){var c=this.C("adtl");null===c&&(this.LIST.push({chunkId:"LIST",chunkSize:4,format:"adtl",subChunks:[]}),c=this.LIST.length-1);this.ta(c,a,b);a.dwSampleLength&&
this.va(c,a,b)};w.prototype.ta=function(a,b,c){this.LIST[a].subChunks.push({chunkId:"labl",chunkSize:4,dwName:c,value:b.label});this.LIST[a].chunkSize+=12};w.prototype.va=function(a,b,c){this.LIST[a].subChunks.push({chunkId:"ltxt",chunkSize:20,dwName:c,dwSampleLength:b.dwSampleLength,dwPurposeID:b.dwPurposeID||0,dwCountry:b.dwCountry||0,dwLanguage:b.dwLanguage||0,dwDialect:b.dwDialect||0,dwCodePage:b.dwCodePage||0,value:b.label});this.LIST[a].chunkSize+=28};v.prototype.J=function(a,b){return this.f(Math.round(this.j*
a),b)};v.prototype.I=function(a,b){a*=this.j;var c=Math.floor(a);a-=c;return(1-a)*this.f(c,b)+a*this.f(c+1,b)};v.prototype.C=function(a,b){a*=this.j;var c=Math.floor(a),d=[this.u(c,b),this.u(c+1,b)],e=[this.f(c,b),this.f(c+1,b)];a-=c;c=a*a;var f=a*c;return(2*f-3*c+1)*e[0]+(f-2*c+a)*d[0]+(-2*f+3*c)*e[1]+(f-c)*d[1]};v.prototype.K=function(a,b){a*=this.j;var c=Math.floor(a),d=c-this.B+1;c+=this.B;for(var e=0,f=d,g=d;d<=c?g<=c:g>=c;f=d<=c?++g:--g)e+=this.H(a-f)*this.f(f,b);return e};v.prototype.u=function(a,
b){return this.L*(this.f(a+1,b)-this.f(a-1,b))/2};v.prototype.f=function(a,b){return 0<=a&&a<this.v?b[a]:b[this.l(a,this.v)]};y.prototype.filter=function(a){this.z.N[this.z.S]=a;for(var b=a=0,c=this.z.N.length;b<c;b++)a+=this.a[b]*this.z.N[(this.z.S+b)%this.z.N.length];this.z.S=(this.z.S+1)%this.z.N.length;return a};y.prototype.reset=function(){this.z=this.b()};y.prototype.b=function(){for(var a=[],b=0;b<this.a.length-1;b++)a.push(0);return{N:a,S:0}};p.prototype.filter=function(a){for(var b=0,c=this.a.length;b<
c;b++)a=this.f(b,a);return a};p.prototype.b=function(a){var b={z:[0,0],D:[],A:[]};a=this.c(a,b);b.k=1;b.A.push((1-a.ca)/(2*a.M));b.A.push(2*b.A[0]);b.A.push(b.A[0]);return b};p.prototype.c=function(a,b){var c={},d=2*Math.PI*a.oa/a.pa;c.alpha=Math.sin(d)/(2*a.Q);c.ca=Math.cos(d);c.M=1+c.alpha;b.M=c.M;b.D.push(-2*c.ca/c.M);b.k=1;b.D.push((1-c.alpha)/c.M);return c};p.prototype.f=function(a,b){var c=b*this.a[a].k-this.a[a].Ha*this.a[a].z[0]-this.a[a].Ia*this.a[a].z[1],d=this.a[a].Ka*c+this.a[a].La*this.a[a].z[0]+
this.a[a].Ma*this.a[a].z[1];this.a[a].z[1]=this.a[a].z[0];this.a[a].z[0]=c;return d};p.prototype.reset=function(){for(var a=0;a<this.a.length;a++)this.a[a].z=[0,0]};var Na={point:!1,linear:!1,cubic:!0,sinc:!0},na={IIR:16,FIR:71},Oa={IIR:p,FIR:y};S(l,w);l.prototype.toRIFF=function(){this.l(this.fmt.numChannels,this.fmt.sampleRate,this.bitDepth,ba(this.data.samples,this.f))};l.prototype.toRIFX=function(){this.l(this.fmt.numChannels,this.fmt.sampleRate,this.bitDepth,ba(this.data.samples,this.f),{container:"RIFX"})};
l.prototype.toIMAADPCM=function(){if(8E3!==this.fmt.sampleRate)throw Error("Only 8000 Hz files can be compressed as IMA-ADPCM.");if(1!==this.fmt.numChannels)throw Error("Only mono files can be compressed as IMA-ADPCM.");this.I();var a=new Int16Array(this.T());O(this.data.samples,this.f,a);this.l(this.fmt.numChannels,this.fmt.sampleRate,"4",Da(a),{container:this.u()})};l.prototype.fromIMAADPCM=function(a){a=void 0===a?"16":a;this.l(this.fmt.numChannels,this.fmt.sampleRate,"16",Fa(this.data.samples,
this.fmt.blockAlign),{container:this.u()});"16"!=a&&this.toBitDepth(a)};l.prototype.toALaw=function(){this.I();var a=new Int16Array(this.T());O(this.data.samples,this.f,a);this.l(this.fmt.numChannels,this.fmt.sampleRate,"8a",Ga(a),{container:this.u()})};l.prototype.fromALaw=function(a){a=void 0===a?"16":a;this.l(this.fmt.numChannels,this.fmt.sampleRate,"16",Ia(this.data.samples),{container:this.u()});"16"!=a&&this.toBitDepth(a)};l.prototype.toMuLaw=function(){this.I();var a=new Int16Array(this.T());
O(this.data.samples,this.f,a);this.l(this.fmt.numChannels,this.fmt.sampleRate,"8m",Ja(a),{container:this.u()})};l.prototype.fromMuLaw=function(a){a=void 0===a?"16":a;this.l(this.fmt.numChannels,this.fmt.sampleRate,"16",La(this.data.samples),{container:this.u()});"16"!=a&&this.toBitDepth(a)};l.prototype.toBitDepth=function(a,b){var c=a,d=this.bitDepth;void 0===b||b||("32f"!=a&&(c=this.f.h.toString()),d=""+this.f.h);this.U();var e=this.getSamples(!0),f=new Float64Array(e.length),g=d;if(-1<["32f","64"].indexOf(g)&&
-1<["32f","64"].indexOf(c))f.set(e);else{fa(g);fa(c);d=Ca(g,c);var k={ga:Math.pow(2,parseInt(g,10))/2,ea:Math.pow(2,parseInt(c,10))/2,fa:Math.pow(2,parseInt(g,10))/2-1,da:Math.pow(2,parseInt(c,10))/2-1};ha(g,e,!0);if(-1<["32f","64"].indexOf(g)){g=e.length;for(var q=0;q<g;q++)1<e[q]?e[q]=1:-1>e[q]&&(e[q]=-1)}for(g=0;g<e.length;g++)f[g]=d(e[g],k);ha(c,f,!1)}this.l(this.fmt.numChannels,this.fmt.sampleRate,a,f,{container:this.u()})};l.prototype.toSampleRate=function(a,b){b=void 0===b?{}:b;this.ya(a);
var c=this.getSamples(),d=[];if(c.constructor===Float64Array)d=ma(c,this.fmt.sampleRate,a,b);else for(var e=0;e<c.length;e++)d.push(ma(c[e],this.fmt.sampleRate,a,b));if("64"!==this.bitDepth&&"32f"!==this.bitDepth)if(d[0].constructor===Number)la(d,this.f.h);else for(c=0;c<d.length;c++)la(d[c],this.f.h);this.l(this.fmt.numChannels,a,this.bitDepth,d,{container:this.u()})};l.prototype.ya=function(a){if(1>a||4294967295<this.fmt.bitsPerSample/8*this.fmt.numChannels*a)throw Error("Invalid sample rate.");
if(-1<["4","8a","8m"].indexOf(this.bitDepth))throw Error("wavefile can't change the sample rate of compressed files.");};l.prototype.I=function(){this.U();"16"!=this.bitDepth&&this.toBitDepth("16")};l.prototype.U=function(){"8a"==this.bitDepth?this.fromALaw():"8m"==this.bitDepth?this.fromMuLaw():"4"==this.bitDepth&&this.fromIMAADPCM()};l.prototype.u=function(){return"RF64"==this.container?"RIFF":this.container};l.prototype.l=function(a,b,c,d,e){e=void 0===e?{}:e;var f=new w;Object.assign(this.fmt,
f.fmt);Object.assign(this.fact,f.fact);Object.assign(this.ds64,f.ds64);Object.assign(this.data,f.data);this.X(a,b,c,d,e)};l.prototype.T=function(){var a=this.data.samples.length/2;a%2&&a++;return a};S(m,l);m.prototype.fromBase64=function(a){this.fromBuffer(new Uint8Array(ya(a)))};m.prototype.toBase64=function(){for(var a=this.toBuffer(),b="",c=0;c<a.length;c+=3)b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a[c]>>2],b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(a[c]&
3)<<4|a[c+1]>>4],b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(a[c+1]&15)<<2|a[c+2]>>6],b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a[c+2]&63];2===a.length%3?b=b.substring(0,b.length-1)+"=":1===a.length%3&&(b=b.substring(0,b.length-2)+"==");return b};m.prototype.toDataURI=function(){return"data:audio/wav;base64,"+this.toBase64()};m.prototype.fromDataURI=function(a){this.fromBase64(a.replace("data:audio/wav;base64,",""))};n.WaveFile=m;Object.defineProperty(n,
"__esModule",{value:!0})}"object"===typeof exports&&"undefined"!==typeof module?V(exports):"function"===typeof define&&define.amd?define(["exports"],V):(U=U||self,V(U.wavefile={}));

@@ -444,4 +444,5 @@ /*

sincWindow: function(x){},
LPForder: 1,
LPF: true}) {};
LPF: true,
LPFType: 'IIR',
LPForder: 1}) {};

@@ -448,0 +449,0 @@ /**

@@ -32,2 +32,3 @@ /*

import { FIRLPF } from './fir-lpf';
import { ButterworthLPF } from './butterworth-lpf';

@@ -42,8 +43,11 @@ const DEFAULT_LPF_USE = {

const DEFAULT_LPF_ORDER = {
'point': 71,
'linear': 71,
'cubic': 71,
'sinc': 71
'IIR': 16,
'FIR': 71
};
const DEFAULT_LPF = {
'IIR': ButterworthLPF,
'FIR': FIRLPF
};
/**

@@ -78,6 +82,8 @@ * Change the sample rate of the samples to a new sample rate.

if (details.LPF) {
details.LPFType = details.LPFType || 'IIR';
const LPF = DEFAULT_LPF[details.LPFType];
// Upsampling
if (sampleRate > oldSampleRate) {
let filter = new FIRLPF(
details.LPForder || DEFAULT_LPF_ORDER[details.method],
let filter = new LPF(
details.LPForder || DEFAULT_LPF_ORDER[details.LPFType],
sampleRate,

@@ -89,4 +95,4 @@ (oldSampleRate / 2));

} else {
let filter = new FIRLPF(
details.LPForder || DEFAULT_LPF_ORDER[details.method],
let filter = new LPF(
details.LPForder || DEFAULT_LPF_ORDER[details.LPFType],
oldSampleRate,

@@ -93,0 +99,0 @@ sampleRate / 2);

@@ -211,3 +211,3 @@ /*

/** @type {?number} */
let cIndex = this.getAdtlChunk_();
let cIndex = this.getLISTIndex('adtl');
if (cIndex !== null) {

@@ -256,3 +256,3 @@ for (let i = 0, len = this.LIST[cIndex].subChunks.length; i < len; i++) {

/** @type {?number} */
let LISTindex = this.getAdtlChunk_();
let LISTindex = this.getLISTIndex('adtl');
/** @type {!Object} */

@@ -302,16 +302,2 @@ let pointData = {};

/**
* Return the index of the 'adtl' LIST in this.LIST.
* @return {?number}
* @private
*/
getAdtlChunk_() {
for (let i = 0, len = this.LIST.length; i < len; i++) {
if (this.LIST[i].format == 'adtl') {
return i;
}
}
return null;
}
/**
* Push a new cue point in this.cue.points.

@@ -398,3 +384,3 @@ * @param {!Object} pointData A object with data of the cue point.

*/
let adtlIndex = this.getAdtlChunk_();
let adtlIndex = this.getLISTIndex('adtl');
// If there is no adtl LIST, create one

@@ -401,0 +387,0 @@ if (adtlIndex === null) {

@@ -383,27 +383,7 @@ /*

let bytes = [];
for (let i=0; i<subChunks.length; i++) {
for (let i = 0, len = subChunks.length; i < len; i++) {
if (format == 'INFO') {
// Pack the string value
let LISTsubChunkValue = writeString(
subChunks[i].value, subChunks[i].value.length);
bytes = bytes.concat(
packString(subChunks[i].chunkId),
pack(LISTsubChunkValue.length + 1, this.uInt32), //chunkSize
LISTsubChunkValue);
bytes.push(0);
bytes = bytes.concat(this.getLISTINFOSubChunksBytes_(subChunks[i]));
} else if (format == 'adtl') {
if (['labl', 'note'].indexOf(subChunks[i].chunkId) > -1) {
let LISTsubChunkValue = writeString(
subChunks[i].value,
subChunks[i].value.length);
bytes = bytes.concat(
packString(subChunks[i].chunkId),
pack(LISTsubChunkValue.length + 4 + 1, this.uInt32), //chunkSize
pack(subChunks[i].dwName, this.uInt32),
LISTsubChunkValue);
bytes.push(0);
} else if (subChunks[i].chunkId == 'ltxt') {
bytes = bytes.concat(
this.getLtxtChunkBytes_(subChunks[i]));
}
bytes = bytes.concat(this.getLISTadtlSubChunksBytes_(subChunks[i]));
}

@@ -416,19 +396,45 @@ this.enforceByteLen_(bytes);

/**
* Return the bytes of the '_PMX' chunk.
* @return {!Array<number>} The '_PMX' chunk bytes.
* Return the bytes of the sub chunks of a 'LIST' chunk of type 'INFO'.
* @param {!Object} subChunk The 'LIST' sub chunk.
* @return {!Array<number>}
* @private
*/
get_PMXBytes_() {
getLISTINFOSubChunksBytes_(subChunk) {
/** @type {!Array<number>} */
let bytes = [];
if (this._PMX.chunkId) {
// chunkSize = byte len of the packed chunk content
let _PMXPackedValue = packString(this._PMX.value);
this._PMX.chunkSize = _PMXPackedValue.length;
/** @type {!Array<number>} */
let LISTsubChunkValue = writeString(
subChunk.value, subChunk.value.length);
bytes = bytes.concat(
packString(subChunk.chunkId),
pack(LISTsubChunkValue.length + 1, this.uInt32), //chunkSize
LISTsubChunkValue);
bytes.push(0);
return bytes;
}
/**
* Return the bytes of the sub chunks of a 'LIST' chunk of type 'INFO'.
* @param {!Object} subChunk The 'LIST' sub chunk.
* @return {!Array<number>}
* @private
*/
getLISTadtlSubChunksBytes_(subChunk) {
/** @type {!Array<number>} */
let bytes = [];
if (['labl', 'note'].indexOf(subChunk.chunkId) > -1) {
/** @type {!Array<number>} */
let LISTsubChunkValue = writeString(
subChunk.value,
subChunk.value.length);
bytes = bytes.concat(
packString(this._PMX.chunkId),
pack(this._PMX.chunkSize, this.uInt32),
_PMXPackedValue);
packString(subChunk.chunkId),
pack(LISTsubChunkValue.length + 4 + 1, this.uInt32), //chunkSize
pack(subChunk.dwName, this.uInt32),
LISTsubChunkValue);
bytes.push(0);
} else if (subChunk.chunkId == 'ltxt') {
bytes = bytes.concat(
this.getLtxtChunkBytes_(subChunk));
}
this.enforceByteLen_(bytes);
return bytes;

@@ -440,2 +446,3 @@ }

* @param {!Object} ltxt the 'ltxt' chunk.
* @return {!Array<number>}
* @private

@@ -460,2 +467,23 @@ */

/**
* Return the bytes of the '_PMX' chunk.
* @return {!Array<number>} The '_PMX' chunk bytes.
* @private
*/
get_PMXBytes_() {
/** @type {!Array<number>} */
let bytes = [];
if (this._PMX.chunkId) {
// chunkSize = byte len of the packed chunk content
let _PMXPackedValue = packString(this._PMX.value);
this._PMX.chunkSize = _PMXPackedValue.length;
bytes = bytes.concat(
packString(this._PMX.chunkId),
pack(this._PMX.chunkSize, this.uInt32),
_PMXPackedValue);
}
this.enforceByteLen_(bytes);
return bytes;
}
/**
* Return the bytes of the 'junk' chunk.

@@ -462,0 +490,0 @@ * @private

@@ -585,30 +585,7 @@ /*

if (['labl', 'note','ltxt'].indexOf(subChunk.chunkId) > -1) {
this.head = subChunk.chunkData.start;
/** @type {!Object<string, string|number>} */
let item = {
chunkId: subChunk.chunkId,
chunkSize: subChunk.chunkSize,
dwName: this.readUInt32(buffer)
};
if (subChunk.chunkId == 'ltxt') {
item.dwSampleLength = this.readUInt32(buffer);
item.dwPurposeID = this.readUInt32(buffer);
item.dwCountry = this.readUInt16_(buffer);
item.dwLanguage = this.readUInt16_(buffer);
item.dwDialect = this.readUInt16_(buffer);
item.dwCodePage = this.readUInt16_(buffer);
item.value = ''; // kept for compatibility
} else {
item.value = this.readZSTR_(buffer, this.head);
}
this.LIST[this.LIST.length - 1].subChunks.push(item);
this.readLISTadtlSubChunks_(buffer, subChunk);
}
// RIFF INFO tags like ICRD, ISFT, ICMT
} else if(format == 'INFO') {
this.head = subChunk.chunkData.start;
this.LIST[this.LIST.length - 1].subChunks.push({
chunkId: subChunk.chunkId,
chunkSize: subChunk.chunkSize,
value: this.readZSTR_(buffer, this.head)
});
this.readLISTINFOSubChunks_(buffer, subChunk);
}

@@ -618,2 +595,45 @@ }

/**
* Read the sub chunks of a 'LIST' chunk of type 'adtl'.
* @param {!Uint8Array} buffer The wav file buffer.
* @param {!Object} subChunk The 'LIST' subchunks.
* @private
*/
readLISTadtlSubChunks_(buffer, subChunk) {
this.head = subChunk.chunkData.start;
/** @type {!Object<string, string|number>} */
let item = {
chunkId: subChunk.chunkId,
chunkSize: subChunk.chunkSize,
dwName: this.readUInt32(buffer)
};
if (subChunk.chunkId == 'ltxt') {
item.dwSampleLength = this.readUInt32(buffer);
item.dwPurposeID = this.readUInt32(buffer);
item.dwCountry = this.readUInt16_(buffer);
item.dwLanguage = this.readUInt16_(buffer);
item.dwDialect = this.readUInt16_(buffer);
item.dwCodePage = this.readUInt16_(buffer);
item.value = ''; // kept for compatibility
} else {
item.value = this.readZSTR_(buffer, this.head);
}
this.LIST[this.LIST.length - 1].subChunks.push(item);
}
/**
* Read the sub chunks of a 'LIST' chunk of type 'INFO'.
* @param {!Uint8Array} buffer The wav file buffer.
* @param {!Object} subChunk The 'LIST' subchunks.
* @private
*/
readLISTINFOSubChunks_(buffer, subChunk) {
this.head = subChunk.chunkData.start;
this.LIST[this.LIST.length - 1].subChunks.push({
chunkId: subChunk.chunkId,
chunkSize: subChunk.chunkSize,
value: this.readZSTR_(buffer, this.head)
});
}
/**
* Read the 'junk' chunk of a wave file.

@@ -620,0 +640,0 @@ * @param {!Uint8Array} buffer The wav file buffer.

@@ -107,3 +107,3 @@ /*

/** @type {?number} */
let index = this.getLISTINFOIndex_();
let index = this.getLISTIndex('INFO');
/** @type {!Object} */

@@ -121,16 +121,14 @@ let tags = {};

/**
* Return the index of the INFO chunk in the LIST chunk.
* @return {?number} the index of the INFO chunk.
* @private
* Return the index of a list by its type.
* @param {string} listType The list type ('adtl', 'INFO')
* @return {?number}
* @protected
*/
getLISTINFOIndex_() {
/** @type {?number} */
let index = null;
getLISTIndex(listType) {
for (let i = 0, len = this.LIST.length; i < len; i++) {
if (this.LIST[i].format === 'INFO') {
index = i;
break;
if (this.LIST[i].format == listType) {
return i;
}
}
return index;
return null;
}

@@ -137,0 +135,0 @@

{
"name": "wavefile",
"version": "10.3.0",
"version": "10.4.0",
"description": "Create, read and write wav files according to the specs.",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/rochars/wavefile",

@@ -23,12 +23,12 @@ # wavefile

- Create wav files
- Read wav files
- Change the bit depth of the audio
- Change the sample rate of the audio
- Read and write RIFF tags
- Set and delete cue points and their labels
- Create regions in wav files
- Encode/decode files as ADPCM, A-Law and μ-Law
- Turn RIFF files to RIFX and RIFX to RIFF
- Create or edit BWF metadata ("bext" chunk)
- [Create wav files](#create-wave-files-from-scratch)
- [Read wav files](#use)
- [Change the bit depth of the audio](#change-the-bit-depth)
- [Change the sample rate of the audio](#change-the-sample-rate)
- [Read and write RIFF tags](#add-riff-tags-to-files)
- [Set and delete cue points and their labels](#add-cue-points-to-files)
- [Create regions in wav files](#create-regions-in-files)
- [Encode/decode files as ADPCM, A-Law and μ-Law](#ima-adpcm)
- [Turn RIFF files to RIFX and RIFX to RIFF](#rifx)
- [Create or edit BWF metadata ("bext" chunk)](#add-bwf-metadata)

@@ -425,2 +425,11 @@ And more.

The default LPF is a IIR LPF. You may define what type of LPF will be used by changing the LPFType attribute on the *toSampleRate()* param. You can use **IIR** or **FIR**:
```javascript
// Will use 'linear' method with a FIR LPF
wav.toSampleRate(44100, {method: "linear", LPF: true, LPFType: 'FIR'});
// Will use 'linear' method with a IIR LPF, the default
wav.toSampleRate(44100, {method: "linear", LPF: true});
```
#### Changing the sample rate of ADPCM, mu-Law or A-Law

@@ -427,0 +436,0 @@ You need to convert compressed files to standard PCM before resampling:

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc