Is a bare-bones SuperCollider livecoding library for Ruby, it provides comunication with a remote or local scsynth server and SynthDef creation with a in a similar way to Sclang.
SynthDef creation and sending is robust but some features are not implemented such as SynthDef variations and others I may not be aware of.
livecode.rb executable is located in the bin directory and a TextMate bundle included in extras permits livecoding from TextMate, comunication is thrugh *nix pipes. Similar functionality shouldn’t be too dificult to implement from Emacs or Vim.
$ [sudo] gem install scruby
Scruby is just a SuperCollider client so SC must be installed on the system. There’s a PPA for installing SC under Ubuntu: launchpad.net/~supercollider/+archive/ppa.
require 'scruby' s = Server.new s.boot SynthDef.new :fm do |freq, amp, dur| mod_env = EnvGen.kr Env.new( d(600, 200, 100), d(0.7,0.3) ), 1, :timeScale => dur mod = SinOsc.ar freq * 1.4, :mul => mod_env sig = SinOsc.ar freq + mod env = EnvGen.kr Env.new( d(0, 1, 0.6, 0.2, 0.1, 0), d(0.001, 0.005, 0.3, 0.5, 0.7) ), 1, :timeScale => dur, :doneAction => 2 sig = sig * amp * env Out.ar 0, [sig, sig] end.send Synth.new :fm, :freq => 220, :amp => 0.4, :dur => 1
To start a live coding session:
$ live
Receive OSC messages from SuperCollider
Copyright © 2008 Macario Ortega
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <www.gnu.org/licenses/>.