Wednesday, August 23, 2006

Week4 - SuperCollider - GUI

Here is my GUI code. It is not completely functional. The code works and a GUI window comes up. However, I think there is an issue with my SynthDef, as no sound is produced (yet). I have successfully achieved sound with a window when I created a simple SinOsc SynthDef. I think everyone has heard the sound of a sine wave moving up and down so I wont provide a soundfile of that.


(
//Global Variables
~thisPath = (PathName.new(Document.current.path)).pathOnly;

//Granular Synth
SynthDef(
\GranS,

{
//Arguments
arg granDens = 0, //trigger, start at 0
granRate = 1.0, //Values: 0.5, 1.0, 2.0, -1.0
granPos = 0,
granDur = 0.2,
granPan = 0,
granAmp = 0.5,
bufNum = 0;

//Variables
var bufid,
bufNum1,
signal,
trig;

//Buffer SF
bufid = Buffer.read(s, ~thisPath++"Wonder.aiff");
bufNum1 = bufid.bufnum;

//Setup
trig = Impulse.kr(granDens);

//Signal Granulate
signal = TGrains.ar(
numChannels: 2,
trigger: trig,
bufnum: bufNum,
rate: granRate,
centerPos: granPos,
dur: granDur,
pan: granPan,
amp: granAmp,
interp: 2);

//Output Signal
Out.ar(0, [signal]);
}
).send(s);
)

(
//GUI Window

//Variables
var win,
slid,
syn,
sliderData;

//My window
win = SCWindow(
name: "GUI for CC",
bounds: Rect(
left: 600,
top: 750,
width: 400,
height: 200));
syn = Synth(\GranS);

//Setup Window
win.front;
win.view.decorator = FlowLayout(win.view.bounds);
//win.view.background = Color.black;

//Slider for my Window
slid = EZSlider(
window: win,
dimensions: 300 @ 25,
label: "granDens",
controlSpec: ControlSpec(
minval: 0,
maxval: 10,
warp: \lin,
step: 1,
default: 1),
action: { |edz|syn.set(\granDens, edz.value)},
labelWidth: 60,
numberWidth: 40);
)

0 Comments:

Post a Comment

<< Home