No description, website, or topics provided.
JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
test
.babelrc
.eslintrc
.gitignore
.travis.yml
README.md
package.json

README.md

scsynth

Build Status NPM Version License

sound processing like SuperCollider in JavaScript

👷 💤

Installation

npm install --save scsynth

Example

const scsynth = require("scsynth");

const context = new scsynth.SCContext();
const synth = context.createSynth({
  name: "sine",
  consts: [ 0 ],
  paramValues: [ 0.5, 440 ],
  paramIndices: { amp: { index: 0, length: 1 }, freq: { index: 1, length: 1 } },
  units: [
    [ "Control"     , 1, 0, [                                ], [ 1, 1 ] ],
    [ "SinOsc"      , 2, 0, [ [  0, 1 ], [ -1, 0 ]           ], [ 2    ] ],
    [ "BinaryOpUGen", 2, 2, [ [  1, 0 ], [  0, 0 ]           ], [ 2    ] ],
    [ "Out"         , 2, 0, [ [ -1, 0 ], [  2, 0 ], [ 2, 0 ] ], [      ] ]
  ]
});

context.append(synth);

for (let i = 0; i < 256; i++) {
  synth.$freq = 440 * Math.pow(2, i / 256);
  synth.$amp = 1 - (i / 256);
  synth.process();

  console.log("L:", context.outputs[0]);
  console.log("R:", context.outputs[1]);
}

See Also

License

MIT