-
Notifications
You must be signed in to change notification settings - Fork 4
/
NullVoicer.sc
72 lines (65 loc) · 1.35 KB
/
NullVoicer.sc
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// the sole purpose of NullVoicer is to trap method calls and do nothing
// NullVoicer is the model of a VoicerProxy when the proxy is pointing to nothing
NullVoicer {
var <proxy; // proxy_ is handled by Voicer
*new {
^super.new.init
}
proxy_ { arg pr;
proxy = pr;
proxy.notNil.if({ proxy.switchControlProxies });
}
draggedIntoVoicerGUI { arg dest;
var oldProxy;
oldProxy = proxy; // must clear from old gui if there was one
dest.model.voicer_(this); // set new gui's proxy to this voicer
oldProxy.notNil.if({ oldProxy.voicer_(nil) }); // clear old proxy
}
nodes { ^Array.new }
voices { ^0 }
target { ^nil }
target_ {}
addAction { ^\addToTail }
addAction_ {}
bus { ^nil }
stealer { ^\preferEarly }
stealer_ {}
globalControls { ^IdentityDictionary.new }
globalControlsByCreation { ^Array.new }
latency { ^nil }
isRunning { ^true } // to display "run" in gui
clock {}
clock_ {}
init {}
makeNode {}
nonplaying { ^[]}
earliest {}
latest {}
firstNodeFreq {}
strictCycle {}
cycle {}
random {}
preferEarly {}
preferLate {}
trigger1 {}
trigger {}
gate1 {}
gate {}
release1 {}
release {}
releaseAll {}
releaseNow1 {}
releaseNow {}
set {}
mapGlobal {}
unmapGlobal {}
addProcess {}
removeProcess {}
removeProcessAt {}
free {}
active { ^false }
panic {}
cleanup {}
guiClass { ^VoicerGUI }
asString { ^"inactive" }
}