1
2s.reboot;
3
4/*
5
6left - right channels are the outputs of the two neurons.
7inputs are:
8in1, in2, x1, x2, w11, w12, w21, w22
9
10in1 and in2 are theta1 / theat2
11
12*/
13
14
15
16(
17{
18	var module =  Dneuromodule(2, [MouseX.kr(-2, 3), MouseY.kr(-2, 3)], [0.1, 0.3], [-3, 2, -2, 0]);
19	var sig = Duty.ar(0.2, 0, module.dpoll);
20	Blip.ar(sig * 30, 150) * 0.1;
21
22}.play
23)
24(
25{
26	var module =  Dneuromodule(2, [MouseX.kr(-2, 3), MouseY.kr(-2, 3)], [0.1, 0.3], [-3, 2, -2, 0]);
27	var sig = Duty.kr(0.2, 0, module);
28	0.0
29
30}.play
31)
32
33/////////////////////
34
35(
36{
37	var args = [[-2, 2], [0.1, 0.3], [-3, 2, -2, 0]];
38	var module =  Dneuromodule(2, *args);
39	var module2 =  Dneuromodule2(*args);
40	var sig = Duty.kr(0.2, 0, module.dpoll("module 1"));
41	var sig2 = Duty.kr(0.2, 0, module2.dpoll("module 2"));
42
43	0.0
44
45}.play
46)
47
48////////////////////
49
50(
51{
52	var module =  Dneuromodule2(MouseX.kr(-2, 3), MouseY.kr(-2, 3), 0.1, 0.3, -3, 2, -2, 0);
53	var sig = Duty.ar(SampleDur.ir, 0, module);
54	LPF.ar(sig * 0.1, 15000)  * 0.03;
55
56}.play
57)
58(
59{
60	var module =  Dneuromodule(2, [MouseX.kr(-2, 3), MouseY.kr(-2, 3)], [0.1, 0.3], [-3, 2, -2, 0]);
61	var sig = Duty.ar(SampleDur.ir, 0, module);
62	LPF.ar(sig * 0.1, 15000) * 0.03;
63
64}.play
65)
66
67
68{ SinOsc.ar(Dneuromodule.ar(1/100, 2, [MouseX.kr(-2, 3), MouseY.kr(-2, 3)], [0.1, 0.3], [-3, 2, -2, 0]).lag(0.01) * 700 + 800) * 0.1 }.play;
69
70(
71{
72	var dt = 0.001;
73	var m = Duty.ar(dt, 0, Dneuromodule2(MouseX.kr(-2, 2), MouseY.kr(-2, 2), 0.1, 0.3, -3, 2, -2, 0)).lag3(dt);
74	SinOsc.ar(m * 400 + 600) * 0.1
75}.play
76)
77
78// modulate w11 and w21 slowly and randomly
79(
80{
81	var module =  Dneuromodule2(MouseX.kr(-2, 3), MouseY.kr(-2, 3), 0.1, 0.3, LFNoise1.kr(0.1).range(-3, -2), 2, LFNoise1.kr(0.1).range(-2, -1), 0);
82	var sig = Duty.ar(SampleDur.ir, 0, module);
83	LPF.ar(sig * 0.1, 15000);
84
85}.play
86)
87// modulate everything slowly and randomly
88
89(
90{
91	var module =  Dneuromodule2(MouseX.kr(-2, 3), MouseY.kr(-2, 3), 0.1, 0.3, LFNoise1.kr(0.1).range(-3, -2),  LFNoise1.kr(0.1).range(1, 2), LFNoise1.kr(0.1).range(-2, -1),  LFNoise1.kr(0.1).range(-1, 1));
92	var sig = Duty.ar(SampleDur.ir, 0, module);
93	LPF.ar(sig * 0.1, 15000);
94
95}.play
96)
97
98// sonified:
99(
100{
101
102	var module =  Dneuromodule2(
103		MouseX.kr(-2, 3),
104		MouseY.kr(-2, 3),
105		0.1,
106		0.3,
107		LFNoise1.kr(0.1).range(-3, -2),
108		LFNoise1.kr(0.1).range(1, 2),
109		LFNoise1.kr(0.1).range(-2, -1),
110		LFNoise1.kr(0.1).range(-1, 1)
111	);
112
113	var dt = 0.001;
114	var m = Duty.ar(dt, 0, module).lag3(dt);
115	SinOsc.ar(m * 800 + 1100) * 0.1
116}.play
117)
118
119(
120{
121	var w1 = LFNoise1.kr(0.1);
122	var w2 = LFNoise1.kr(0.1);
123
124	var module =  Dneuromodule2(
125		MouseX.kr(-2, 3),
126		MouseY.kr(-2, 3),
127		0.1,
128		0.3,
129		w1.range(-3, -2),
130		w2.range(1, 2),
131		w1.range(-2, -1),
132		w2.range(-1, 1)
133	);
134
135	var dt = 0.0001;
136	var m = Duty.ar(dt, MouseButton.kr(0, 1), module).lag3(dt);
137	SinOsc.ar(m * 800 + 1100) * 0.1
138}.play
139)
140
141
142
143
144// tests
145
146{ Duty.ar(0.2, 0, Dneuromodule2(2, -1, 0.1, 0.3, -3, 2, -2, 0).dpoll); 0.0 }.play
147{ Duty.ar(0.2, 0, Dneuromodule2(2, -1, 0.1, 0.3, -3, 2, -2, 0)); 0.0 }.play
148{ Duty.ar(0.2, 0, Dneuromodule2(MouseX.kr(-2, 3), -1, 0.1, 0.3, -3, 2, -2, 0)); 0.0 }.play
149{ Duty.ar(0.1, 0, Dneuromodule2(MouseX.kr(-2, 3), MouseY.kr(-2, 3), 0.1, 0.3, -3, 2, -2, 0)) * 0.03 }.play
150{ Duty.ar(SampleDur.ir, 0, Dneuromodule2(MouseX.kr(-2, 3), MouseY.kr(-2, 3), 0.1, 0.3, -3, 2, -2, 0)) * 0.03 }.play
151
152{ Duty.ar(0.2, 0, Dneuromodule2(2, Dseq([-1, -2, -3]), 0.1, 0.3, -3, 2, -2, 0).dpoll, doneAction:2); 0.0 }.play
153{ Duty.ar(0.2, 0, Dneuromodule2(2, -1, 0.1, 0.3, -3, 2, -2, 0).dpoll, MouseButton.kr); 0.0 }.play
154
155
156
157
158
159
160
161// fig. 82
162t = [2, -1]; w = [[-3, 2], [-2, 0]];
163w = w + [0.2, -0.1];
164w = w + [-0.2, 0.1];
165
166