Skip to content

Latest commit

 

History

History
192 lines (144 loc) · 3.65 KB

CHANGELOG.md

File metadata and controls

192 lines (144 loc) · 3.65 KB

Release Notes

This Changelog is no longer in use, please see GitHub releases for changes made since 0.19.x.

0.19.x

Added

bufferSource now supports offsetTime

0.18.x

virtual-audio-graph no longer has any external dependencies

0.17.x

Breaking API change - defineNodes removed. virtual-audio-graph no longer internally remembers the custom node creator functions and these must be passed directly. This is more inline with how virtual-dom libraries handle component abstractions and keeps virtual-audio-graph's internal state management to the audio graph alone

// old API
virtualAudioGraph.defineNodes({ coolCustomNode });
virtualAudioGraph.update({ 0: ["coolCustomNode", "output", { someParams }] });
// new API
virtualAudioGraph.update({ 0: [coolCustomNode, "output", { someParams }] });

0.16.x

Using Rollup for bundling ES5 dist.

Added jsnext:main (more info) to package.json

0.15.x

Breaking API change - defineNode replaced by defineNodes:

// old API
virtualAudioGraph.defineNode(coolEffect, "coolEffect");
virtualAudioGraph.defineNode(someOscillators, "someOscillators");
// new API
virtualAudioGraph.defineNodes({ coolEffect, someOscillators });

0.14.x

Added support for AudioParam methods

0.13.x

virtual-audio-graph now exports a factory instead of a constructor

// pre 0.13.x
import VirtualAudioGraph from "virtual-audio-graph";
const virtualAudioGraph = new VirtualAudioGraph();
// 0.13.x
import createVirtualAudioGraph from "virtual-audio-graph";
const virtualAudioGraph = createVirtualAudioGraph();

Because of the way the new operator works this is not a breaking change

0.12.x

Breaking API change:

const newAPI = {
  0: ["oscillator", "output"],
  1: ["gain", { key: 0, destination: "detune" }, { gain: 0.5 }, "input"],
  2: ["oscillator", 1, { frequency: 110 }],
};
const oldAPI = {
  0: {
    node: "oscillator",
    output: "output",
  },
  1: {
    input: "input",
    node: "gain",
    output: { key: 0, destination: "detune" },
    params: {
      gain: 0.5,
    },
  },
  2: {
    node: "oscillator",
    output: 1,
    params: {
      frequency: 110,
    },
  },
};

0.11.x

  • Added support for:
    • ChannelMergerNode
    • ChannelSplitterNode

0.10.x

  • Added support for:
    • MediaStreamAudioDestinationNode
    • MediaStreamAudioSourceNode

0.9.x

  • Added support for:
    • ConvolverNode
    • DynamicsCompressorNode
    • WaveShaperNode

0.8.x

  • Added getAudioNodeById method to virtualAudioGraph

  • Added support for:

    • AnalyserNode
    • AudioBufferSourceNode

0.7.x

Prior to version 0.7.x virtual-audio-graph parameters were an array of objects with id properties representing nodes like this:

[
  {
    id: 0,
    node: "oscillator",
    output: "output",
    params: {
      frequency: 220,
    },
  },
  {
    id: 1,
    node: "oscillator",
    output: { id: 0, destination: "detune" },
    params: {
      frequency: 110,
    },
  },
];

Now the parameters are a single object with keys which represent the node ids:

{
  0: {
    node: 'oscillator',
    output: 'output',
    params: {
      frequency: 220,
    },
  },
  1: {
    node: 'oscillator',
    output: {key: 0, destination: 'detune'}, // NB. "key" property used to be "id"
    params: {
      frequency: 110,
    },
  },
}

The new notation automatically ensures the id of each node exists and is unique. It is also more concise and allows for greater performance.