This repository has been archived by the owner on Jun 25, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
module.js
94 lines (85 loc) · 2.06 KB
/
module.js
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// module3.js is a gate sequencer, which takes as its only input a signal. It compares the input signal amplitude against 6 logical conditions, and sends a gate out of one of the 6 outputs.
// Inputs: IN1
// Outputs: OUT1, OUT2, OUT3, OUT4, OUT5, OUT6
config.frameDivider = 1
config.bufferSize = 16
var phase = 0
function step(step){
display('output: ' + step)
}
function process(block) {
// Set all samples in output buffer
for (var i = 0; i < block.bufferSize; i++) {
// IN1: signal input value ranges 0-10, and is thus tested against the switch case below
let switcher = Math.floor(block.inputs[0][i])
switch (switcher){
// output 0
case 0:
step(0)
block.outputs[0][i] = 20
block.outputs[1][i] = 10
block.outputs[2][i] = 0
block.outputs[3][i] = 1
block.outputs[4][i] = 10
block.outputs[5][i] = 0
break;
// output 1
case 1:
case 2:
step(1)
block.outputs[0][i] = 0
block.outputs[1][i] = 10
block.outputs[2][i] = 0
block.outputs[3][i] = 0
block.outputs[4][i] = 0
block.outputs[5][i] = 0
break;
// output 2
case 3:
step(3)
block.outputs[0][i] = 10
block.outputs[5][i] = 10
case 4:
step(2)
block.outputs[0][i] = 0
block.outputs[1][i] = 0
block.outputs[2][i] = 10
block.outputs[3][i] = 0
block.outputs[4][i] = 0
block.outputs[5][i] = 0
break;
// output 3
case 5:
case 6:
step(3)
block.outputs[0][i] = 0
block.outputs[1][i] = 0
block.outputs[2][i] = 0
block.outputs[3][i] = 10
block.outputs[4][i] = 0
block.outputs[5][i] = 0
break;
// output 4
case 7:
case 8:
step(4)
block.outputs[0][i] = 0
block.outputs[1][i] = 10
block.outputs[2][i] = 0
block.outputs[3][i] = 0
block.outputs[4][i] = 10
block.outputs[5][i] = 10
break;
// output 5
case 9:
step(5)
block.outputs[0][i] = 0
block.outputs[1][i] = 0
block.outputs[2][i] = 10
block.outputs[3][i] = 0
block.outputs[4][i] = 0
block.outputs[5][i] = 10
break;
}
}
}