2.3 KiB
Oscilloscope and meters
SuperCollider comes with a default oscilloscope and a default frequency scope. They are accessible through the s.scope and s.freqscope methods. They are great but for some reason, they are being hidden behind other windows when you switch to another window. I want to see them all the time. I have added a few shortcuts to make that happen:
Scope(): a scope that always stays on top!FScope(): a frequency scope that always stay on top!Gui(): a server GUI window that always stay on top!Meter(): a server meter window that always stay on top!
There are other widget windows but I don't use them that much. One that is worth
noting is s.plotTree that allows you to see what is currently alive on the
audio server (stuck synths?).
Ndef GUI
When you live code on SuperCollider, you tend to use a lot of Ndef/Nodeproxy objects. One feature of NodeProxy that is often overlooked is that they can be displayed in a graphical interface. You can monitor them this way. Check the following example:
(
~test = {
var sequence = Demand.ar(
Impulse.ar(c.dur * 8),
Impulse.ar(c.dur),
Dseq([100, 150, 200, 400, 800], inf)).varlag(c.dur / \woof.kr(12));
var sig = LPF.ar(Pulse.ar(sequence), LFNoise1.kr(c.dur * 2).range(500, 2000)) ! 2 * 0.5;
JPverb.ar(sig, size: 10, t60: 2)
};
~test.play(fadeTime: 8);
~test.mold(2);
)
~test.gui; // Calling a GUI for that specific definition!
~test.gui2; // Modern replacement for the gui method
The .gui method uses the default NdefGui. The .gui2 method uses Mads Kjeldgaard's NdefGui2. It is a modern rewrite that fixes some of the issues of the old one.
Since the \woof parameter is declared as a control, it will be available in the GUI! The GUI was created by assuming some random values as the set of default values for the \woof control but you can define the default values yourself:
Spec.add(\woof, ControlSpec(0.01, 4.0, \exp) );
// Then, re-evaluate the code above
Now the \woof parameter will adhere to the defaults you have set using the
Spec class. This is a quick and easy
way to create a GUI when you need one :)