Visual programming SuperCollider using Flowhub
SuperCollider CoffeeScript JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
classes
components
config
doc
graphs
spec Tests: Add for graph:add/removeport Nov 26, 2014
.gitignore
.travis.yml
README.md
package.json
sndflo-runtime.scd
sndflo.coffee Protocol: Fix initial graph compat with Flowhub Nov 26, 2014
sndflo.js Complete scflo->sndflo renaming Nov 24, 2014
sndflo.scd Network: Pass library explictly through constructor Nov 21, 2014

README.md

Data-flow programming for SuperCollider?

sndflo allows to program SuperCollider using the Flowhub visual data-flow IDE.

Status

Proof-of-concept working for wiring up Synth's.

Install

Note: Only tested on GNU/Linux. Should work fine on other platforms with minor adjustments in install.

Prerequities

Install

git clone https://github.com/jonnor/sndflo.git
cd sndflo

# Install as SuperCollider extension, ref http://doc.sccode.org/Guides/UsingExtensions.html
# On Linux
mkdir -p ~/.local/share/SuperCollider/Extensions || true
ln -s `pwd` ~/.local/share/SuperCollider/Extensions/sndflo
# On Mac OSX
mkdir -p "$HOME/Library/Application Support/SuperCollider/Extensions" || true
ln -s `pwd` "$HOME/Library/Application Support/SuperCollider/Extensions/sndflo"

npm install -g node-gyp
npm install

Running

# For Mac OSX only, specify where sclang is
export PATH=$PATH:/Applications/SuperCollider/SuperCollider.app/Contents/Resources/

node sndflo.js --verbose --user MY_FLOWHUB_UUID

Will start up SuperCollider, loading the sndflo runtime and FBP protocol bridge. On success should output something like

Listening at WebSocket port 3569 
OSC send/receive ports:  57120 57122
Registered with Flowhub, should be accessible in UI

Go to http://app.flowhub.io, refresh the runtime list. You should see our sndflo runtime listed, be able to create projects for 'sndflo' and connect.

Note: on GNU/Linux sclang might fail with a segfault if X11 is not available. You can use xvfb-run to work around this.

Vision

  • Program audio pipelines visually, by Synth's wiring together with Busses
  • Program synths visually, by creating SynthDefs by combining UGens
  • Do not replace sclang, integrate with it
    • Allow to use SynthDefs created in sclang in visual pipelines
    • Allow to drive visually created Synth pipelines using sclang Events/Patterns
  • Seamless integration with other FBP
    • MicroFlo for communicating with microcontrollers (sensing/acting)
    • NoFlo for general-purpose use, and generating composition/scores
    • Combined audio processing with noflo-webaudio
  • Program scores visually, using Streams and Patterns

Usecases

  • Generative & algorithmic composed music
  • Reactive and interactive art installations
  • Audio effect pipelines, processing sound inputs
  • Audio and music analysis, feature extraction