cancelandholdattime-polyfill
Advanced tools
Comparing version 1.13.0 to 1.14.0
@@ -1,2 +0,2 @@ | ||
// cancelandholdattime-polyfill - created by Lajos Meszaros <m_lajos@hotmail.com> - MIT licence - last built on 2019-04-10 | ||
!function(){"use strict";var _isPlaceholder_1=function(a){return null!=a&&"object"==typeof a&&!0===a["@@functional/placeholder"]};var _curry1_1=function(fn){return function f1(a){return 0===arguments.length||_isPlaceholder_1(a)?f1:fn.apply(this,arguments)}},isNil_1=_curry1_1(function(x){return null==x});var _has_1=function(prop,obj){return Object.prototype.hasOwnProperty.call(obj,prop)},toString=Object.prototype.toString,_isArguments_1=function(){return"[object Arguments]"===toString.call(arguments)?function(x){return"[object Arguments]"===toString.call(x)}:function(x){return _has_1("callee",x)}}(),_isArray=Array.isArray||function(val){return null!=val&&val.length>=0&&"[object Array]"===Object.prototype.toString.call(val)};var _isObject_1=function(x){return"[object Object]"===Object.prototype.toString.call(x)};var _isString_1=function(x){return"[object String]"===Object.prototype.toString.call(x)},empty_1=_curry1_1(function(x){return null!=x&&"function"==typeof x["fantasy-land/empty"]?x["fantasy-land/empty"]():null!=x&&null!=x.constructor&&"function"==typeof x.constructor["fantasy-land/empty"]?x.constructor["fantasy-land/empty"]():null!=x&&"function"==typeof x.empty?x.empty():null!=x&&null!=x.constructor&&"function"==typeof x.constructor.empty?x.constructor.empty():_isArray(x)?[]:_isString_1(x)?"":_isObject_1(x)?{}:_isArguments_1(x)?function(){return arguments}():void 0});var _curry2_1=function(fn){return function f2(a,b){switch(arguments.length){case 0:return f2;case 1:return _isPlaceholder_1(a)?f2:_curry1_1(function(_b){return fn(a,_b)});default:return _isPlaceholder_1(a)&&_isPlaceholder_1(b)?f2:_isPlaceholder_1(a)?_curry1_1(function(_a){return fn(_a,b)}):_isPlaceholder_1(b)?_curry1_1(function(_b){return fn(a,_b)}):fn(a,b)}}};var _arrayFromIterator_1=function(iter){for(var next,list=[];!(next=iter.next()).done;)list.push(next.value);return list};var _includesWith_1=function(pred,x,list){for(var idx=0,len=list.length;idx<len;){if(pred(x,list[idx]))return!0;idx+=1}return!1};var _functionName_1=function(f){var match=String(f).match(/^function (\w*)/);return null==match?"":match[1]};var _objectIs_1="function"==typeof Object.is?Object.is:function(a,b){return a===b?0!==a||1/a==1/b:a!=a&&b!=b},hasEnumBug=!{toString:null}.propertyIsEnumerable("toString"),nonEnumerableProps=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],hasArgsEnumBug=function(){return arguments.propertyIsEnumerable("length")}(),contains=function(list,item){for(var idx=0;idx<list.length;){if(list[idx]===item)return!0;idx+=1}return!1},keys_1="function"!=typeof Object.keys||hasArgsEnumBug?_curry1_1(function(obj){if(Object(obj)!==obj)return[];var prop,nIdx,ks=[],checkArgsLength=hasArgsEnumBug&&_isArguments_1(obj);for(prop in obj)!_has_1(prop,obj)||checkArgsLength&&"length"===prop||(ks[ks.length]=prop);if(hasEnumBug)for(nIdx=nonEnumerableProps.length-1;nIdx>=0;)_has_1(prop=nonEnumerableProps[nIdx],obj)&&!contains(ks,prop)&&(ks[ks.length]=prop),nIdx-=1;return ks}):_curry1_1(function(obj){return Object(obj)!==obj?[]:Object.keys(obj)}),type_1=_curry1_1(function(val){return null===val?"Null":void 0===val?"Undefined":Object.prototype.toString.call(val).slice(8,-1)});function _uniqContentEquals(aIterator,bIterator,stackA,stackB){var a=_arrayFromIterator_1(aIterator),b=_arrayFromIterator_1(bIterator);function eq(_a,_b){return _equals(_a,_b,stackA.slice(),stackB.slice())}return!_includesWith_1(function(b,aItem){return!_includesWith_1(eq,aItem,b)},b,a)}function _equals(a,b,stackA,stackB){if(_objectIs_1(a,b))return!0;var typeA=type_1(a);if(typeA!==type_1(b))return!1;if(null==a||null==b)return!1;if("function"==typeof a["fantasy-land/equals"]||"function"==typeof b["fantasy-land/equals"])return"function"==typeof a["fantasy-land/equals"]&&a["fantasy-land/equals"](b)&&"function"==typeof b["fantasy-land/equals"]&&b["fantasy-land/equals"](a);if("function"==typeof a.equals||"function"==typeof b.equals)return"function"==typeof a.equals&&a.equals(b)&&"function"==typeof b.equals&&b.equals(a);switch(typeA){case"Arguments":case"Array":case"Object":if("function"==typeof a.constructor&&"Promise"===_functionName_1(a.constructor))return a===b;break;case"Boolean":case"Number":case"String":if(typeof a!=typeof b||!_objectIs_1(a.valueOf(),b.valueOf()))return!1;break;case"Date":if(!_objectIs_1(a.valueOf(),b.valueOf()))return!1;break;case"Error":return a.name===b.name&&a.message===b.message;case"RegExp":if(a.source!==b.source||a.global!==b.global||a.ignoreCase!==b.ignoreCase||a.multiline!==b.multiline||a.sticky!==b.sticky||a.unicode!==b.unicode)return!1}for(var idx=stackA.length-1;idx>=0;){if(stackA[idx]===a)return stackB[idx]===b;idx-=1}switch(typeA){case"Map":return a.size===b.size&&_uniqContentEquals(a.entries(),b.entries(),stackA.concat([a]),stackB.concat([b]));case"Set":return a.size===b.size&&_uniqContentEquals(a.values(),b.values(),stackA.concat([a]),stackB.concat([b]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var keysA=keys_1(a);if(keysA.length!==keys_1(b).length)return!1;var extendedStackA=stackA.concat([a]),extendedStackB=stackB.concat([b]);for(idx=keysA.length-1;idx>=0;){var key=keysA[idx];if(!_has_1(key,b)||!_equals(b[key],a[key],extendedStackA,extendedStackB))return!1;idx-=1}return!0}var _equals_1=_equals,equals_1=_curry2_1(function(a,b){return _equals_1(a,b,[],[])}),isEmpty_1=_curry1_1(function(x){return null!=x&&equals_1(x,empty_1(x))}),path_1=_curry2_1(function(paths,obj){for(var val=obj,idx=0;idx<paths.length;){if(null==val)return;val=val[paths[idx]],idx+=1}return val}),prop_1=_curry2_1(function(p,obj){return path_1([p],obj)});var _arity_1=function(n,fn){switch(n){case 0:return function(){return fn.apply(this,arguments)};case 1:return function(a0){return fn.apply(this,arguments)};case 2:return function(a0,a1){return fn.apply(this,arguments)};case 3:return function(a0,a1,a2){return fn.apply(this,arguments)};case 4:return function(a0,a1,a2,a3){return fn.apply(this,arguments)};case 5:return function(a0,a1,a2,a3,a4){return fn.apply(this,arguments)};case 6:return function(a0,a1,a2,a3,a4,a5){return fn.apply(this,arguments)};case 7:return function(a0,a1,a2,a3,a4,a5,a6){return fn.apply(this,arguments)};case 8:return function(a0,a1,a2,a3,a4,a5,a6,a7){return fn.apply(this,arguments)};case 9:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8){return fn.apply(this,arguments)};case 10:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){return fn.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}};var _pipe_1=function(f,g){return function(){return g.call(this,f.apply(this,arguments))}};var _curry3_1=function(fn){return function f3(a,b,c){switch(arguments.length){case 0:return f3;case 1:return _isPlaceholder_1(a)?f3:_curry2_1(function(_b,_c){return fn(a,_b,_c)});case 2:return _isPlaceholder_1(a)&&_isPlaceholder_1(b)?f3:_isPlaceholder_1(a)?_curry2_1(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder_1(b)?_curry2_1(function(_b,_c){return fn(a,_b,_c)}):_curry1_1(function(_c){return fn(a,b,_c)});default:return _isPlaceholder_1(a)&&_isPlaceholder_1(b)&&_isPlaceholder_1(c)?f3:_isPlaceholder_1(a)&&_isPlaceholder_1(b)?_curry2_1(function(_a,_b){return fn(_a,_b,c)}):_isPlaceholder_1(a)&&_isPlaceholder_1(c)?_curry2_1(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder_1(b)&&_isPlaceholder_1(c)?_curry2_1(function(_b,_c){return fn(a,_b,_c)}):_isPlaceholder_1(a)?_curry1_1(function(_a){return fn(_a,b,c)}):_isPlaceholder_1(b)?_curry1_1(function(_b){return fn(a,_b,c)}):_isPlaceholder_1(c)?_curry1_1(function(_c){return fn(a,b,_c)}):fn(a,b,c)}}},_isArrayLike_1=_curry1_1(function(x){return!!_isArray(x)||!!x&&("object"==typeof x&&(!_isString_1(x)&&(1===x.nodeType?!!x.length:0===x.length||x.length>0&&(x.hasOwnProperty(0)&&x.hasOwnProperty(x.length-1)))))}),XWrap=function(){function XWrap(fn){this.f=fn}return XWrap.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},XWrap.prototype["@@transducer/result"]=function(acc){return acc},XWrap.prototype["@@transducer/step"]=function(acc,x){return this.f(acc,x)},XWrap}();var _xwrap_1=function(fn){return new XWrap(fn)},bind_1=_curry2_1(function(fn,thisObj){return _arity_1(fn.length,function(){return fn.apply(thisObj,arguments)})});function _iterableReduce(xf,acc,iter){for(var step=iter.next();!step.done;){if((acc=xf["@@transducer/step"](acc,step.value))&&acc["@@transducer/reduced"]){acc=acc["@@transducer/value"];break}step=iter.next()}return xf["@@transducer/result"](acc)}function _methodReduce(xf,acc,obj,methodName){return xf["@@transducer/result"](obj[methodName](bind_1(xf["@@transducer/step"],xf),acc))}var symIterator="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";var _reduce_1=function(fn,acc,list){if("function"==typeof fn&&(fn=_xwrap_1(fn)),_isArrayLike_1(list))return function(xf,acc,list){for(var idx=0,len=list.length;idx<len;){if((acc=xf["@@transducer/step"](acc,list[idx]))&&acc["@@transducer/reduced"]){acc=acc["@@transducer/value"];break}idx+=1}return xf["@@transducer/result"](acc)}(fn,acc,list);if("function"==typeof list["fantasy-land/reduce"])return _methodReduce(fn,acc,list,"fantasy-land/reduce");if(null!=list[symIterator])return _iterableReduce(fn,acc,list[symIterator]());if("function"==typeof list.next)return _iterableReduce(fn,acc,list);if("function"==typeof list.reduce)return _methodReduce(fn,acc,list,"reduce");throw new TypeError("reduce: list must be array or iterable")},reduce_1=_curry3_1(_reduce_1);var _checkForMethod_1=function(methodname,fn){return function(){var length=arguments.length;if(0===length)return fn();var obj=arguments[length-1];return _isArray(obj)||"function"!=typeof obj[methodname]?fn.apply(this,arguments):obj[methodname].apply(obj,Array.prototype.slice.call(arguments,0,length-1))}},tail_1=_curry1_1(_checkForMethod_1("tail",_curry3_1(_checkForMethod_1("slice",function(fromIndex,toIndex,list){return Array.prototype.slice.call(list,fromIndex,toIndex)}))(1,1/0)));var pipe_1=function(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return _arity_1(arguments[0].length,reduce_1(_pipe_1,arguments[0],tail_1(arguments)))},reverse_1=_curry1_1(function(list){return _isString_1(list)?list.split("").reverse().join(""):Array.prototype.slice.call(list,0).reverse()});var compose_1=function(){if(0===arguments.length)throw new Error("compose requires at least one argument");return pipe_1.apply(this,reverse_1(arguments))},not_1=_curry1_1(function(a){return!a}),clamp_1=_curry3_1(function(min,max,value){if(min>max)throw new Error("min must not be greater than max in clamp(min, max, value)");return value<min?min:value>max?max:value});var _complement_1=function(f){return function(){return!f.apply(this,arguments)}};var _isTransformer_1=function(obj){return null!=obj&&"function"==typeof obj["@@transducer/step"]};var _dispatchable_1=function(methodNames,xf,fn){return function(){if(0===arguments.length)return fn();var args=Array.prototype.slice.call(arguments,0),obj=args.pop();if(!_isArray(obj)){for(var idx=0;idx<methodNames.length;){if("function"==typeof obj[methodNames[idx]])return obj[methodNames[idx]].apply(obj,args);idx+=1}if(_isTransformer_1(obj))return xf.apply(null,args)(obj)}return fn.apply(this,arguments)}};var _filter_1=function(fn,list){for(var idx=0,len=list.length,result=[];idx<len;)fn(list[idx])&&(result[result.length]=list[idx]),idx+=1;return result},_xfBase_init=function(){return this.xf["@@transducer/init"]()},_xfBase_result=function(result){return this.xf["@@transducer/result"](result)},XFilter=function(){function XFilter(f,xf){this.xf=xf,this.f=f}return XFilter.prototype["@@transducer/init"]=_xfBase_init,XFilter.prototype["@@transducer/result"]=_xfBase_result,XFilter.prototype["@@transducer/step"]=function(result,input){return this.f(input)?this.xf["@@transducer/step"](result,input):result},XFilter}(),filter_1=_curry2_1(_dispatchable_1(["filter"],_curry2_1(function(f,xf){return new XFilter(f,xf)}),function(pred,filterable){return _isObject_1(filterable)?_reduce_1(function(acc,key){return pred(filterable[key])&&(acc[key]=filterable[key]),acc},{},keys_1(filterable)):_filter_1(pred,filterable)})),reject_1=_curry2_1(function(pred,filterable){return filter_1(_complement_1(pred),filterable)});var _concat_1=function(set1,set2){var idx;set2=set2||[];var len1=(set1=set1||[]).length,len2=set2.length,result=[];for(idx=0;idx<len1;)result[result.length]=set1[idx],idx+=1;for(idx=0;idx<len2;)result[result.length]=set2[idx],idx+=1;return result},append_1=_curry2_1(function(el,list){return _concat_1(list,[el])}),lt_1=_curry2_1(function(a,b){return a<b}),__={"@@functional/placeholder":!0},gte_1=_curry2_1(function(a,b){return a>=b});var _isFunction_1=function(x){return"[object Function]"===Object.prototype.toString.call(x)};var _map_1=function(fn,functor){for(var idx=0,len=functor.length,result=Array(len);idx<len;)result[idx]=fn(functor[idx]),idx+=1;return result},XMap=function(){function XMap(f,xf){this.xf=xf,this.f=f}return XMap.prototype["@@transducer/init"]=_xfBase_init,XMap.prototype["@@transducer/result"]=_xfBase_result,XMap.prototype["@@transducer/step"]=function(result,input){return this.xf["@@transducer/step"](result,this.f(input))},XMap}(),_xmap_1=_curry2_1(function(f,xf){return new XMap(f,xf)});var _curryN_1=function _curryN(length,received,fn){return function(){for(var combined=[],argsIdx=0,left=length,combinedIdx=0;combinedIdx<received.length||argsIdx<arguments.length;){var result;combinedIdx<received.length&&(!_isPlaceholder_1(received[combinedIdx])||argsIdx>=arguments.length)?result=received[combinedIdx]:(result=arguments[argsIdx],argsIdx+=1),combined[combinedIdx]=result,_isPlaceholder_1(result)||(left-=1),combinedIdx+=1}return left<=0?fn.apply(this,combined):_arity_1(left,_curryN(length,combined,fn))}},curryN_1=_curry2_1(function(length,fn){return 1===length?_curry1_1(fn):_arity_1(length,_curryN_1(length,[],fn))}),map_1=_curry2_1(_dispatchable_1(["fantasy-land/map","map"],_xmap_1,function(fn,functor){switch(Object.prototype.toString.call(functor)){case"[object Function]":return curryN_1(functor.length,function(){return fn.call(this,functor.apply(this,arguments))});case"[object Object]":return _reduce_1(function(acc,key){return acc[key]=fn(functor[key]),acc},{},keys_1(functor));default:return _map_1(fn,functor)}})),ap_1=_curry2_1(function(applyF,applyX){return"function"==typeof applyX["fantasy-land/ap"]?applyX["fantasy-land/ap"](applyF):"function"==typeof applyF.ap?applyF.ap(applyX):"function"==typeof applyF?function(x){return applyF(x)(applyX(x))}:_reduce_1(function(acc,f){return _concat_1(acc,map_1(f,applyX))},[],applyF)}),liftN_1=_curry2_1(function(arity,fn){var lifted=curryN_1(arity,fn);return curryN_1(arity,function(){return _reduce_1(ap_1,map_1(lifted,arguments[0]),Array.prototype.slice.call(arguments,1))})}),lift_1=_curry1_1(function(fn){return liftN_1(fn.length,fn)}),or_1=_curry2_1(function(a,b){return a||b}),either_1=_curry2_1(function(f,g){return _isFunction_1(f)?function(){return f.apply(this,arguments)||g.apply(this,arguments)}:lift_1(or_1)(f,g)}),and_1=_curry2_1(function(a,b){return a&&b}),both_1=_curry2_1(function(f,g){return _isFunction_1(f)?function(){return f.apply(this,arguments)&&g.apply(this,arguments)}:lift_1(and_1)(f,g)}),max_1=_curry2_1(function(a,b){return b>a?b:a}),pluck_1=_curry2_1(function(p,list){return map_1(prop_1(p),list)}),unless_1=_curry3_1(function(pred,whenFalseFn,x){return pred(x)?x:whenFalseFn(x)});var _reduced_1=function(x){return x&&x["@@transducer/reduced"]?x:{"@@transducer/value":x,"@@transducer/reduced":!0}},XFind=function(){function XFind(f,xf){this.xf=xf,this.f=f,this.found=!1}return XFind.prototype["@@transducer/init"]=_xfBase_init,XFind.prototype["@@transducer/result"]=function(result){return this.found||(result=this.xf["@@transducer/step"](result,void 0)),this.xf["@@transducer/result"](result)},XFind.prototype["@@transducer/step"]=function(result,input){return this.f(input)&&(this.found=!0,result=_reduced_1(this.xf["@@transducer/step"](result,input))),result},XFind}(),find_1=_curry2_1(_dispatchable_1(["find"],_curry2_1(function(f,xf){return new XFind(f,xf)}),function(fn,list){for(var idx=0,len=list.length;idx<len;){if(fn(list[idx]))return list[idx];idx+=1}})),propEq_1=_curry3_1(function(name,val,obj){return equals_1(val,obj[name])}),min_1=_curry2_1(function(a,b){return b<a?b:a}),gt_1=_curry2_1(function(a,b){return a>b}),last_1=_curry2_1(function(offset,list){var idx=offset<0?list.length+offset:offset;return _isString_1(list)?list.charAt(idx):list[idx]})(-1);var descriptor,originalSetter,expr_1=function(t,v0,v1,t0,t1){return t<=t0?v0:t1<=t?v1:v0+(t-t0)/(t1-t0)*(v1-v0)},expr_2=function(t,v0,v1,t0,t1){var a;return t<=t0?v0:t1<=t?v1:v0===v1?v0:(a=(t-t0)/(t1-t0),0<v0&&0<v1||v0<0&&v1<0?v0*Math.pow(v1/v0,a):0)},AudioContextClass=isNil_1(window.BaseAudioContext)?isNil_1(window.AudioContext)?webkitAudioContext:AudioContext:BaseAudioContext,maxAll=reduce_1(max_1,-1/0),minAll=reduce_1(min_1,1/0),getTargetValueOfChange=function(scheduledChange){return"setValueCurveAtTime"===scheduledChange.method?last_1(scheduledChange.params[0]):scheduledChange.params[0]},evaluateSchedulement=function(scheduledChanges,initialValue,initialTime){var endTime=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1/0,lastChangeBeforeTime=function(scheduledChanges,time){var targetTimeOfLastChange=compose_1(maxAll,filter_1(lt_1(__,time)),pluck_1("targetTime"))(scheduledChanges);return find_1(propEq_1("targetTime",targetTimeOfLastChange),scheduledChanges)}(scheduledChanges,endTime),firstChangeAfterTime=function(scheduledChanges,time){var targetTimeOfLastChange=compose_1(minAll,filter_1(gt_1(__,time)),pluck_1("targetTime"))(scheduledChanges);return find_1(propEq_1("targetTime",targetTimeOfLastChange),scheduledChanges)}(scheduledChanges,endTime),value=isNil_1(lastChangeBeforeTime)?initialValue:getTargetValueOfChange(lastChangeBeforeTime);if(!isNil_1(firstChangeAfterTime)){var endTimeOfLastChange=isNil_1(lastChangeBeforeTime)?initialTime:lastChangeBeforeTime.targetTime;switch(firstChangeAfterTime.method){case"linearRampToValueAtTime":value=expr_1(endTime,value,getTargetValueOfChange(firstChangeAfterTime),endTimeOfLastChange,firstChangeAfterTime.targetTime);break;case"exponentialRampToValueAtTime":value=expr_2(endTime,value,getTargetValueOfChange(firstChangeAfterTime),endTimeOfLastChange,firstChangeAfterTime.targetTime)}}return value},gotChangesScheduled=compose_1(not_1,isEmpty_1,prop_1("_scheduledChanges")),bindContextToParams=function(creatorName,params){var originalFn=AudioContextClass.prototype[creatorName];isNil_1(originalFn)||(AudioContextClass.prototype[creatorName]=function(){for(var ctx=this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];var node=originalFn.apply(ctx,args);return params.forEach(function(param){var audioParam=node[param];audioParam._ctx=ctx,audioParam._value=audioParam.value,audioParam._valueWasLastSetAt=0,audioParam._scheduledChanges=[]}),node})},bindSchedulerToParamMethod=function(methodName,timeArgIndex){var originalFn=AudioParam.prototype[methodName];isNil_1(originalFn)||(AudioParam.prototype[methodName]=function(){for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++)args[_key2]=arguments[_key2];return function(audioParam,method,params,targetTime){var now=audioParam._ctx.currentTime,outdatedSchedulements=filter_1(compose_1(both_1(gte_1(__,audioParam._valueWasLastSetAt),lt_1(__,now)),prop_1("targetTime")))(audioParam._scheduledChanges);isEmpty_1(outdatedSchedulements)||(audioParam._valueWasLastSetAt=compose_1(maxAll,pluck_1("targetTime"))(outdatedSchedulements),audioParam._value=evaluateSchedulement(outdatedSchedulements,audioParam._value,audioParam._valueWasLastSetAt)),audioParam._scheduledChanges=compose_1(unless_1(function(){return"cancelScheduledValues"===method},append_1({method:method,params:params,targetTime:clamp_1(now,1/0,targetTime)})),reject_1(compose_1(either_1("cancelScheduledValues"===method?gte_1(__,targetTime):equals_1(__,targetTime),lt_1(__,now)),prop_1("targetTime"))))(audioParam._scheduledChanges)}(this,methodName,args,args[timeArgIndex]),originalFn.apply(this,args),this})};!isNil_1(window.AudioParam)&&isNil_1(AudioParam.prototype.cancelAndHoldAtTime)&&(isNil_1(AudioParam.prototype.cancelValuesAndHoldAtTime)?(bindContextToParams("createBiquadFilter",["frequency","detune","Q","gain"]),bindContextToParams("createBufferSource",["detune","playbackRate"]),bindContextToParams("createConstantSource",["offset"]),bindContextToParams("createDelay",["delayTime"]),bindContextToParams("createDynamicsCompressor",["threshold","knee","ratio","attack","release"]),bindContextToParams("createGain",["gain"]),bindContextToParams("createOscillator",["frequency","detune"]),bindContextToParams("createPanner",["orientationX","orientationY","orientationZ","positionX","positionY","positionZ"]),bindContextToParams("createStereoPanner",["pan"]),bindSchedulerToParamMethod("cancelScheduledValues",0),bindSchedulerToParamMethod("setValueAtTime",1),bindSchedulerToParamMethod("linearRampToValueAtTime",1),bindSchedulerToParamMethod("exponentialRampToValueAtTime",1),descriptor=Object.getOwnPropertyDescriptor(AudioParam.prototype,"value"),originalSetter=descriptor.set,descriptor.set=function(newValue){gotChangesScheduled(this)||(this._value=clamp_1(this.minValue,this.maxValue,newValue),this._valueWasLastSetAt=this._ctx.currentTime,originalSetter.call(this,newValue))},Object.defineProperty(AudioParam.prototype,"value",descriptor),AudioParam.prototype.cancelAndHoldAtTime=function(cancelTime){if(gotChangesScheduled(this)){var valueAtCancelTime=function(audioParam,time){return gotChangesScheduled(audioParam)?evaluateSchedulement(audioParam._scheduledChanges,audioParam._value,audioParam._valueWasLastSetAt,time):audioParam._value}(this,cancelTime);this.cancelScheduledValues(cancelTime),this.setValueAtTime(valueAtCancelTime,cancelTime)}}):AudioParam.prototype.cancelAndHoldAtTime=AudioParam.prototype.cancelValuesAndHoldAtTime)}(); | ||
// cancelandholdattime-polyfill - created by Lajos Meszaros <m_lajos@hotmail.com> - MIT licence - last built on 2019-05-30 | ||
!function(){"use strict";var _isPlaceholder_1=function(a){return null!=a&&"object"==typeof a&&!0===a["@@functional/placeholder"]};var _curry1_1=function(fn){return function f1(a){return 0===arguments.length||_isPlaceholder_1(a)?f1:fn.apply(this,arguments)}},isNil_1=_curry1_1(function(x){return null==x});var _has_1=function(prop,obj){return Object.prototype.hasOwnProperty.call(obj,prop)},toString=Object.prototype.toString,_isArguments_1=function(){return"[object Arguments]"===toString.call(arguments)?function(x){return"[object Arguments]"===toString.call(x)}:function(x){return _has_1("callee",x)}}(),_isArray=Array.isArray||function(val){return null!=val&&val.length>=0&&"[object Array]"===Object.prototype.toString.call(val)};var _isObject_1=function(x){return"[object Object]"===Object.prototype.toString.call(x)};var _isString_1=function(x){return"[object String]"===Object.prototype.toString.call(x)},empty_1=_curry1_1(function(x){return null!=x&&"function"==typeof x["fantasy-land/empty"]?x["fantasy-land/empty"]():null!=x&&null!=x.constructor&&"function"==typeof x.constructor["fantasy-land/empty"]?x.constructor["fantasy-land/empty"]():null!=x&&"function"==typeof x.empty?x.empty():null!=x&&null!=x.constructor&&"function"==typeof x.constructor.empty?x.constructor.empty():_isArray(x)?[]:_isString_1(x)?"":_isObject_1(x)?{}:_isArguments_1(x)?function(){return arguments}():void 0});var _curry2_1=function(fn){return function f2(a,b){switch(arguments.length){case 0:return f2;case 1:return _isPlaceholder_1(a)?f2:_curry1_1(function(_b){return fn(a,_b)});default:return _isPlaceholder_1(a)&&_isPlaceholder_1(b)?f2:_isPlaceholder_1(a)?_curry1_1(function(_a){return fn(_a,b)}):_isPlaceholder_1(b)?_curry1_1(function(_b){return fn(a,_b)}):fn(a,b)}}};var _arrayFromIterator_1=function(iter){for(var next,list=[];!(next=iter.next()).done;)list.push(next.value);return list};var _includesWith_1=function(pred,x,list){for(var idx=0,len=list.length;idx<len;){if(pred(x,list[idx]))return!0;idx+=1}return!1};var _functionName_1=function(f){var match=String(f).match(/^function (\w*)/);return null==match?"":match[1]};var _objectIs_1="function"==typeof Object.is?Object.is:function(a,b){return a===b?0!==a||1/a==1/b:a!=a&&b!=b},hasEnumBug=!{toString:null}.propertyIsEnumerable("toString"),nonEnumerableProps=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],hasArgsEnumBug=function(){return arguments.propertyIsEnumerable("length")}(),contains=function(list,item){for(var idx=0;idx<list.length;){if(list[idx]===item)return!0;idx+=1}return!1},keys_1="function"!=typeof Object.keys||hasArgsEnumBug?_curry1_1(function(obj){if(Object(obj)!==obj)return[];var prop,nIdx,ks=[],checkArgsLength=hasArgsEnumBug&&_isArguments_1(obj);for(prop in obj)!_has_1(prop,obj)||checkArgsLength&&"length"===prop||(ks[ks.length]=prop);if(hasEnumBug)for(nIdx=nonEnumerableProps.length-1;nIdx>=0;)_has_1(prop=nonEnumerableProps[nIdx],obj)&&!contains(ks,prop)&&(ks[ks.length]=prop),nIdx-=1;return ks}):_curry1_1(function(obj){return Object(obj)!==obj?[]:Object.keys(obj)}),type_1=_curry1_1(function(val){return null===val?"Null":void 0===val?"Undefined":Object.prototype.toString.call(val).slice(8,-1)});function _uniqContentEquals(aIterator,bIterator,stackA,stackB){var a=_arrayFromIterator_1(aIterator),b=_arrayFromIterator_1(bIterator);function eq(_a,_b){return _equals(_a,_b,stackA.slice(),stackB.slice())}return!_includesWith_1(function(b,aItem){return!_includesWith_1(eq,aItem,b)},b,a)}function _equals(a,b,stackA,stackB){if(_objectIs_1(a,b))return!0;var typeA=type_1(a);if(typeA!==type_1(b))return!1;if(null==a||null==b)return!1;if("function"==typeof a["fantasy-land/equals"]||"function"==typeof b["fantasy-land/equals"])return"function"==typeof a["fantasy-land/equals"]&&a["fantasy-land/equals"](b)&&"function"==typeof b["fantasy-land/equals"]&&b["fantasy-land/equals"](a);if("function"==typeof a.equals||"function"==typeof b.equals)return"function"==typeof a.equals&&a.equals(b)&&"function"==typeof b.equals&&b.equals(a);switch(typeA){case"Arguments":case"Array":case"Object":if("function"==typeof a.constructor&&"Promise"===_functionName_1(a.constructor))return a===b;break;case"Boolean":case"Number":case"String":if(typeof a!=typeof b||!_objectIs_1(a.valueOf(),b.valueOf()))return!1;break;case"Date":if(!_objectIs_1(a.valueOf(),b.valueOf()))return!1;break;case"Error":return a.name===b.name&&a.message===b.message;case"RegExp":if(a.source!==b.source||a.global!==b.global||a.ignoreCase!==b.ignoreCase||a.multiline!==b.multiline||a.sticky!==b.sticky||a.unicode!==b.unicode)return!1}for(var idx=stackA.length-1;idx>=0;){if(stackA[idx]===a)return stackB[idx]===b;idx-=1}switch(typeA){case"Map":return a.size===b.size&&_uniqContentEquals(a.entries(),b.entries(),stackA.concat([a]),stackB.concat([b]));case"Set":return a.size===b.size&&_uniqContentEquals(a.values(),b.values(),stackA.concat([a]),stackB.concat([b]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var keysA=keys_1(a);if(keysA.length!==keys_1(b).length)return!1;var extendedStackA=stackA.concat([a]),extendedStackB=stackB.concat([b]);for(idx=keysA.length-1;idx>=0;){var key=keysA[idx];if(!_has_1(key,b)||!_equals(b[key],a[key],extendedStackA,extendedStackB))return!1;idx-=1}return!0}var _equals_1=_equals,equals_1=_curry2_1(function(a,b){return _equals_1(a,b,[],[])}),isEmpty_1=_curry1_1(function(x){return null!=x&&equals_1(x,empty_1(x))}),path_1=_curry2_1(function(paths,obj){for(var val=obj,idx=0;idx<paths.length;){if(null==val)return;val=val[paths[idx]],idx+=1}return val}),prop_1=_curry2_1(function(p,obj){return path_1([p],obj)});var _arity_1=function(n,fn){switch(n){case 0:return function(){return fn.apply(this,arguments)};case 1:return function(a0){return fn.apply(this,arguments)};case 2:return function(a0,a1){return fn.apply(this,arguments)};case 3:return function(a0,a1,a2){return fn.apply(this,arguments)};case 4:return function(a0,a1,a2,a3){return fn.apply(this,arguments)};case 5:return function(a0,a1,a2,a3,a4){return fn.apply(this,arguments)};case 6:return function(a0,a1,a2,a3,a4,a5){return fn.apply(this,arguments)};case 7:return function(a0,a1,a2,a3,a4,a5,a6){return fn.apply(this,arguments)};case 8:return function(a0,a1,a2,a3,a4,a5,a6,a7){return fn.apply(this,arguments)};case 9:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8){return fn.apply(this,arguments)};case 10:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){return fn.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}};var _pipe_1=function(f,g){return function(){return g.call(this,f.apply(this,arguments))}};var _curry3_1=function(fn){return function f3(a,b,c){switch(arguments.length){case 0:return f3;case 1:return _isPlaceholder_1(a)?f3:_curry2_1(function(_b,_c){return fn(a,_b,_c)});case 2:return _isPlaceholder_1(a)&&_isPlaceholder_1(b)?f3:_isPlaceholder_1(a)?_curry2_1(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder_1(b)?_curry2_1(function(_b,_c){return fn(a,_b,_c)}):_curry1_1(function(_c){return fn(a,b,_c)});default:return _isPlaceholder_1(a)&&_isPlaceholder_1(b)&&_isPlaceholder_1(c)?f3:_isPlaceholder_1(a)&&_isPlaceholder_1(b)?_curry2_1(function(_a,_b){return fn(_a,_b,c)}):_isPlaceholder_1(a)&&_isPlaceholder_1(c)?_curry2_1(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder_1(b)&&_isPlaceholder_1(c)?_curry2_1(function(_b,_c){return fn(a,_b,_c)}):_isPlaceholder_1(a)?_curry1_1(function(_a){return fn(_a,b,c)}):_isPlaceholder_1(b)?_curry1_1(function(_b){return fn(a,_b,c)}):_isPlaceholder_1(c)?_curry1_1(function(_c){return fn(a,b,_c)}):fn(a,b,c)}}},_isArrayLike_1=_curry1_1(function(x){return!!_isArray(x)||!!x&&("object"==typeof x&&(!_isString_1(x)&&(1===x.nodeType?!!x.length:0===x.length||x.length>0&&(x.hasOwnProperty(0)&&x.hasOwnProperty(x.length-1)))))}),XWrap=function(){function XWrap(fn){this.f=fn}return XWrap.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},XWrap.prototype["@@transducer/result"]=function(acc){return acc},XWrap.prototype["@@transducer/step"]=function(acc,x){return this.f(acc,x)},XWrap}();var _xwrap_1=function(fn){return new XWrap(fn)},bind_1=_curry2_1(function(fn,thisObj){return _arity_1(fn.length,function(){return fn.apply(thisObj,arguments)})});function _iterableReduce(xf,acc,iter){for(var step=iter.next();!step.done;){if((acc=xf["@@transducer/step"](acc,step.value))&&acc["@@transducer/reduced"]){acc=acc["@@transducer/value"];break}step=iter.next()}return xf["@@transducer/result"](acc)}function _methodReduce(xf,acc,obj,methodName){return xf["@@transducer/result"](obj[methodName](bind_1(xf["@@transducer/step"],xf),acc))}var symIterator="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";var _reduce_1=function(fn,acc,list){if("function"==typeof fn&&(fn=_xwrap_1(fn)),_isArrayLike_1(list))return function(xf,acc,list){for(var idx=0,len=list.length;idx<len;){if((acc=xf["@@transducer/step"](acc,list[idx]))&&acc["@@transducer/reduced"]){acc=acc["@@transducer/value"];break}idx+=1}return xf["@@transducer/result"](acc)}(fn,acc,list);if("function"==typeof list["fantasy-land/reduce"])return _methodReduce(fn,acc,list,"fantasy-land/reduce");if(null!=list[symIterator])return _iterableReduce(fn,acc,list[symIterator]());if("function"==typeof list.next)return _iterableReduce(fn,acc,list);if("function"==typeof list.reduce)return _methodReduce(fn,acc,list,"reduce");throw new TypeError("reduce: list must be array or iterable")},reduce_1=_curry3_1(_reduce_1);var _checkForMethod_1=function(methodname,fn){return function(){var length=arguments.length;if(0===length)return fn();var obj=arguments[length-1];return _isArray(obj)||"function"!=typeof obj[methodname]?fn.apply(this,arguments):obj[methodname].apply(obj,Array.prototype.slice.call(arguments,0,length-1))}},tail_1=_curry1_1(_checkForMethod_1("tail",_curry3_1(_checkForMethod_1("slice",function(fromIndex,toIndex,list){return Array.prototype.slice.call(list,fromIndex,toIndex)}))(1,1/0)));var pipe_1=function(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return _arity_1(arguments[0].length,reduce_1(_pipe_1,arguments[0],tail_1(arguments)))},reverse_1=_curry1_1(function(list){return _isString_1(list)?list.split("").reverse().join(""):Array.prototype.slice.call(list,0).reverse()});var compose_1=function(){if(0===arguments.length)throw new Error("compose requires at least one argument");return pipe_1.apply(this,reverse_1(arguments))},not_1=_curry1_1(function(a){return!a}),clamp_1=_curry3_1(function(min,max,value){if(min>max)throw new Error("min must not be greater than max in clamp(min, max, value)");return value<min?min:value>max?max:value});var _complement_1=function(f){return function(){return!f.apply(this,arguments)}};var _isTransformer_1=function(obj){return null!=obj&&"function"==typeof obj["@@transducer/step"]};var _dispatchable_1=function(methodNames,xf,fn){return function(){if(0===arguments.length)return fn();var args=Array.prototype.slice.call(arguments,0),obj=args.pop();if(!_isArray(obj)){for(var idx=0;idx<methodNames.length;){if("function"==typeof obj[methodNames[idx]])return obj[methodNames[idx]].apply(obj,args);idx+=1}if(_isTransformer_1(obj))return xf.apply(null,args)(obj)}return fn.apply(this,arguments)}};var _filter_1=function(fn,list){for(var idx=0,len=list.length,result=[];idx<len;)fn(list[idx])&&(result[result.length]=list[idx]),idx+=1;return result},_xfBase_init=function(){return this.xf["@@transducer/init"]()},_xfBase_result=function(result){return this.xf["@@transducer/result"](result)},XFilter=function(){function XFilter(f,xf){this.xf=xf,this.f=f}return XFilter.prototype["@@transducer/init"]=_xfBase_init,XFilter.prototype["@@transducer/result"]=_xfBase_result,XFilter.prototype["@@transducer/step"]=function(result,input){return this.f(input)?this.xf["@@transducer/step"](result,input):result},XFilter}(),filter_1=_curry2_1(_dispatchable_1(["filter"],_curry2_1(function(f,xf){return new XFilter(f,xf)}),function(pred,filterable){return _isObject_1(filterable)?_reduce_1(function(acc,key){return pred(filterable[key])&&(acc[key]=filterable[key]),acc},{},keys_1(filterable)):_filter_1(pred,filterable)})),reject_1=_curry2_1(function(pred,filterable){return filter_1(_complement_1(pred),filterable)});var _concat_1=function(set1,set2){var idx;set2=set2||[];var len1=(set1=set1||[]).length,len2=set2.length,result=[];for(idx=0;idx<len1;)result[result.length]=set1[idx],idx+=1;for(idx=0;idx<len2;)result[result.length]=set2[idx],idx+=1;return result},append_1=_curry2_1(function(el,list){return _concat_1(list,[el])}),lt_1=_curry2_1(function(a,b){return a<b}),__={"@@functional/placeholder":!0},gte_1=_curry2_1(function(a,b){return a>=b});var _isFunction_1=function(x){return"[object Function]"===Object.prototype.toString.call(x)};var _map_1=function(fn,functor){for(var idx=0,len=functor.length,result=Array(len);idx<len;)result[idx]=fn(functor[idx]),idx+=1;return result},XMap=function(){function XMap(f,xf){this.xf=xf,this.f=f}return XMap.prototype["@@transducer/init"]=_xfBase_init,XMap.prototype["@@transducer/result"]=_xfBase_result,XMap.prototype["@@transducer/step"]=function(result,input){return this.xf["@@transducer/step"](result,this.f(input))},XMap}(),_xmap_1=_curry2_1(function(f,xf){return new XMap(f,xf)});var _curryN_1=function _curryN(length,received,fn){return function(){for(var combined=[],argsIdx=0,left=length,combinedIdx=0;combinedIdx<received.length||argsIdx<arguments.length;){var result;combinedIdx<received.length&&(!_isPlaceholder_1(received[combinedIdx])||argsIdx>=arguments.length)?result=received[combinedIdx]:(result=arguments[argsIdx],argsIdx+=1),combined[combinedIdx]=result,_isPlaceholder_1(result)||(left-=1),combinedIdx+=1}return left<=0?fn.apply(this,combined):_arity_1(left,_curryN(length,combined,fn))}},curryN_1=_curry2_1(function(length,fn){return 1===length?_curry1_1(fn):_arity_1(length,_curryN_1(length,[],fn))}),map_1=_curry2_1(_dispatchable_1(["fantasy-land/map","map"],_xmap_1,function(fn,functor){switch(Object.prototype.toString.call(functor)){case"[object Function]":return curryN_1(functor.length,function(){return fn.call(this,functor.apply(this,arguments))});case"[object Object]":return _reduce_1(function(acc,key){return acc[key]=fn(functor[key]),acc},{},keys_1(functor));default:return _map_1(fn,functor)}})),ap_1=_curry2_1(function(applyF,applyX){return"function"==typeof applyX["fantasy-land/ap"]?applyX["fantasy-land/ap"](applyF):"function"==typeof applyF.ap?applyF.ap(applyX):"function"==typeof applyF?function(x){return applyF(x)(applyX(x))}:_reduce_1(function(acc,f){return _concat_1(acc,map_1(f,applyX))},[],applyF)}),liftN_1=_curry2_1(function(arity,fn){var lifted=curryN_1(arity,fn);return curryN_1(arity,function(){return _reduce_1(ap_1,map_1(lifted,arguments[0]),Array.prototype.slice.call(arguments,1))})}),lift_1=_curry1_1(function(fn){return liftN_1(fn.length,fn)}),or_1=_curry2_1(function(a,b){return a||b}),either_1=_curry2_1(function(f,g){return _isFunction_1(f)?function(){return f.apply(this,arguments)||g.apply(this,arguments)}:lift_1(or_1)(f,g)}),and_1=_curry2_1(function(a,b){return a&&b}),both_1=_curry2_1(function(f,g){return _isFunction_1(f)?function(){return f.apply(this,arguments)&&g.apply(this,arguments)}:lift_1(and_1)(f,g)}),max_1=_curry2_1(function(a,b){return b>a?b:a}),pluck_1=_curry2_1(function(p,list){return map_1(prop_1(p),list)}),unless_1=_curry3_1(function(pred,whenFalseFn,x){return pred(x)?x:whenFalseFn(x)});var _reduced_1=function(x){return x&&x["@@transducer/reduced"]?x:{"@@transducer/value":x,"@@transducer/reduced":!0}},XFind=function(){function XFind(f,xf){this.xf=xf,this.f=f,this.found=!1}return XFind.prototype["@@transducer/init"]=_xfBase_init,XFind.prototype["@@transducer/result"]=function(result){return this.found||(result=this.xf["@@transducer/step"](result,void 0)),this.xf["@@transducer/result"](result)},XFind.prototype["@@transducer/step"]=function(result,input){return this.f(input)&&(this.found=!0,result=_reduced_1(this.xf["@@transducer/step"](result,input))),result},XFind}(),find_1=_curry2_1(_dispatchable_1(["find"],_curry2_1(function(f,xf){return new XFind(f,xf)}),function(fn,list){for(var idx=0,len=list.length;idx<len;){if(fn(list[idx]))return list[idx];idx+=1}})),propEq_1=_curry3_1(function(name,val,obj){return equals_1(val,obj[name])}),min_1=_curry2_1(function(a,b){return b<a?b:a}),gt_1=_curry2_1(function(a,b){return a>b}),last_1=_curry2_1(function(offset,list){var idx=offset<0?list.length+offset:offset;return _isString_1(list)?list.charAt(idx):list[idx]})(-1),hasPath_1=_curry2_1(function(_path,obj){if(0===_path.length)return!1;for(var val=obj,idx=0;idx<_path.length;){if(!_has_1(_path[idx],val))return!1;val=val[_path[idx]],idx+=1}return!0}),has_1=_curry2_1(function(prop,obj){return hasPath_1([prop],obj)});var descriptor,originalSetter,expr_1=function(t,v0,v1,t0,t1){return t<=t0?v0:t1<=t?v1:v0+(t-t0)/(t1-t0)*(v1-v0)},expr_2=function(t,v0,v1,t0,t1){var a;return t<=t0?v0:t1<=t?v1:v0===v1?v0:(a=(t-t0)/(t1-t0),0<v0&&0<v1||v0<0&&v1<0?v0*Math.pow(v1/v0,a):0)},expr_3=function(t,v0,v1,t0,timeConstant){return t<=t0?v0:v1+(v0-v1)*Math.exp((t0-t)/timeConstant)},AudioContextClass=isNil_1(window.BaseAudioContext)?isNil_1(window.AudioContext)?webkitAudioContext:AudioContext:BaseAudioContext,maxAll=reduce_1(max_1,-1/0),minAll=reduce_1(min_1,1/0),getTargetValueOfChange=function(scheduledChange){return"setValueCurveAtTime"===scheduledChange.method?last_1(scheduledChange.params[0]):scheduledChange.params[0]},evaluateSchedulement=function(scheduledChanges,initialValue,initialTime){var endTime=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1/0,lastChangeBeforeTime=function(scheduledChanges,time){var targetTimeOfLastChange=compose_1(maxAll,filter_1(lt_1(__,time)),pluck_1("targetTime"))(scheduledChanges);return find_1(propEq_1("targetTime",targetTimeOfLastChange),scheduledChanges)}(scheduledChanges,endTime),firstChangeAfterTime=function(scheduledChanges,time){var targetTimeOfLastChange=compose_1(minAll,filter_1(gt_1(__,time)),pluck_1("targetTime"))(scheduledChanges);return find_1(propEq_1("targetTime",targetTimeOfLastChange),scheduledChanges)}(scheduledChanges,endTime),value=isNil_1(lastChangeBeforeTime)?initialValue:getTargetValueOfChange(lastChangeBeforeTime);if(!isNil_1(firstChangeAfterTime)){var endTimeOfLastChange=isNil_1(lastChangeBeforeTime)?initialTime:lastChangeBeforeTime.targetTime;switch(firstChangeAfterTime.method){case"linearRampToValueAtTime":value=expr_1(endTime,value,getTargetValueOfChange(firstChangeAfterTime),endTimeOfLastChange,firstChangeAfterTime.targetTime);break;case"exponentialRampToValueAtTime":value=expr_2(endTime,value,getTargetValueOfChange(firstChangeAfterTime),endTimeOfLastChange,firstChangeAfterTime.targetTime);break;case"setTargetAtTime":value=expr_3(endTime,value,firstChangeAfterTime.params[0],firstChangeAfterTime.params[1],firstChangeAfterTime.params[2])}}return value},gotChangesScheduled=compose_1(not_1,isEmpty_1,prop_1("_scheduledChanges")),bindContextToParams=function(creatorName,params){var originalFn=AudioContextClass.prototype[creatorName];isNil_1(originalFn)||(AudioContextClass.prototype[creatorName]=function(){for(var ctx=this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];var node=originalFn.apply(ctx,args);return params.forEach(function(param){var audioParam=node[param];audioParam._ctx=ctx,audioParam._value=audioParam.value,audioParam._valueWasLastSetAt=0,audioParam._scheduledChanges=[]}),node})},bindSchedulerToParamMethod=function(methodName){var timeArgIndex=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,originalFn=AudioParam.prototype[methodName];isNil_1(originalFn)||(AudioParam.prototype[methodName]=function(){for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++)args[_key2]=arguments[_key2];return function(audioParam,method,params,targetTime){var now=audioParam._ctx.currentTime,outdatedSchedulements=filter_1(compose_1(both_1(gte_1(__,audioParam._valueWasLastSetAt),lt_1(__,now)),prop_1("targetTime")))(audioParam._scheduledChanges);isEmpty_1(outdatedSchedulements)||(audioParam._valueWasLastSetAt=compose_1(maxAll,pluck_1("targetTime"))(outdatedSchedulements),audioParam._value=evaluateSchedulement(outdatedSchedulements,audioParam._value,audioParam._valueWasLastSetAt)),audioParam._scheduledChanges=compose_1(unless_1(function(){return"cancelScheduledValues"===method},append_1({method:method,params:params,targetTime:clamp_1(now,1/0,targetTime)})),reject_1(compose_1(either_1("cancelScheduledValues"===method?gte_1(__,targetTime):equals_1(__,targetTime),lt_1(__,now)),prop_1("targetTime"))))(audioParam._scheduledChanges)}(this,methodName,args,has_1(timeArgIndex,args)?args[timeArgIndex]:1/0),originalFn.apply(this,args),this})};!isNil_1(window.AudioParam)&&isNil_1(AudioParam.prototype.cancelAndHoldAtTime)&&(isNil_1(AudioParam.prototype.cancelValuesAndHoldAtTime)?(bindContextToParams("createBiquadFilter",["frequency","detune","Q","gain"]),bindContextToParams("createBufferSource",["detune","playbackRate"]),bindContextToParams("createConstantSource",["offset"]),bindContextToParams("createDelay",["delayTime"]),bindContextToParams("createDynamicsCompressor",["threshold","knee","ratio","attack","release"]),bindContextToParams("createGain",["gain"]),bindContextToParams("createOscillator",["frequency","detune"]),bindContextToParams("createPanner",["orientationX","orientationY","orientationZ","positionX","positionY","positionZ"]),bindContextToParams("createStereoPanner",["pan"]),bindSchedulerToParamMethod("cancelScheduledValues",0),bindSchedulerToParamMethod("setValueAtTime",1),bindSchedulerToParamMethod("linearRampToValueAtTime",1),bindSchedulerToParamMethod("exponentialRampToValueAtTime",1),bindSchedulerToParamMethod("setTargetAtTime"),descriptor=Object.getOwnPropertyDescriptor(AudioParam.prototype,"value"),originalSetter=descriptor.set,descriptor.set=function(newValue){gotChangesScheduled(this)||(this._value=clamp_1(this.minValue,this.maxValue,newValue),this._valueWasLastSetAt=this._ctx.currentTime,originalSetter.call(this,newValue))},Object.defineProperty(AudioParam.prototype,"value",descriptor),AudioParam.prototype.cancelAndHoldAtTime=function(cancelTime){if(gotChangesScheduled(this)){var valueAtCancelTime=function(audioParam,time){return gotChangesScheduled(audioParam)?evaluateSchedulement(audioParam._scheduledChanges,audioParam._value,audioParam._valueWasLastSetAt,time):audioParam._value}(this,cancelTime);this.cancelScheduledValues(cancelTime),this.setValueAtTime(valueAtCancelTime,cancelTime)}}):AudioParam.prototype.cancelAndHoldAtTime=AudioParam.prototype.cancelValuesAndHoldAtTime)}(); |
{ | ||
"title": "cancelAndHoldAtTime polyfill", | ||
"name": "cancelandholdattime-polyfill", | ||
"version": "1.13.0", | ||
"version": "1.14.0", | ||
"description": "Polyfill for AudioParam.prototype.cancelAndHoldAtTime()", | ||
@@ -6,0 +6,0 @@ "main": "src/index.js", |
@@ -56,3 +56,2 @@ # cancelandholdattime-polyfill | ||
> setTargetAtTime() | ||
> setValueCurveAtTime() | ||
@@ -65,1 +64,2 @@ | ||
* https://developer.mozilla.org/en-US/docs/Web/API/AudioParam/cancelAndHoldAtTime | ||
* https://webaudio.github.io/web-audio-api/#AudioParam-methods |
/* global BaseAudioContext, AudioContext, webkitAudioContext, AudioParam */ | ||
import { isEmpty, prop, compose, not, clamp, isNil, reject, append, equals, lt, __, gte, either, filter, both, reduce, max, pluck, unless, find, propEq, min, gt, last } from 'ramda' | ||
import { getLinearRampToValueAtTime, getExponentialRampToValueAtTime } from 'pseudo-audio-param/lib/expr.js' | ||
import { isEmpty, prop, compose, not, clamp, isNil, reject, append, equals, lt, __, gte, either, filter, both, reduce, max, pluck, unless, find, propEq, min, gt, last, has } from 'ramda' | ||
import { getLinearRampToValueAtTime, getExponentialRampToValueAtTime, getTargetValueAtTime } from 'pseudo-audio-param/lib/expr.js' | ||
@@ -53,5 +53,6 @@ const AudioContextClass = isNil(window.BaseAudioContext) ? (isNil(window.AudioContext) ? webkitAudioContext : AudioContext) : BaseAudioContext | ||
break | ||
/* | ||
case 'setTargetAtTime': | ||
value = getTargetValueAtTime(endTime, value, firstChangeAfterTime.params[0], firstChangeAfterTime.params[1], firstChangeAfterTime.params[2]) | ||
break | ||
/* | ||
case 'setValueCurveAtTime': | ||
@@ -146,3 +147,3 @@ break | ||
const bindSchedulerToParamMethod = (methodName, timeArgIndex) => { | ||
const bindSchedulerToParamMethod = (methodName, timeArgIndex = null) => { | ||
const originalFn = AudioParam.prototype[methodName] | ||
@@ -152,3 +153,3 @@ if (!isNil(originalFn)) { | ||
const audioParam = this | ||
scheduleChange(audioParam, methodName, args, args[timeArgIndex]) | ||
scheduleChange(audioParam, methodName, args, has(timeArgIndex, args) ? args[timeArgIndex] : Infinity) | ||
originalFn.apply(audioParam, args) | ||
@@ -155,0 +156,0 @@ return audioParam |
@@ -31,3 +31,3 @@ /* global AudioParam */ | ||
// bindSchedulerToParamMethod('setTargetAtTime', ??) // timeArg = ?? | ||
bindSchedulerToParamMethod('setTargetAtTime') | ||
// bindSchedulerToParamMethod('setValueCurveAtTime', ??) // timeArg = [1] + [2] | ||
@@ -34,0 +34,0 @@ |
44830
333