Sample based granular sythesis and timestretch
Sample based granular sythesis and timestretch.
Intended for use as a source in soundbank, but it is compatible with any Web Audio API AudioNode set up.
$ npm install soundbank-granular
var Granular = require('soundbank-granular')
var granular = Granular(audioContext, options)
Pass an instance of AudioContext to the constructor to create an AudioNode.
options
:
sync
if enabled.Due to a bug in Chrome, this is not currently an AudioParam, but will be in the future. See https://code.google.com/p/chromium/issues/detail?id=311284
Due to a bug in Chrome, this is not currently an AudioParam, but will be in the future.
The desired length in seconds (or if sync
in beats). The audio data between the startOffset
and endOffset
will be timestretched to fit exactly. Defaults to 1
.
The amount of grains per second/beat to create.
Ratio of grain length to attack. Defaults to 0
.
Ratio of grain length to apply as release after each grain.
true
or false
. Sync the rate
and length
to the scheduler tempo. Defaults to false
.
Set the trigger mode of the audio node: 'oneshot', 'loop'
Specify an instance of AudioBuffer for playback.
Choose the fraction of duration (between 0
and 1
) to use as audio in point.
Choose the fraction of duration (between 0
and 1
) to use as audio out or loop point.
Specify the startOffset
and endOffset
as an array [start, end]
.
Schedule note start. Can only be called once. For each event, you need to create a new instance.
Schedule note stop.