node package manager

supercolliderjs

Tools for working with the SuperCollider music language environment

supercollider.js

Node.js tools for working with the SuperCollider language and synthesis server.

SuperCollider is an environment and programming language for real time audio synthesis and algorithmic composition. It provides an interpreted object-oriented language which functions as a network client to a state of the art, realtime sound synthesis server.

This library provides functionality for working with:

  • scsynth (the synthesis server)
  • sclang (supercollider language interpreter)

http://supercolliderjs.readthedocs.org/en/latest/ https://doc.esdoc.org/github.com/crucialfelix/supercolliderjs/

  • Start SuperCollider language interpreters (sclang)

  • Interpret SuperCollider code from node js and get results or errors returned as equivalent JavaScript types

  • Start SuperCollider synthesis servers (scsynth)

  • Send and receive OSC messages to scsynth

  • Call async commands on scsynth and receive results as Promises

  • Comprehensive library for calling all commands the server understands

  • Node-id/Bus/Buffer allocators with clean immutable state implementation

  • Server state and synth/group tracking

  • Dryadic: declarative DSL for managing component trees. Documentation coming in 0.11.0

var sc = require('supercolliderjs');
 
sc.lang.boot()
  .then(function(sclang) {
 
    sclang.interpret('(1..8).pyramid')
      .then(function(result) {
        // result is a native javascript array 
        console.log('' + result);
      }, function(error) {
        // syntax or runtime errors 
        // are returned as javascript objects 
        console.log(error);
      });
 
  });
var sc = require('supercolliderjs');
 
sc.server.boot()
  .then(function(server) {
 
    // raw send message 
    server.send.msg(['/g_new', 1, 0, 0]);
 
    // using sc.msg to format them 
    server.send.msg(sc.msg.groupNew(1));
 
    // call async messages with callAndResponse 
    // and receive replies with a Promise 
    server.callAndResponse(sc.msg.status())
      .then(function(reply) {
        console.log(reply);
      });
 
  });

Works on Node 4+

Source code is written in ES2015 and transpiled with babel.

The project is licensed under the MIT license.