How to use the virtual-audio-graph function in virtual-audio-graph

To help you get started, we’ve selected a few virtual-audio-graph examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github benji6 / andromeda / src / plugins / effects / Delay / index.js View on Github external
constructor ({audioContext}) {
    const output = audioContext.createGain()
    const virtualAudioGraph = createVirtualAudioGraph({audioContext, output})
    const store = createStore({
      delayTime: 1 / 3,
      dryLevel: 0.9,
      feedback: 0.25,
      highCut: 16000,
      lowCut: 50,
      pingPong: true,
      wetLevel: 0.6,
    })

    stores.set(this, store)

    store.subscribe(updateAudioGraph(virtualAudioGraph))
    store.dispatch(x => x)

    outputs.set(this, output)
github benji6 / andromeda / src / plugins / effects / Reverb / index.js View on Github external
constructor ({audioContext}) {
    const output = audioContext.createGain()
    const virtualAudioGraph = createVirtualAudioGraph({audioContext, output})
    const store = createStore({
      dryLevel: 0.35,
      highCut: 8000,
      lowCut: 50,
      reverbType: 'reverb chapel',
      reverbTypes: Object.keys(reverbTypeToUri),
      wetLevel: 0.8,
    })

    store.subscribe(updateAudioGraph(virtualAudioGraph))
    store.dispatch(x => x)

    stores.set(this, store)
    outputs.set(this, output)

    virtualAudioGraph.update({
github miselaytes-anton / web-audio-experiments / packages / tape-app / src / components / Audio / index.js View on Github external
const bufferSourceDry = `bufferSourceDry${new Date().getTime()}`;
  const bufferSourceWet = `bufferSourceWet${new Date().getTime()}`;
  return {
    master: gain('output', {gain: 0.7}),
    dry: gain('master', {gain: normDry(mix)}),
    wet: gain('master', {gain: normWet(mix)}),
    feedback: gain(['delay'], {gain: normFeedback(feedbackAmount)}),
    lowpass: biquadFilter(['feedback', 'wet'], {type: 'lowpass', frequency: normFrequency(lowpass)}),
    delay: delay('lowpass', {delayTime: normDelay(reader1Position)}),
    [bufferSourceDry]: bufferSource('dry', {buffer: audioBuffer, loop: true}),
    [bufferSourceWet]: bufferSource('delay', {buffer: audioBuffer, loop: true, playbackRate: normSpeed(tapeSpeed)}),
  };
};

const audioContext = new AudioContext();
const virtualAudioGraph = createVirtualAudioGraph({
  audioContext,
  output: audioContext.destination,
});

class Audio extends React.Component {
  render() {
    virtualAudioGraph.update(paramsToGraph(this.props));
    return null;
  }
}

export default connect(
  state => state,
)(Audio);
github benji6 / andromeda / src / plugins / instruments / Prometheus.js View on Github external
constructor ({audioContext}) {
    const output = audioContext.createGain()
    const virtualAudioGraph = createVirtualAudioGraph({audioContext, output})

    notes.set(this, [])

    configs.set(this, {
      filter: {
        frequency: 8192,
        Q: 1,
      },
      masterGain: 0.75,
      oscillators: [
        {detune: 0, gain: 0.35, name: 1, pitch: 0, type: 'triangle'},
        {detune: 13, gain: 0.5, name: 2, pitch: 7, type: 'sine'},
        {detune: -7, gain: 0.9, name: 3, pitch: -24, type: 'sine'},
      ]
    })
github benji6 / andromeda / src / plugins / instruments / Prometheus / index.js View on Github external
constructor ({audioContext}) {
    const output = audioContext.createGain()
    const virtualAudioGraph = createVirtualAudioGraph({audioContext, output})

    notes.set(this, [])
    const store = createStore(defaultState)

    store.subscribe(updateAudio.bind(this))

    audioContexts.set(this, audioContext)
    stores.set(this, store)
    outputs.set(this, output)
    virtualAudioGraphs.set(this, virtualAudioGraph)
  }
  connect (destination) {
github benji6 / andromeda / src / plugins / Prometheus.js View on Github external
constructor ({audioContext}) {
    const output = audioContext.createGain()
    outputs.set(this, output)
    nodes.set(this, {})
    virtualAudioGraph.set(this, createVirtualAudioGraph({
      audioContext,
      output
    }))
  }
  connect (destination) {
github benji6 / andromeda / src / plugins / instruments / Fate.js View on Github external
constructor ({audioContext}) {
    const output = audioContext.createGain()

    audioContexts.set(this, audioContext)
    detunes.set(this, 12)
    notes.set(this, [])
    masterGains.set(this, 0.75)
    oscTotals.set(this, 7)
    oscTypes.set(this, 'sawtooth')
    outputs.set(this, output)

    const virtualAudioGraph = createVirtualAudioGraph({
      audioContext,
      output,
    })

    virtualAudioGraphs.set(this, virtualAudioGraph)
  }
  connect (destination) {
github benji6 / andromeda / src / plugins / instruments / Ariadne.js View on Github external
carrierOscType: 'sine',
      masterGain: 1,
      masterPan: 0,
      modulatorDetune: 0,
      modulatorOscType: 'sine',
      modulatorRatio: 2.5,
      output,
    })
    store.subscribe(updateAudio.bind(this))

    audioContexts.set(this, audioContext)
    stores.set(this, store)
    notes.set(this, [])
    outputs.set(this, output)

    const virtualAudioGraph = createVirtualAudioGraph({audioContext, output})

    virtualAudioGraphs.set(this, virtualAudioGraph)
  }
  connect (destination) {
github benji6 / andromeda / src / plugins / effects / Delay.js View on Github external
constructor ({audioContext}) {
    const output = audioContext.createGain()
    const virtualAudioGraph = createVirtualAudioGraph({audioContext, output})

    delayTimes.set(this, 1 / 3)
    dryLevels.set(this, 0.9)
    feedbacks.set(this, 0.25)
    highCuts.set(this, 16000)
    lowCuts.set(this, 50)
    outputs.set(this, output)
    pingPongs.set(this, true)
    virtualAudioGraphs.set(this, virtualAudioGraph)
    wetLevels.set(this, 0.6)
1
    updateAudioGraph.call(this)

    this.destination = virtualAudioGraph.getAudioNodeById('input')
  }
  connect (destination) {
github benji6 / andromeda / src / plugins / instruments / Osc.js View on Github external
constructor ({audioContext}) {
    const output = audioContext.createGain()
    outputs.set(this, output)
    graphs.set(this, {})
    types.set(this, 'sine')
    virtualAudioGraphs.set(this, createVirtualAudioGraph({
      audioContext,
      output
    }))
  }
  connect (destination) {