apt

audio-param-transform

Apply multiple transforms with custom functions to Web Audio API AudioParams.

Showing:

Popularity

Downloads/wk

4

GitHub Stars

7

Maintenance

Last Commit

7yrs ago

Contributors

1

Package

Dependencies

0

License

ISC

Type Definitions

Tree-Shakeable

No?

Categories

Readme

audio-param-transform

Apply multiple transforms with custom functions to Web Audio API AudioParams.

Install

$ npm install audio-param-transform

API

var extendTransform = require('audio-param-transform')

extendTransform(audioParam, audioContext)

Pass in the AudioParam you wish to add a transform() method to and the relevant AudioContext.

Returns the extended param.

param.transform(func, defaultValue)

Returns an instance of TransformAudioParam applied to the target AudioParam which works the same as the base AudioParam, except applying the specified func(a, b) to all values, ramps and curves.

If you do not specify a function, the specified value for this transform will override all previous transforms (if any).

TransformAudioParam#setValueAtTime(value, at)

TransformAudioParam#linearRampToValueAtTime(value, endTime)

TransformAudioParam#exponentialRampToValueAtTime(value, endTime)

TransformAudioParam#setValueCurveAtTime(float32ArrayCurve, at, duration)

TransformAudioParam#cancelScheduledValues(from)

TransformAudioParam#getValueAt(time)

Example

Creating a transpose param.

var extendTransform = require('audio-param-transform')

var audioContext = new AudioContext()
var oscillator = audioContext.createOscillator()
oscillator.connect(audioContext.destination)


// create a base transform in case we want to automate the two independently
var baseFrequencyParam = oscillator.frequency.transform()

// now add the transpose transform
var transposeParam = oscillator.frequency.transform(transpose)

// modulate the transpose up an octave then down again each second
var on = false
setInterval(function(){
  if (on){ // ramp up
    transposeParam.linearRampToValueAtTime(12, audioContext.currentTime + 0.3)
  } else { // and back again
    transposeParam.linearRampToValueAtTime(0, audioContext.currentTime + 0.3)
  }
  on = !on
}, 1000)

function transpose(a,b){
  return a * Math.pow(2, (b || 0) / 12)
}

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial