-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paththis_afternoon.lua
100 lines (94 loc) · 3.1 KB
/
this_afternoon.lua
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
95
96
97
98
99
100
--- this_afternoon ~ a somewhat-linked dual arpeggiator
-- output 1 control voltage 1
-- output 2 v/oct 1
-- output 3 control voltage 2
-- output 4 v/oct 2
-- original patch notes:
-- for warps and mangrove
-- output 1 goes to warps algorithm attenuated to taste
-- output 2 goes to warps pitch (channel 1)
-- output 3 goes to mangrove formant attenuated to taste
-- output 4 goes to mangrove pitch
-- warps is a self-patched complex oscillator (channel 1 is on-board osc, aux out to in 2)
-- mix warps and mangrove and put into three sisters all
-- control 3 sisters cut off with some of the output 1 and 3 control signals
-- use additional 3 sisters outs for feeding back into the oscillators
-- delay and reverb for maximum vibes
-- update these to make new things appear
seq = { 0, 4, 5, 7, 9, 12 }
switchRepeats = 4
varDivisor1 = 2
seq2 = { 12, 9, 7, 5, 4, 0 }
switch2Repeats = 4
varDivisor2 = 2
level = 5
time = 4
-- leave these be (probably)
step = 1
switch = 1
a = math.random(1, varDivisor1)
b = math.random(1, varDivisor1)
c = math.random(1, varDivisor1)
step2 = 1
switch2 = 1
d = math.random(1, varDivisor2)
e = math.random(1, varDivisor2)
f = math.random(1, varDivisor2)
function brutus()
output[2].volts = seq[step]/12
output[2].slew = math.random(0, 2)/100
step = ((step + math.random(0, 1)) % #seq) + 1
if step == 1 then
switch = (switch + 1) % switchRepeats
if switch == 1 then
a = math.random(1, varDivisor1)
b = math.random(1, varDivisor1)
c = math.random(1, varDivisor1)
end
end
end
function mimi()
output[4].volts = seq2[step2]/12
output[4].slew = math.random(0, 2)/100
step2 = ((step2 + math.random(0, 1)) % #seq2) + 1
if step2 == 1 then
switch2 = (switch2 + 1) % switch2Repeats
if switch2 == 1 then
d = math.random(1, varDivisor2)
e = math.random(1, varDivisor2)
f = math.random(1, varDivisor2)
end
end
end
function init()
output[1]( loop
{ brutus
, to(function() return level/a end, function() return time/b end)
, brutus
, to(function() return -level/c end, function() return time/a end)
, brutus
, to(function() return level/b end, function() return time/c end)
, brutus
, to(function() return -level/a end, function() return time/b end)
, brutus
, to(function() return level/c end, function() return time/a end)
, brutus
, to(function() return -level/b end, function() return time/c end)
}
)
output[3]( loop
{ mimi
, to(function() return level/d end, function() return time/e end)
, mimi
, to(function() return -level/f end, function() return time/d end)
, mimi
, to(function() return level/e end, function() return time/f end)
, mimi
, to(function() return -level/d end, function() return time/e end)
, mimi
, to(function() return level/f end, function() return time/d end)
, mimi
, to(function() return -level/e end, function() return time/f end)
}
)
end