audio-param-shim v1.0.5
Shimmed AudioParams
audio-param-shim lets you create objects that work almost exactly like AudioParams, except it doesn't actually touch any web audio stuff. Instead, one can subscribe for value changes and then do whatever one wants with that value.
All value scheduling methods are inherited from pseudo-audio-param by @mohayonao.
Features
- Create
AudioParamshims with custom names and default, min and max values - Scheduling values as you would on an
AudioParam, such as withexponentialRampToValueAtTime(value, time) - Subscribe to (and unsubscribe from) value changes so that you can act upon them
Missing features
- Using
AudioNodes to modulate the parameter value
Use case
I'm working on an audio library that does it's own version of a built-in Web Audio API functionality. I do, however, want it to be completely interchangable. This means exposing an AudioParam API to the developer, hence this library.
When not to use
If you want an extension that works directly on AudioNodes.
Installation
npm i -S audio-param-shimUsage
import createAudioParam from 'custom-audio-param'
// Create a NoiseParam class
const NoiseParam = createAudioParam('noise', 0.25, 0, 1)
// Create a param instance and change its value
const ctx = new AudioContext()
const noise = new NoiseParam(ctx)
noise.value = 0.4 // -> 0.4
noise.value = 4 // -> 1
noise.value = -1 // -> 0
// Change the value exponentially over 3 seconds and change the
// amount of noise accordingly
let noiseAmplitude = noise.value
// Use noiseAmplitude in a ScriptProcessorNode or something...
noise.subscribe(newValue => noiseAmplitude = newValue)
noise.exponentialRampToValueAtTime(0.9, ctx.currentTime + 3)API
Top-level functions
createAudioParam(name, defaultValue, minValue, maxValue)
Returns a AudioParamShim class that looks and acts just like an AudioParam instance, except it doesn't actually touch any web audio stuff. Instead, one can subscribe for value changes and then do whatever one wants with that value.
| Argument | Type | Description |
|---|---|---|
name | String | The parameter's name |
defaultValue | Number | The parameter's default value |
minValue | Number | The parameter's minimum value |
maxValue | Number | The parameter's maximum value |
AudioParamShim API
Properties
| Property | Type | Description |
|---|---|---|
defaultValue (readonly) | Number | The parameter's default value |
maxValue (readonly) | Number | The parameter's max value |
minValue (readonly) | Number | The parameter's min value |
name (readonly) | String | The parameter's name |
value | Number | The parameter's value |
Methods
subscribe(fn)
Subscribes to value changes.
| Argument | Type | Description |
|---|---|---|
fn | Function | A callback function |
unsubscribe(fn)
Unsubscribes from value changes.
| Argument | Type | Description |
|---|---|---|
fn | Function | A callback function |
Credits
- @mohayonao for creating
pseudo-audio-param