Audio graph driver for Cycle.js based on virtual-audio-graph.
Check out Awesome Cycle.js for more Cycle.js resources.
npm i -S cycle-audio-graph
The default export of cycle-audio-graph
is makeAudioGraphDriver
which takes an optional configuration object with two optional key-value pairs:
import makeAudioGraphDriver from 'cycle-audio-graph'
const audioContext = new AudioContext()
// if no configuration object is provided the defaults
// detailed below will be used
makeAudioGraphDriver({
// if audioContext is not provided then cycle-audio-graph
// will attempt to construct its own instance
audioContext,
// output could be any valid AudioNode destination.
// If not provided then cycle-audio-graph will use
// the destination of its audioContext instance
output: audioContext.destination,
})
import {run} from '@cycle/core'
import makeAudioGraphDriver from 'cycle-audio-graph'
const audioContext = new AudioContext()
const main = responses => {
// ... example$ could be some sort of user input
graph$ = example$.map(_ => {
// ...
const {currentTime} = audioContext
return {
0: ['gain', 'output', {gain: 0.2}],
1: ['oscillator', 0, {
type: 'square',
frequency: 440,
startTime: currentTime + 1,
stopTime: currentTime + 2,
}],
}
})
return {
audioGraph: graph$,
// ... etc.
}
}
const drivers = {
audioGraph: makeAudioGraphDriver({
audioContext,
output: audioContext.destination,
}),
// ... etc.
}
run(main, drivers)
For more info on the graph
objects in the graph$
check out the documentation for virtual-audio-graph.