cycle-audio-graph
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

cycle-audio-graph

npm version Build Status

Audio graph driver for Cycle.js based on virtual-audio-graph.

Check out Awesome Cycle.js for more Cycle.js resources.

Installation

npm i -S cycle-audio-graph

Usage

makeAudioGraphDriver

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,
})
 

Very Basic Example

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)

virtual-audio-graph

For more info on the graph objects in the graph$ check out the documentation for virtual-audio-graph.

Package Sidebar

Install

npm i cycle-audio-graph

Weekly Downloads

2

Version

1.1.0

License

MIT

Unpacked Size

7.74 kB

Total Files

8

Last publish

Collaborators

  • benji6