SCScope oscilliscope: render a buffer to a view in real time
Inherits from: Object : SCView
An oscilloscope-type view.
SCScope can only work with the internal server.
See also: the useful tool: Stethoscope
SCSoundFileView
s = Server.internal;
s.boot;
f = Buffer.alloc(s,1024,1);
b = Bus.audio(s,1);
w=GUI.window.new.front;
c = SCScope(w.view,w.view.bounds.insetAll(10,10,10,10));
c.bufnum = f.bufnum;
(
// listening to the bus, using ScopeOut to write it to the buffer
SynthDef("monoscope", { arg bus, bufnum;
var z;
z = In.ar(bus,1);
// ScopeOut writes the audio to the buffer
ScopeOut.ar(z, bufnum);
}).play(
RootNode(s),
[\bus,b.index, \bufnum, f.bufnum] ,
\addToTail // make sure it goes after what you are scoping
);
)
(
// making noise onto the buffer
SynthDef("noise", { arg bus;
var z;
z = LFSaw.ar(SinOsc.kr(0.1).range(300,1000)) * 0.1;
Out.ar(bus, z);
}).play(
s,
[\bus,b.index]
);
)
c.style = 0 // vertically spaced
c.style = 1 // overlapped
c.style = 2 // x/y
The update speed is based on the size of the buffer.
A 2 second buffer (44100*2) will update every 2 seconds.
<>bufnum
The buffer number the view will use.
x
x_ (val)
y
y_ (val)
xZoom
xZoom_ (val)
yZoom
yZoom_ (val)
gridColor
gridColor_ (color)
waveColors
waveColors_ (arrayOfColors)
style_ (val)
// 0 = vertically spaced
// 1 = overlapped
// 2 = x/y