audio-param-transform
Advanced tools
Comparing version 0.2.0 to 0.3.0
42
index.js
@@ -9,2 +9,3 @@ var Scheduler = require('./scheduler') | ||
param.transform = transform | ||
param.clearTransforms = clearTransforms | ||
param.scheduler = Scheduler(param.context, Math.pow(2,10), doSchedule.bind(param)) | ||
@@ -16,2 +17,7 @@ param._transformCallback = param.scheduler.scheduleRange.bind(param.scheduler) | ||
function clearTransforms(){ | ||
var param = this | ||
this._transforms = [] | ||
} | ||
function transform(operation, defaultValue){ // bound to AudioParam | ||
@@ -29,6 +35,12 @@ var param = this | ||
var transform = TransformParam(this.context, defaultValue, param._transformCallback) | ||
transform.operation = operation | ||
param._transforms.push(transform) | ||
return transform | ||
var transformParam = TransformParam(this.context, defaultValue, param._transformCallback) | ||
transformParam.operation = operation | ||
transformParam._transforms = [] | ||
transformParam.transform = transform | ||
transformParam.clearTransforms = clearTransforms | ||
transformParam._transformCallback = param._transformCallback | ||
param._transforms.push(transformParam) | ||
return transformParam | ||
} | ||
@@ -45,5 +57,6 @@ | ||
var curves = [] | ||
var transforms = getTransforms(param) | ||
for (var i=0;i<param._transforms.length;i++){ | ||
var transform = param._transforms[i] | ||
for (var i=0;i<transforms.length;i++){ | ||
var transform = transforms[i] | ||
curves[i] = transform.generateCurveRange(from, to) | ||
@@ -54,4 +67,4 @@ } | ||
var value = defaultValue | ||
for (var x=0;x<param._transforms.length;x++){ | ||
var transform = param._transforms[x] | ||
for (var x=0;x<transforms.length;x++){ | ||
var transform = transforms[x] | ||
if (transform.operation){ | ||
@@ -71,2 +84,15 @@ value = transform.operation(value, curves[x][i]) | ||
} | ||
} | ||
function getTransforms(param, target){ | ||
target = target || [] | ||
if (Array.isArray(param._transforms)){ | ||
for (var i=0;i<param._transforms.length;i++){ | ||
target.push(param._transforms[i]) | ||
getTransforms(param._transforms[i], target) | ||
} | ||
} | ||
return target | ||
} |
{ | ||
"name": "audio-param-transform", | ||
"version": "0.2.0", | ||
"version": "0.3.0", | ||
"description": "Apply multiple transforms with custom functions to Web Audio API AudioParams.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -150,3 +150,3 @@ module.exports = function TransformAudioParam(audioContext, defaultValue, cb){ | ||
} else if (target.type === 'valueCurve'){ | ||
return target.value[Math.floor(pos * target.length)] | ||
return target.value[Math.min(Math.floor(pos * target.value.length), target.value.length-1)] | ||
} else if (target.type === 'target'){ | ||
@@ -153,0 +153,0 @@ return start + range * expFalloff(pos, target.timeConstant) |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
14910
394
0