node package manager


Tools for working with the SuperCollider music language environment


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)

  • 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');
  .then(function(sclang) {
      .then(function(result) {
        // result is a native javascript array 
        console.log('' + result);
      }, function(error) {
        // syntax or runtime errors 
        // are returned as javascript objects 
var sc = require('supercolliderjs');
  .then(function(server) {
    // raw send message 
    server.send.msg(['/g_new', 1, 0, 0]);
    // using sc.msg to format them 
    // call async messages with callAndResponse 
    // and receive replies with a Promise 
      .then(function(reply) {

Works on Node 4+

Source code is written in ES2015 and transpiled with babel.

The project is licensed under the MIT license.