scsynth

0.0.23 • Public • Published

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 - (/ 256);
  synth.process();
 
  console.log("L:", context.outputs[0]);
  console.log("R:", context.outputs[1]);
}

See Also

License

MIT

Package Sidebar

Install

npm i scsynth

Weekly Downloads

12

Version

0.0.23

License

MIT

Last publish

Collaborators

  • mohayonao