SuperCollider CLASSES


controls the top-level of a nodeproxy and its monitor
Inherits from: Object


is a GUI for controlling the top-level of a nodeproxy and its monitor. It is e.g. used in ProxyMixer, and NodeProxyEditor, and it is cross-platform.

Class Methods

Inherited class methods

Undocumented class methods


*lastOutBus = value

*new (proxy, w, bounds, showLevel: false, showPlayN: true, showName: true, showPauseSend: true, makeWatcher: true, skin)

Instance Methods

Inherited instance methods

Undocumented instance methods











-proxy = inproxy












    // make a proxy space and a test proxy
p = ProxySpace.push;

~test = { |freq=1000, dens=5, amp=1, lev=3|
    var freqline = { exprand(0.3, 3) } ! 3 *, 1, 2); ! 3, dens.reciprocal.sqrt), freq * freqline, 0.1)
~test.playN(0, vol: 0.1);

    // make a ProxyMonitorGui
z = ProxyMonitorGui();

    // switching between proxies: drag-view displays proxy key
z.proxy = ~otto12345;    // up to 9 letters or so on OSX
z.proxy = ~test;        // make audio controls available if proxy is audio
z.proxy = nil;
z.proxy = ~otto;;    //
z.proxy = ~test;

    // configuration variants

    // pudgier
ProxyMonitorGui(~test, bounds: 300@30);

    // place it in an existing window:
ProxyMonitorGui(~test, Window("ProxyMonitor", Rect(200, 200, 400, 100)).front);

ProxyMonitorGui(~test, Window("ProxyMonitor").front, bounds: 350@40);

ProxyMonitorGui(~test, Window("ProxyMonitor").front, bounds: Rect(20, 20, 360, 20));

    // show level in dB - off by default
ProxyMonitorGui(~test, showLevel: true, showPlayN: false);

    // without multichan out button - then uses true = playN by default.
ProxyMonitorGui(~test, showPlayN: false);

    // show proxy name or not. on by default.
ProxyMonitorGui(~test, showName: false);

    // show proxy pause and send buttons - true by default
ProxyMonitorGui(~test, showPauseSend: true, showPlayN: false);

    // turn off SkipJack view updates - updates are on by default.
ProxyMonitorGui(~test, makeWatcher: false);

    // minimal:, bounds: 300@40, showPlayN: false, showPauseSend: false);

    // the GUI functions:

    // left slider is vol

~test.stop;    // play / stop button:
~test.playN;    //
~test.end;    // alt-stop fully ends the proxy.
~test.playN(vol: 0);    // alt-playN starts with volume 0.

    // number box sets first output channel
    // when you want to play out of adjacent channels.

    // playing out to multiple channels
~test.playN([0, 2, 5]);
~test.playN([1, 2, 5]);
    // switches the button next to it to show a different output shape:
    // ("-<" is multiple outs, "-=" is directly adjacent outs.
    // clicking on that button opens an editing dialog:
~test.playNDialog;        // needs testing with SwingOSC.


    // the pause button pauses and resumes

    // snd button re-sends proxy's sound as compiled,
    // or with option-click, it rebuilds the proxy's sound function,
    // so e.g. normal random numbers or lookups in the lang get remade.

//    ProxyMonitorGui gets its look from, so you could customize it there,
//    or pass your own look in:

ProxyMonitorGui(skin: <your look here>)

//     Quick SwingOsc tests.

g = SwingOSC.default;

y = ProxyMonitorGui(~test);

y = ProxyMonitorGui(~test);