File: Poll.sc

package info (click to toggle)
supercollider 1%3A3.13.0%2Brepack-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 80,296 kB
  • sloc: cpp: 476,363; lisp: 84,680; ansic: 77,685; sh: 25,509; python: 7,909; makefile: 3,440; perl: 1,964; javascript: 974; xml: 826; java: 677; yacc: 314; lex: 175; objc: 152; ruby: 136
file content (29 lines) | stat: -rw-r--r-- 865 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Poll : UGen {
	*ar { arg trig, in, label, trigid = -1;
		this.multiNewList(['audio', trig, in, label, trigid]);
		^in;
	}
	*kr { arg trig, in, label, trigid = -1;
		this.multiNewList(['control', trig, in, label, trigid]);
		^in;
	}
	*new { arg trig, in, label, trigid = -1;
		var rate = in.asArray.collect(_.rate).unbubble;
		this.multiNewList([rate, trig, in, label, trigid]);
		^in;
	}
	*new1 { arg rate, trig, in, label, trigid;
		label = label ?? {  "UGen(%)".format(in.class) };
		label = label.asString.collectAs(_.ascii, Array);
		if(rate === \scalar) { rate = \control };
		if(trig.isNumber) { trig = Impulse.multiNew(rate, trig, 0) };
		^super.new.rate_(rate).addToSynth.init([trig, in, trigid, label.size] ++ label);
	}

	checkInputs { ^this.checkSameRateAsFirstInput }

	init { arg theInputs;
		// store the inputs as an array
		inputs = theInputs;
	}
}