NdefParamGui display the settings of a nodeproxy


Inherits from: JITGui : EnvirGui


NdefParamGui displays all settings and mappings of a nodeproxy, so one can change them flexibly. 

Single number get displayed with an EZSlider, and anything else is shown as an EZText (a text field). 

Its main use is within NdefGui and PxMix.


See also: EZText, NdefGui, PxMix



Creation / Class Methods


*new (object, numItems, parent, bounds, options, makeSkip)

create a new NdefParamGui

object - the nodeproxy whose settings are to be displayed

numItems - the number of items to display. If an envir is given, and no num, num is envir.size.

parent - the parent view to display in; if none is given, a new window is created. 

bounds - the bounds within which to display; if none is given, bounds are calculated.

options - a list of additional information, e.g. flags about optional buttons.

makeSkip - flag whether to make a skipjack to manage updates of the envirgui. default is true.

// simple example

g = NdefParamGui.new(nil, 5); // empty with 5 slots

g.object_(Ndef(\a)); // put in a nodeproxy

Ndef(\a, { |freq = 300, amp = 0.2| SinOsc.ar(freq) * amp });

Ndef(\a).set(\freq, 2000); // add a setting

g.object_(nil); // put in a nodeproxy


g.object_(Ndef(\a)); // put in a nodeproxy

Ndef(\a).set(\amp, 0.125); // add a setting

Ndef(\a, { |freq = 300, amp = 0.2| SinOsc.ar(freq) * amp });

Ndef(\a).set(\freq, 234); // add a setting


Ndef(\a).play

Ndef(\lfo, { LFNoise0.kr([12, 8], 200).sum + 500 });

Ndef(\a).map(\freq, Ndef(\lfo)); // mapped proxies are shown

name_ (name) if in its own window, set the window's name


g.name = "Yoohoo";


Multichannel controls are shown in EZText:

Ndef(\a, { |freqs = #[300, 303], pan, amp = 0.2, moddd = 0.1| SinOsc.ar(freqs).sum * amp });

Ndef(\a).play

Ndef(\a).setn(\freqs, [300, 350])

Ndef(\a).setn(\freqs, [330, 350])

Ndef(\a).set(\harm, 123)


Ndef(\a).nodeMap.clear

Ndef(\lfos, { LFNoise0.kr([12, 8], 200) + 500 });

Ndef(\a).map(\freqs, Ndef(\lfos))


g.parent.close


// put an NdefParamGui in an existing window - margin becomes 0@0

(

w = Window().front; 

w.addFlowLayout;

g = NdefParamGui(Ndef(\a), 3, w);

NdefParamGui(Ndef(\c), 15, w);

)

// even 

Ndef(\c).set(\otto, 123, \mops, [1,2,3], \kotzt, [0, 6, 0, 6]);

Ndef(\c).nodeMap.clear