A quick test of using Supercollider to control Renoise. 8 copies of The Giant each with a different delay setting. Supercollider sends a random note from the major scale to renoise changing instrument on each note. A tempo synced delay sits on the master channel for some basic structure and a copy of Reflektor is used for reverb.
Supercollider Code (requires RenoiseOsc class I am currently developing):
(
{
var octave = 4;
r = RenoiseOsc(8000);
inf.do{
r.defaultInst = ((0..7)).choose;
octave = ((5..8)).choose;
r.sendNote([0,2,4,5,7,9,11,12].choose + (octave * 12), ((64..80)).choose, 0.1);
1.0.rand.wait;
};
}.fork
)
Current state of the RenoiseOsc class:
RenoiseOsc{
var <port></port> var <connection></connection> var <>defaultNote = 0;
var <>defaultVel = 0;
var <>defaultLength = 0;
var <>defaultInst = 0;
var <>defaultTrack = 1;
*new{|port, ip|
^super
.newCopyArgs(port, ip)
.init();
}
init{
ip = ip ? "127.0.0.1";
port = port ? 8000;
connection = NetAddr.new(ip, port);
}
setStatusMessage{|message|
connection.sendMsg("/renoise/evaluate", "renoise.app():show_status(\"" ++ message ++ "\")")
}
sendNote{|note, vel, length, inst, track|
{
note = note ? defaultNote;
vel = vel ? defaultVel;
length = length ? defaultLength;
inst = inst ? defaultInst;
track = track ? defaultTrack;
connection.sendMsg("/renoise/trigger/note_on", inst, track, note, vel);
length.wait;
connection.sendMsg("/renoise/trigger/note_off", inst, track, note);
}.fork;
}
}
http://schemawound.com/post/86434415933/supercollider-renoise-the-giant-test